Creare Database Link

Utilizzare l’istruzione CREATE DATABASE LINK per creare un DB Link. Un DB Link è un oggetto dello schema in un database che consente di accedere agli oggetti di un altro database. L’altro database non deve essere necessariamente un database Oracle. Tuttavia, per accedere ai sistemi non-Oracle è necessario utilizzare Oracle Heterogeneous Services.
Dopo aver creato un DB Link, è possibile utilizzarlo per fare riferimento a tabelle e viste sull’altro database. In SQL è possibile fare riferimento tabelle o viste sul altri database aggiungendo il DB Link al nome della tabella o vista. Si può interrogare una tabella o vista sull’altro database con l’istruzione SELECT. È inoltre possibile accedere a tabelle remote e viste con qualsiasi INSERT, UPDATE, DELETE, o dichiarazione LOCK TABLE.
Prerequisiti
Per creare un DB Link privato, è necessario avere il privilegio di sistema CREATE DATABASE LINK. Per creare un DB Link pubblico, è necessario avere il privilegio di sistema CREATE PUBLIC DATABASE LINK. Inoltre, è necessario avere il privilegio di sistema CREATE SESSION sul database Oracle remoto.
Oracle Net deve essere installato su entrambi i database Oracle locale e remoto.
Sono supportati i seguenti tipi di collegamento:
• DB Link privato – appartiene a uno specifico schema di un database. Solo il proprietario di un collegamento al database privato può usarlo.
• DB Link pubblico – tutti gli utenti presenti nel database possono usarlo.
Specificare PUBLIC per creare un DB Link pubblico a disposizione di tutti gli utenti. Se si omette questa clausola, il collegamento al database sarà privato e disponibile solo per voi.
• DB Link globale – definito in un OID o Oracle Names Server. Chiunque sulla rete può usarlo.
I passaggi per creare un collegamento a database sono:

  • Scegliere le tabelle che andranno a comporre la vista dal DB DB1
  • Definire l’alias nel file tnsnames.ora
  • Creare DB Link pubblico in DB DB2
  • Verificare che il DB Link venga creato
  • Creare ls vista con il DB Link
  • Verificare che la vista appaia nel DB DB2

Scegliere le tabelle che andranno a comporre la vista dal DB DB1
Database >select*from meteo;
NOME CONDIZIONE TEMP
——————– ——————– ——————–
milano sereno 20
siena nuvoloso 15
napoli sereno 28
NOME CONDIZIONE TEMP
——————– ——————– ——————–
roma pioggia 18
genova sereno 19
Database >select*from clima;
NOME TEMP_MAX REGIONE
——————– ——————– ——————–
milano 25 lombardia
siena 19 toscana
napoli 33 campania
roma 22 lazio
genova 24 liguria
Definire l’alias nel file tnsnames.ora
LSNR_DB1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10…)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = DB1)
)
)
DB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10…)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DB1)
)
Creare DB Link pubblico in DB DB2
Database > CREATE PUBLIC DATABASE LINK RC
2 CONNECT TO user
3 IDENTIFIED BY password
4 USING ‘DB1′
5 /
Verificare che il DB Link venga creato
Database > select*from dba_db_links;
OWNER DB_LINK USERNAME HOST CREATED
—————– ————- ————– ———— ———
PUBLIC RC user DB1 04-GIU-13
Creare la vista con il DB Link
Database > CREATE VIEW TEMPO AS SELECT METEO.NOME,METEO.CONDIZIONE,METEO.TEMP,CLIMA.TEMP_MAX,CLIMA.REGIONE FROM user.METEO@RC, user.CLIMA@RC WHERE METEO.NOME=CLIMA.NOME;
Verificare che la vista appaia nel DB DB2
Database > select*from TEMPO;
NOME CONDIZIONE TEMP TEMP_MAX REGIONE
———— ——————– ———– ————- ———-
milano sereno 20 25 lombardia
siena nuvoloso 15 19 toscana
napoli sereno 28 33 campania
roma pioggia 18 22 lazio
genova sereno 19 24 liguria
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm
http://www.orafaq.com/wiki/Database_link

Potrebbero interessarti anche...