關(guān)于Oracle數(shù)據(jù)庫(kù)dbLink的創(chuàng)建和使用詳解
dbLink
Oracle的數(shù)據(jù)庫(kù)鏈路(dbLink)是一種允許在兩個(gè)不同的數(shù)據(jù)庫(kù)實(shí)例之間進(jìn)行通信和數(shù)據(jù)交換的功能。
它可以讓你在一個(gè)數(shù)據(jù)庫(kù)中訪問另一個(gè)數(shù)據(jù)庫(kù)的對(duì)象和數(shù)據(jù),就像它們屬于同一個(gè)數(shù)據(jù)庫(kù)一樣。
創(chuàng)建一個(gè)link:
CREATE public DATABASE LINK link_scott CONNECT TO scott IDENTIFIED BY "tiger" USING '192.168.1.101/orcl';
代表創(chuàng)建一個(gè)公共的數(shù)據(jù)庫(kù)鏈路,名稱為link_scott,連接指向orcl實(shí)例下面的scott用戶,tiger為scott用戶的密碼。
192.168.1.101為orcl實(shí)例的地址。
創(chuàng)建完成后,可以通過下面語(yǔ)句查詢scott用戶的表emp:
SELECT * FROM emp @link_scott;
如果覺得這樣寫比較麻煩,可以創(chuàng)建一個(gè)同義詞,簡(jiǎn)化查詢語(yǔ)句:
create synonym emp for emp @link_scott;
同義詞創(chuàng)建完成后,查詢語(yǔ)句可以寫為:
SELECT * FROM emp;
dblink使用場(chǎng)景
一般用于兩個(gè)不同數(shù)據(jù)庫(kù)之間,為了能訪問其他數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)。
為另外一個(gè)數(shù)據(jù)庫(kù)用戶創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)鏈接。
如果是同一個(gè)數(shù)據(jù)庫(kù)之間不同用戶的數(shù)據(jù)庫(kù)對(duì)象訪問,則使用賦權(quán)的方式,例如同一個(gè)數(shù)據(jù)庫(kù)中,test1用戶想訪問scott用戶的表emp,則操作如下:
1.將scott用戶中emp表的查詢權(quán)限給test1用戶(sys用戶操作)
grant select on scott.emp to test1;
2.test1用戶查詢emp表(test1用戶操作)
SELECT * FROM scott.emp;
如果要簡(jiǎn)化查詢語(yǔ)句的寫法,則可以創(chuàng)建同義詞(sys用戶操作,也可以賦權(quán)給test1,語(yǔ)法為GRANT CREATE SYNONYM TO TEST1;)
create synonym test1.emp for scott.emp;
然后再查詢emp表
SELECT * FROM emp;
注意:
創(chuàng)建數(shù)據(jù)庫(kù)鏈接的帳號(hào)必須有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系統(tǒng)權(quán)限,用來(lái)登錄到遠(yuǎn)程數(shù)據(jù)庫(kù)的帳號(hào)必須有CREATE SESSION權(quán)限。
這兩種權(quán)限都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK權(quán)限在DBA中)。
如果創(chuàng)建全局dblink,必須使用systm或sys用戶,在database前加public。
oracle dblink解決后臺(tái)卻出現(xiàn)鎖
創(chuàng)建是很簡(jiǎn)單,但是在使用中后臺(tái)卻出現(xiàn)鎖,查看這個(gè)鎖的方法可以去console中看到或者查詢數(shù)據(jù)庫(kù)。
其實(shí)這個(gè)鎖倒不是最讓人心煩的,而是每次使用 dblink查詢的時(shí)候,均會(huì)與遠(yuǎn)程數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)連接,dblink應(yīng)該不會(huì)自動(dòng)釋放這個(gè)連接,如果是大量使用dblink查詢,會(huì)造成web 項(xiàng)目的連接數(shù)不夠,導(dǎo)致系統(tǒng)無(wú)法正常運(yùn)行。
到此這篇關(guān)于關(guān)于Oracle數(shù)據(jù)庫(kù)dbLink的創(chuàng)建和使用詳解的文章就介紹到這了,更多相關(guān)Oracle的dbLink內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle?VM?VirtualBox?虛擬機(jī)硬盤擴(kuò)容
這篇文章主要介紹了Oracle?VM?VirtualBox?虛擬機(jī)硬盤擴(kuò)容,VirtualBox中使用Ubuntu虛擬機(jī)中,出現(xiàn)了虛擬硬盤不夠用的情況,我們可以采取下文方式進(jìn)行擴(kuò)容,需要的朋友可以參考一下2022-03-03oracle中where 子句和having子句中的區(qū)別介紹
這篇文章主要介紹了在oracle中where 子句和having子句中的區(qū)別,本文通過sql語(yǔ)句給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-12-12詳解Sqlsugar調(diào)用Oracle的存儲(chǔ)過程
作者在使用Sqlsugar調(diào)用Oracle存儲(chǔ)過程時(shí)遇到問題,通過添加NuGet包和Oracle驅(qū)動(dòng),解決了連接問題,并創(chuàng)建了一個(gè)測(cè)試存儲(chǔ)過程來(lái)驗(yàn)證,關(guān)鍵點(diǎn)在于游標(biāo)參數(shù)必須為空字符,而不是object或null,感興趣的朋友跟隨小編一起看看吧2024-11-11Oracle中 關(guān)于數(shù)據(jù)庫(kù)存儲(chǔ)過程和存儲(chǔ)函數(shù)的使用
本篇文章,小編將為大家介紹,在Oracle中 關(guān)于數(shù)據(jù)庫(kù)存儲(chǔ)過程和存儲(chǔ)函數(shù)的使用,有需要的朋友可以參考一下2013-04-04在Oracle實(shí)例關(guān)閉時(shí)如何修改spfile的參數(shù)詳解
這篇文章主要給大家介紹了關(guān)于在Oracle實(shí)例關(guān)閉時(shí)如何修改spfile參數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07Oracle 生成未來(lái)三天的整點(diǎn)時(shí)間(步驟詳解)
這篇文章主要介紹了Oracle 生成未來(lái)三天的整點(diǎn)時(shí)間,本文通過實(shí)例代碼分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01