dblink的作用
dblink數據庫鏈接顧名思義就是數據庫的鏈接,當我們要跨本地數據庫,訪問另外一個數據庫表中的數據時,本地數據庫中就必須要創建遠程數據庫的dblink,通過dblink本地數據庫可以像訪問本地數據庫一樣訪問遠程數據庫表中的數據。
dblink創建
1.查看權限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
若查看為空,則需要賦予相關的權限
2.賦予權限
這里賦予了兩種權限,CREATE PUBLIC DATABASE LINK
跟DROP PUBLIC DATABASE LINK
,public表示所創建的dblink所有用戶都可以使用
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to username;
再次查看權限驗證
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
可以看到相關權限已經賦權
3.創建dblink
情況1:已配置
已經在本地數據庫tnsnames.ora文件中配置了要遠程訪問的數據庫
#dblink_name:要創建的dblink名稱
#user/password:需要在本地登錄到遠程數據庫的用戶名/密碼create public database link dblink_name connect to user identified by password using '遠程數據庫的實例名';
情況2:未配置
沒有在本地數據庫tnsnames.ora文件中配置要遠程訪問的數據庫
#dblink_name:要創建的dblink名稱
#user/password:需要在本地登錄到遠程數據庫的用戶名/密碼
create public database link dblink_name
connect to user identified by password
using
'(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =遠程數據庫的ip)(PORT = 遠程數據庫的端口號))
(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = 遠程數據庫的實例名)))';
4.創建結果
運行SQL語句查看dblink創建結果
SELECT * FROM ALL_DB_LINKS;
視圖字段介紹
OWNER : DB Link的owner
DB_LINK : DB Link名稱(主要使用)
USERNAME : 利用DB link時,登錄遠程數據庫實例的用戶名
HOST : 登錄遠程數據庫的Net connect string
CREATED : DB Link創建時間
5.使用dblink查詢數據
使用@連接dblink進行數據查詢
select * from table_name@dblink_name;select * from 遠程數據庫表名@遠程連接dblink名;
6.刪除dblink
drop public database link dblink_name;