Oracle’da farklı veri tabanları arasında bağlantı sağlamak için database link’lere ihtiyaç vardır. Database link bir veri tabanından başka bir veri tabanındaki tabloya DML(insert,update,delete) işlemleri yapılmasını sağlar.
2 farklı database link vardır. Bunlar, Public Database Link ve Private Database Link‘tir. Public database link’e veri tabanında yetkisi olan tüm kullanıcılar erişebilirken, Private database link’e yalnızca ilgili kullanıcının erişim hakkı vardır.
Public database link oluşturmak için CREATE PUBLIC DATABASE LINK
,
Private database link oluşturmak için CREATE DATABASE LINK
cümleciğini kullanmak gerekir.
PRODB ve TESTDB adında iki veri tabanı olduğunu düşünelim. PROD veri tabanından TEST veri tabanına erişmek için aşağıdaki işlemleri yapmak gerekir.
- TESTDB veri tabanının bağlantı bilgilerini PRODB veri tabanının tnsnames.ora dosyasına kaydetmeliyiz.
- TESTDB veri tabanında bir user oluşturmalıyız ve yetki vermeliyiz.
- Yukarıdaki işlemleri yaptıktan sonra PRODB veri tabanında database link oluşturmaya başlayabiliriz.
Database Link aşağıdaki şekilde oluşturulur.
CREATE PUBLIC DATABASE LINK "DBLINK_ADI"
CONNECT TO "Uzak Veri tabanındaki USER" IDENTIFIED BY Şifre
USING 'Veri tabanı tnsnamesteki takma ad'
TESTDB’nin bağlantı bilgilerini PRODB tnsnames.ora’ya yazalım.
TEST=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ---IP Address---)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ---Service Name---)
)
)
TESTDB’de bir kullanıcı oluşturalım ve select yetkisi verelim.
Create user PRODB_LINK_USER identified by Dbpass;
Grant connect,select any table to PRODB_LINK_USER;
Bu işlemleri yaptıktan sonra PRODB veri tabanında database link oluşturalım.
CREATE PUBLIC DATABASE LINK "TESTDBLINK"
CONNECT TO "PRODB_LINK_USER" IDENTIFIED BY Dbpass
USING 'TEST';

Şimdi database link kullanarak sorgu çekmeye çalışalım.
Yukarıda da görüldüğü üzere sorguyu başarıyla kullanabildik.
Oluşturduğumuz database linki aşağıdaki şekilde silebiliriz
Drop public database link TESTDBLINK;