Bağlı olduğumuz veritabanından başka bir oracle veritabanına erişip orada istediğimiz sorguları yazabilmemizi sağlayan yapıya dblink(database link) denir.
Bağlı olduğumuz veritabanından başka bir oracle veritabanına erişip orada istediğimiz sorguları yazabilmemizi sağlayan yapıya dblink(database link) denir.
Dblink oluşturmak için bağlanmak istediğimiz sunucunun kullanıcı adı ve şifre bilgisinin yanında bağlantı kurulacak veritabanının tns bilgilerine de ihtiyacımız vardır.
Dblink kuracağımız veritabanımız TEST olsun.TEST veritabanındaki test1 adlı kullanıcı üzerinden bağlanmayı deneyelim.test1 kullanıcısınında şifresi test100 olsun.
Database link create scriptini aşağıdaki şekilde oluştururuz.
CREATE PUBLIC DATABASE LINK TEST_LINK
CONNECT TO test
IDENTIFIED BY ”test100″
USING ’(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.102)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = NPM)
(SERVER = DEDICATED)
)
)’;
Aaşağıdaki komutu verdiğimizde veritabanında tanımlı olan public dblinkleri ve kendi oluşturduğumuz dblinklleri görebiliriz.
SELECT * FROM all_db_links;
Veritabanı üzerindeki bütün dblinkleri görmek için ise ‘dba’ hakkına sahip olan bir kulanıcı ile aşağıdaki sorguyu çalıştırmamız gerekir.
SELECT * FROM dba_db_links;
Dblink oluşturduktan sonra hedef veritabanından sorgulama yapabilmek için sorgu yapacağımız tablonun sonuna ‘@dblinkadı’ eklememiz yeterlidir.
SELECT * FROM [email protected]_LINK
Yaptığımız sorgulardan sonra hedef veritabanı ile işimiz bittiyse dblinki sonlandırmak için aşağıdaki sql’i çalıştırmamız gerekir.
ALTER SESSION CLOSE DATABASE LINK TEST_LINK;
Create ettiğimiz dblinki drop etmek için aşağıdaki komutu vermemiz gerekir.
DROP DATABASE LINK TEST_LINK;
Dblink kurarken public yada private tanımlayabiliriz.Public link oluşturursak dblink tüm kullanıcılar tarafından kullanılabilir. Private linkleri ise sadece oluşturan kullanıcı kullanabilir.
CREATE PUBLIC DATABASE LINK TEST_LINK (Public Link)
CREATE DATABASE LINK TEST_LINK (Private Link)