您好,登錄后才能下訂單哦!
這篇文章主要介紹“DBLINK應(yīng)用分析”,在日常操作中,相信很多人在DBLINK應(yīng)用分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”DBLINK應(yīng)用分析”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
一、項目描述
目的:oracle中跨數(shù)據(jù)庫查詢
兩臺數(shù)據(jù)庫服務(wù)器db_A(本地)和db_B(遠(yuǎn)程192.168.1.100),db_A下用戶user_a 需要訪問到db_B下user_b的數(shù)據(jù)
解決:查詢得知使用dblink(即database link 數(shù)據(jù)庫鏈)
二、實現(xiàn)過程
1、確定用戶user_a有沒有創(chuàng)建 dblink 的權(quán)限
以sys用戶登錄到本地數(shù)據(jù)庫:
select * from user_sys_privs t where t.privilege like upper('%link%');
SYS CREATE DATABASE LINK NO
SYS DROP PUBLIC DATABASE LINK NO
SYS CREATE PUBLIC DATABASE LINK NO
可以看出在數(shù)據(jù)庫中dblink有三種權(quán)限
CREATE DATABASE LINK(所創(chuàng)建的dblink只能是創(chuàng)建者能使用,別的用戶使用不了)
CREATE PUBLIC DATABASE LINK(public表示所創(chuàng)建的dblink所有用戶都可以使用)
DROP PUBLIC DATABASE LINK。
2、如果沒有,以sys用戶登錄到本地數(shù)據(jù)庫 給用戶user_a賦權(quán)
注: dblink有三種權(quán)限:
CREATE DATABASE LINK(所創(chuàng)建的dblink只能是創(chuàng)建者能使用,別的用戶使用不了)
CREATE PUBLIC DATABASE LINK(public表示所創(chuàng)建的dblink所有用戶都可以使用)
DROP PUBLIC DATABASE LINK
3、以用戶user_a登錄本地數(shù)據(jù)庫,創(chuàng)建dblink
create public database link dblink1 connect to user_b identified by user_bpass using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
注: 當(dāng)數(shù)據(jù)庫參數(shù)global_name=false時,就不要求數(shù)據(jù)庫鏈接名稱跟遠(yuǎn)端數(shù)據(jù)庫名稱一樣。 數(shù)據(jù)庫全局名稱可以用以下命令查出:
SELECT * FROM GLOBAL_NAME;
修改可以用以下句來修改參數(shù)值:
ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE;
4、創(chuàng)建完成,引用
-- 查詢、刪除和插入數(shù)據(jù)和操作本地的數(shù)據(jù)庫是一樣的,只不過表名需要寫成“表名@dblink服務(wù)器”而已。 例:
select * from user_bTablename@dblink1 ;
一般情況下引用數(shù)據(jù)庫鏈接,可以直接將其放到調(diào)用的表名或視圖名稱后面,中間使用一個 @ 作為分割符:
5、刪除 DBLink
drop public database link dblink1;
6、創(chuàng)建和刪除同義詞
對于經(jīng)常使用的數(shù)據(jù)庫鏈接,可以建立一個本地的同義詞,方便使用
create or replace synonym 同義詞名 for 表名;
create or replace synonym 同義詞名 for 用戶.表名;
create or replace synonym 同義詞名 for 表名@數(shù)據(jù)庫鏈接名;
drop synonym 同義詞名;
7、創(chuàng)建和刪除視圖
create or replace view 視圖名 as (select 字段 from 用戶.表名@dblink1);
drop view 視圖名;
其他: 創(chuàng)建方式二:要求數(shù)據(jù)庫服務(wù)器db_A上 tnsnames.ora 中有 數(shù)據(jù)庫db_B的映射 (省略)
sql>create database link 數(shù)據(jù)庫鏈路名 connect to 用戶名 identified by 口令 using 'tnsnames.ora配置的主機(jī)字符串名';
創(chuàng)建方式三: PL/SQL圖形配置界面
問題: 已經(jīng)給了用戶 dblink 的權(quán)限,但創(chuàng)建時報權(quán)限不足的錯 解決:我給用戶的是 CREATE PUBLIC DATABASE LINK權(quán)限,所以創(chuàng)建時需要create public database link.... 而不能是create database link.... 待深入:
每次使用dblink查詢的時候,均會與遠(yuǎn)程數(shù)據(jù)庫創(chuàng)建一個連接,dblink 應(yīng)該不會自動釋放這個連接,如果是大量使用 dblink 查詢,會造成 web 項目的連接數(shù)不夠,導(dǎo)致系統(tǒng)無法正常運(yùn)行,導(dǎo)致系統(tǒng)無正常運(yùn)行。
到此,關(guān)于“DBLINK應(yīng)用分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。