Oracle創建dblink,多用於數據的同步機制。不建議直接用dblink對數據庫頻繁的操作。。。
00、查看創建dblink權限
select * from user_sys_privs t where t.privilege like upper('%link%');
--dblink權限
CREATE DATABASE LINK --數據庫用戶創建dblink
DROP PUBLIC DATABASE LINK
CREATE PUBLIC DATABASE LINK
--授權dblink sys
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
01、用戶登錄本地數據庫創建dblink
1.創建dblink的第一種方式,是在本地數據庫tnsnames.ora文件中配置了要遠程訪問的數據庫
create public database link dblink_name connect to username identified by password using 'bylw';
注釋 :
dblink_name dblink名字
username源庫的用戶 password 源庫的密碼
其中to_bylw是你創建的dblink名字,bylw是遠程數據庫的(名字),scott/tiger是登錄到遠程數據庫的用戶/密碼
第一種情況tnsnames.ora文件中信息如下: bylw = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = bylw)) )
--通過dblink查詢表信息
select * from scott.tb_test@to_bylw;
2.創建dblink的第二種方式,是在本地數據庫tnsnames.ora文件中沒有配置要訪問的遠程數據庫,
create public database link to_test connect to scott identified by tiger using '(DESCRIPTION = (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = bylw)))';
第二種是把第一種配置在tnsnames.ora文件中的信息,直接放在創建dblink語句后面。
刪除dblink
drop database link "dblink_name";
--table_name 目標庫的表 dblink_name連接名字
select * from table_name@dblink_name;
select db_link,owner from dba_db_links;
連接到dblink的owner用戶下再次嘗試drop操作
drop database link prod;
drop public database link prod;