Tüm Ayrıntılarıyla Oracle Database Link

Tüm Ayrıntılarıyla Oracle Database Link

Database link databaseler arasında bağlantı kurmaya yarayan oracle nesneleridir.Veri taşımalarında,canlı ortam ile test ortamı karşılaştırmalarında,test verisi almak gibi bir çok alanda kullanabiliriz.Hangi database’e ulaşmak istiyorsak o database’in bilgilerini kaynak database makinesinde TNSNAMES.ora dosyasına tanımlamamız gerekiyor,yani kaynaktan hedefe tnsping atıyor olmamız gerekir.

Bir örnek ile pekiştirelim..
TEST ortamından PROD database’ine bir link kuralım.Select ve Update işlemleri yapalım.

1- Öncelikle TEST sunucusunda TNSNAMES.ora dosyasına PROD database’ini tanımlayalım.

PROD_LINK =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PROD)
)
)

2- TNS ayarlarımızın doğru olduğundan emin olmak için;
C:Usersomer>tnsping PROD
3- Sonrasında db linki create edelim.
Hedefteki User:IFSAPP Şifresi:12345 olsun..

SQL> Create database link PRODDBLINK connect to IFSAPP identified by 12345 using ‘PROD_LINK′;

4- Linkimiz hazır,test edelim.
SQL> SELECT * from customer_order@PRODDBLINK;
SQL> UPDATE customer_order_tab@PRODDBLINK SET order_date=order_date+1;

nesneadi@dblinkadi şeklinde bir syntaxla prod database’in nesnelerine ulaşabiliriz.
Public Database Link:
Tüm database userlarının hedef database’e erişebilmesini sağlar.
SQL> Create Public database link PRODDBLINK connect to IFSAPP identified by 12345 using ‘PROD_LINK′;

Private Database Link:
Sadece oluşturan userın hedefe bağlanabildiği link türüdür.
SQL>Create Private database link PRODDBLINK connect to IFSAPP identified by 12345 using ‘PROD_LINK;

Shared Database Link:
Db link kullanıcılara paylaştırılır,ama girişte user ve şifre girilmesi gerekir.
SQL> CREATE SHARED DATABASE LINK PRODDBLINK CONNECT TO scott IDENTIFIED BY tiger
AUTHENTICATED BY sec_usr IDENTIFIED BY sec_pass USING ‘PROD’;

-Create ederken SHARED,PUBLIC,PRIVATE belirtilmezse defaultu PRIVATE’dır.
Create Database Link….. — Private link oluşturur.

Bir kullanıcının Db link oluşturabilmesi için:
private database link için: CREATE DATABASE LINK
public database link için: CREATE PUBLIC DATABASE LINK
yetkilerine sahip olması gerekir.Eğer yetkisi yoksa aşağıdaki gibi yetki verebilirsiniz.
SQL> GRANT create database link TO DENEMEUSER;
SQL> GRANT create Public database link TO DENEMEUSER;

Mevcut database linklerini görmek:
SQL> select * from dba_db_links;
SQL> select * from all_db_links;

Mevcut database linklerinin statüsünü görmek:
SQL> SELECT owner,object_name,object_type,status FROM dba_objects WHERE object_type=’DATABASE LINK’;

Database link drop etmek:
SQL> Drop Database Link PROD_LINK;

Mevcut sessiondaki link bağlantısını kapatmak için:
SQL> alter session close database link PROD_LINK;

Tagged: , , , , ,

Comments: 2

  1. erman atalar 26 Temmuz 2015 at 01:22 Reply

    MErhabalar 5 ayrı noktada oracle database’de viewleri 6. noktada bir sql sunucuda database link ile toplamak mümkün müdür?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir