數據庫之間的鏈接建立在DATABASE LINK上。要創建一個DB LINK,必須先
在每個數據庫服務器上設置鏈接字符串。
1、 鏈接字符串即服務名,首先在本地配置一個服務名,地址指向遠程的數據庫地址,服務名取為將來你要使用的數據庫鏈名:
2、創建數據庫鏈接,
進入系統管理員SQL>操作符下,運行命令:
SQL>create public database link beijing connect to scott identified by tiger
using 'tobeijing';
則創建了一個以scott用戶和北京數據庫的鏈接beijing,我們查詢北京的scott數據:
SQL>select * from emp@beijing;
這樣就可以把深圳和北京scott用戶的數據做成一個整體來處理。
3、建立同義詞,為了使有關分布式操作更透明,ORACLE數據庫裡有同義詞的對象synonym
SQL>create synonym bjscottemp for emp@beijing;
於是就可以用bjscottemp來替代帶@符號的分布式鏈接操作emp@beijing。
4、查看所有的數據庫鏈接,進入系統管理員SQL>操作符下,運行命令:
SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';
剛好用到, 取消dblink
3、查看數據庫連接
sql> select owner, db_link from dba_db_links;
ower db_link
public TEST.US.ORACLE.COM
4、刪除數據庫連接
先從第三步中查看數據庫連接,取得其db_link的名稱
sql>drop public database link TEST.US.ORACLE.COM
數據庫連接巳丟棄
比如:在一個數據庫B中訪問數據庫A中的表:
1.在數據庫B中創建數據庫鏈:
CREATE PUBLIC DATABASE LINK 數據庫鏈接名 CONNECT TO 用戶名 identified by 密碼 using '連接說明'
其中,連接說明必須為如下格式:
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.10.201)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME=ORCL)
)
)
2.訪問鏈接數據庫中的對象的語法:
用戶名.數據庫對象@數據庫鏈接名
3.查看所有的數據庫鏈接:
select owner,object_name from dba_objects where object_type='DATABASE LINK';
4.例子:
創建一個數據庫鏈接:
CREATE PUBLIC DATABASE LINK DBL_ORCL CONNECT TO province identified by province_pwd
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.10.201)(PORT = 1521))
)
(CONNECT_DATA =
(service_name=ORCL)
)
)';
在B庫中執行下面的語句,訪問A庫中的province.tj_ryxx 表:
select * from province.tj_ryxx@DBL_ORCL;