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;
Veya doğrudan db link içerisne IP tanımlanabilir
CREATE DATABASE LINK SQLPROF
CONNECT TO system IDENTIFIED BY welcome1
USING'(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST= IP veya Hostname )
(PORT=1521))
(CONNECT_DATA=
(SID=ORCL)))';
Comments (1)
ORACLE DATA PUMP – Faruk Çeviksays:
Mayıs 28, 2024 at 11:51 am[…] DATABASE LINK […]