DBlink常用於在兩個Oracle數據庫之間相互連接,如手工同步數據時,DBLink是最方便快捷的手段之一。
1、創建DBLink語法:
create public database link <DBLink名稱> connect to <被連接庫的用戶名> identified by <被連接庫的密碼> using '<Oracle客戶端工具建立的指向被連接庫服務名,即TNSNAME中配置的本地服務名>';
public指明所有用戶均可使用這個DBlink,如果不指定,則只有創建者才能使用。
2、授權用戶具有創建dblink的權限
創建dblink的用戶有對應的數據庫權限
create public database link 或者create database link
可以使用
grant create public database link, create database link to username;
3、使用本地服務名來創建public dblink
SQL> create public database link link201orcl connect to scott identified by tiger using 'rhel201'; 數據庫鏈接已創建。 SQL> select sysdate from dual@link201orcl; --使用dblink連接並查詢遠程數據庫中的系統時間 SYSDATE -------------- 26-4月 -15 SQL>
但這種方式有個缺點就是必須要在服務器建立一個被連接庫的服務名,如果不建則會報錯:
ORA-12154: TNS: 無法處理服務名
如果直接使用地址來建DBLink,就可以省去配置服務名的麻煩了:
4、不需要配置本地服務名,在創建dblink時加上description信息
SQL> create public database link link201 connect to scott identified by tiger using 2 '(DESCRIPTION = 3 (ADDRESS_LIST = 4 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.201)(PORT = 1521)) 5 ) 6 (CONNECT_DATA = 7 (SERVICE_NAME = orcl) 8 ) 9 )'; Database link created SQL> select * from emp@link201; --使用dblink連接並查詢遠程數據庫中的表 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ---------- --------- ----- ----------- --------- --------- ------ 7369 SMITH CLERK 7902 1980/12/17 800.00 999.00 20 7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 300.00 30 ......
5、查看dblink
select owner,object_name from dba_objects where object_type='DATABASE LINK';
或者
select * from dba_db_links;
select owner,object_name from dba_objects where object_type='DATABASE LINK'; 或者 select * from dba_db_links; SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK'; OWNER OBJECT_NAME ------------------------------ -------------------------------------------------------------------------------- PUBLIC LINK201 PUBLIC LINK201ORCL SQL> select * from dba_db_links; OWNER DB_LINK USERNAME HOST CREATED ---------- ------------ ---------- -------------------------------------------------- -------------------- PUBLIC LINK201ORCL SCOTT rhel201 26-4月 -15 PUBLIC LINK201 SCOTT (DESCRIPTION = 26-4月 -15 (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.201) (PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )
5、刪除dblink
drop database link linkname;
drop public database link linkname;