Oracle 建立DBLink
需求
兩臺資料庫伺服器(本地)和(遠端192.168.1.59),本地使用者orcl需要訪問到遠端伺服器下mars的資料,這時就需要建立DBLink。
方案
①先確定使用者是否有建立DBLink的許可權:
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
如果沒有,則需要使用 sysdba 角色給使用者賦權:
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to orcl;
這裡有兩個需要注意的問題:
1. dblink有三種許可權:
CREATE DATABASE LINK
CREATE PUBLIC DATABASE LINK
(public表示所建立的dblink所有使用者都可以使用) DROP PUBLIC DATABASE LINK
(刪除dblink) 2. 最後的
orcl
是本地資料庫的使用者名稱。 ②以使用者orcl登入資料庫,建立DBLink
create public database link etl59
connect to mars identified by mars的密碼
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.59)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = xxxx)))' ;
說明:etl59
為你建立的dblink的名字;mars
為遠端資料庫使用者的使用者名稱;後邊是mars對應的密碼;Host=
後邊是伺服器的地址;SERVICE_NAME=
後邊是遠端資料庫的名稱。
操作
①使用DBLink
select * from [email protected]
查詢、刪除和插入資料和操作本地的資料庫是一樣的,只不過表名需要寫成表名@dblink的名字
。
②刪除DBLink
drop public database link etl59