İnsanoğlu hala tüm bilgisayarların en alışılmadık olanıdır. Jhon F.Kennedy
19 Ocak 2017 Perşembe
Veritabanı DBLink Oluşturma
PostgreSQL'de DBLink Nasıl Oluşturulur?
DBLink, bir veritabanından başka bir veritabanına erişim sağlamak için veritabanı nesneleri arası kurulan köprü mantığıdır. Bu ilişki aynı sunucu üzerinde iki farklı veritabanı arasında olacağı gibi farklı sunucular üzerine kurulu farklı veritabanları arasında da kurulabilir. Bizim yapacağımız örnekte farklı sunucular üzerine kurulu farklı veritabanları arasındaki dblink özelliği olacaktır. Bunun için A sunucusu üzerine kurulu test1DB ile B sunucusu üzerine kurulu test2DB veritabanları arasında bir dblink oluşturmaya çalışacağız. test1DB sql konsolu üzerine uygulayacağımız adımlar aşağıdaki gibidir:
Oluşturacağım DBLink'in adı: testpostgresconn
- DBLink extensions'ın veritbanına yükleme
CREATE EXTENSION dblink;
- Kurulan DBLink extensions'ın test edilmesi veya barındırdığı özelliklerin listelenmesi
SELECT pg_namespace.nspname, pg_proc.proname
FROM pg_proc, pg_namespace
WHERE pg_proc.pronamespace=pg_namespace.oid
AND pg_proc.proname LIKE '%dblink%';
- DBLink üzerinden testDB2 Veritabanına Erişimin Test Edilmesi
SELECT dblink_connect('host=hostadresi user=db_kul_ad password=db_psswrd dbname=testDB2');
- Global Kullanıcı (Authentication) ve Server Oluşturma
CREATE FOREIGN DATA WRAPPER db_kul_ad VALIDATOR postgresql_fdw_validator;
CREATE SERVER testpostgresconn FOREIGN DATA WRAPPER db_kul_ad OPTIONS (hostaddr 'hostadresi', dbname 'testDB2');
- Ortak Kullanım için Mapping Oluşturma
CREATE USER MAPPING FOR db_kul_ad SERVER testpostgresconn OPTIONS (user 'db_kul_ad', password 'db_psswrd');
- Oluşturduğumuz DBLink'i Test Etme
SELECT dblink_connect('testpostgresconn');
Şuana kadarki adımları başarılı bir şekilde uyguladığımız taktirde aşağıdaki 'Select' sql sorgu cümleciği ile test1DB üzerinden test2DB veritabanındaki tablolara erişebiliriz. Ve bundan sonra test1DB üzerinden test2DB tablolarına erişim için sorgularımızı yaratmış olduğumuz 'testpostgresconn' adındaki sanal server ortak bağlantısına yazmamız gerekir.
SELECT * FROM public.dblink
('testpostgresconn','SELECT idstruct,nmstruct FROM public.wfstruct')
AS DATA(idstruct CHARACTER VARYING,nmstruct CHARACTER VARYING);
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder