Oracle建立DBLINK及同義詞

1、如果需要創(chuàng)建全局 DBLink,則需要先確定用戶有創(chuàng)建 dblink 的權(quán)限:

select * from user_sys_privs where privilege like upper('%DATABASE LINK%');

如果沒有,則需要使用 sysdba 角色給用戶賦權(quán):

grant createpublicdatabase link to dbusername;

2、使用該用戶登錄 PL/SQL,使用命令:

第一種方法:要求數(shù)據(jù)庫服務器 A 上 tnsnames.ora 中有 數(shù)據(jù)庫 B 的映射

create database link 數(shù)據(jù)庫鏈接名 connect to 用戶名 identified by 密碼 using '本地配置的數(shù)據(jù)的實例名';

第二種方法:直接配置

如果創(chuàng)建全局 dblink,必須使用 systm 或 sys 用戶,在 database 前加public

create /* public */ database link dblinkname

connect?to?dbusername?identified?by?dbpassword

using'(DESCRIPTION?=(ADDRESS_LIST?=(ADDRESS?=(PROTOCOL?=?TCP)(HOST?=?192.168.0.1)(PORT?=?1521)))(CONNECT_DATA?=(SERVICE_NAME?=?orcl)))';

數(shù)據(jù)庫參數(shù) global_name=true時要求數(shù)據(jù)庫鏈接名稱跟遠端數(shù)據(jù)庫名稱一樣。數(shù)據(jù)庫全局名稱可以用以下命令查出

select * from global_name;

3、查詢數(shù)據(jù):

查詢、刪除和插入數(shù)據(jù)和操作本地的數(shù)據(jù)庫是一樣的,只不過表名需要寫成“表名@dblink服務器”而已

select xxx FROM 表名@數(shù)據(jù)庫鏈接名;

4、刪除 DBLink

drop /* public */ database link dblinkname;

5、創(chuàng)建和刪除同義詞

create or replace synonym 同義詞名 for 表名;

create or replace synonym 同義詞名 for 用戶.表名;

create or replace synonym 同義詞名 for 表名@數(shù)據(jù)庫鏈接名;

drop synonym 同義詞名;

6、創(chuàng)建和刪除視圖

create or replace view 視圖名 as (select 字段 from 用戶.表名@dblinkname);

drop view 視圖名;

7、注意:

創(chuàng)建 DBLink 很簡單,但是在使用中后臺卻出現(xiàn)鎖,查看這個鎖的方法可以去 console 中看到或者查詢數(shù)據(jù)庫。每次使用dblink查詢的時候,均會與遠程數(shù)據(jù)庫創(chuàng)建一個連接,dblink 應該不會自動釋放這個連接,如果是大量使用 dblink 查詢,會造成 web 項目的連接數(shù)不夠,導致系統(tǒng)無法正常運行,導致系統(tǒng)無正常運行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容