DATABASE LINK

Bir Oracle veritabanı ile başka bir oracle veritabanı arasında doğrudan bir bağlantı sağlanması isteniyorsa, iki veritabanı arasında oluşturulan köprü niteliğindeki veritabanı objesine db_link denir. 2 Çeşit db_link vardır bunlar;

  • Private Database Link : Sadece belli bir user kullanabilir.
  • Public Databse Link : Veritabanındaki yetkisi olan tüm kullanıcılar kullanabilir

Veritabanlarından dbm01 den dbm02 ye bağlanılmak isteniyorsa; dbm01 e db link oluşturulur.

dbm01 makinesindeki tnsnames.ora içerisine dbm02 makinesinin bilgilerini içeren aşağıdaki kısım eklenir.


dbm02 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = [......ip.....])(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = [sid])
    )
  )

Database link create

CREATE DATABASE LINK dbm02_link
CONNECT TO dbm02user
identified by dbm02passwd
USING 'dbm02';

Yukarıda oluşturduğumuz db link private db linktir. public db link oluşturmak için CREATE PUBLIC DATABAE LINK … dememiz gerekiyordu.

Her şey yolunda ise artık db linkimizi kullanarak veri çekebilmemiz gerekir.

select * from dbm02user.tablename@dbm02_link

Veritabanımdaki db linkleri görebilmek için

select * from dba_db_links

veya 

select * from all_db_links;