作用:將多個oracle數據庫邏輯上看成一個數據庫,也就是說在一個數據庫中可以操作另一個數據庫中的對象
簡易語法:
CREATE [PUBLIC] DATABASE LINK dblink CONNECT TO user IDENTIFIED BY password USING ‘connect_string’; DROP [PUBLIC] DATABASE LINK dblink;
注意:你必須有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的權限,另外,在你要連接的數據庫上,你必須有CREATE SESSION的權限.
語法解釋:
dblink:以后在sql語句中使用的連接名, 在init.ora文件中,如果GLOBAL_NAMES=true,則這個dblink必須與數據庫全局名(SELECT * FROM GLOBAL_NAME;)相同.為了方便,可以ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
user和password:要連接的數據庫的合法用戶名和密碼
connect_string:可以是經過Net Configuration Assistant配置的(tnsnames.ora)且經測試可以連接的別名,例如:orcl123,不過容易出問題,老提示出錯:無法解析字符串.最好寫成這種形式 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.78)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )
使用:
SELECT * FROM USER_TABLES@dblink;
UPDATE jobs@dblink SET min_salary = 3000 WHERE job_id = 'SH_CLERK';
數據庫之間的鏈接建立在DATABASE LINK上。要創建一個DB LINK,必須先在每個數據庫服務器上設置鏈接字符串。
1、鏈接字符串即服務名,首先在本地配置一個服務名,地址指向遠程的數據庫地址,服務名取為將來你要使用的數據庫鏈名:
2、創建數據庫鏈接,進入系統管理員SQL>操作符下,運行命令:
SQL>CREATE PUBLIC DATABASE LINK DBL_mesdb15
CONNECT TO scott identified by tiger
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.190.113.15)(PORT = 1521))
)
(CONNECT_DATA =
(service_name=mesdb)
)
)';
則創建了一個以scott用戶和MESDB數據庫的鏈接DBL_mesdb15,我們查詢MESDB的scott數據:
SQL>select * from emp@DBL_mesdb15;
3、建立同義詞,為了使有關分布式操作更透明,ORACLE數據庫里有同義詞的對象synonym
SQL>create synonym bjscottemp for emp@DBL_mesdb15;
于是就可以用bjscottemp來替代帶@符號的分布式鏈接操作emp@DBL_mesdb15。
4、查看所有的數據庫鏈接,進入系統管理員SQL>操作符下,運行命令:
SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';
5、查看數據庫連接
sql> select owner, db_link from dba_db_links;
ower db_link
public TEST.US.ORACLE.COM
6、刪除數據庫連接
先從第三步中查看數據庫連接,取得其db_link的名稱
sql>drop public database link DBL_mesdb15.US.ORACLE.COM
數據庫連接巳丟棄
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。