關于Oracle數據庫dbLink的創(chuàng)建和使用詳解
dbLink
Oracle的數據庫鏈路(dbLink)是一種允許在兩個不同的數據庫實例之間進行通信和數據交換的功能。
它可以讓你在一個數據庫中訪問另一個數據庫的對象和數據,就像它們屬于同一個數據庫一樣。
創(chuàng)建一個link:
CREATE public DATABASE LINK link_scott CONNECT TO scott IDENTIFIED BY "tiger" USING '192.168.1.101/orcl';
代表創(chuàng)建一個公共的數據庫鏈路,名稱為link_scott,連接指向orcl實例下面的scott用戶,tiger為scott用戶的密碼。
192.168.1.101為orcl實例的地址。
創(chuàng)建完成后,可以通過下面語句查詢scott用戶的表emp:
SELECT * FROM emp @link_scott;
如果覺得這樣寫比較麻煩,可以創(chuàng)建一個同義詞,簡化查詢語句:
create synonym emp for emp @link_scott;
同義詞創(chuàng)建完成后,查詢語句可以寫為:
SELECT * FROM emp;
dblink使用場景
一般用于兩個不同數據庫之間,為了能訪問其他數據庫用戶的數據。
為另外一個數據庫用戶創(chuàng)建一個數據庫鏈接。
如果是同一個數據庫之間不同用戶的數據庫對象訪問,則使用賦權的方式,例如同一個數據庫中,test1用戶想訪問scott用戶的表emp,則操作如下:
1.將scott用戶中emp表的查詢權限給test1用戶(sys用戶操作)
grant select on scott.emp to test1;
2.test1用戶查詢emp表(test1用戶操作)
SELECT * FROM scott.emp;
如果要簡化查詢語句的寫法,則可以創(chuàng)建同義詞(sys用戶操作,也可以賦權給test1,語法為GRANT CREATE SYNONYM TO TEST1;)
create synonym test1.emp for scott.emp;
然后再查詢emp表
SELECT * FROM emp;
注意:
創(chuàng)建數據庫鏈接的帳號必須有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系統(tǒng)權限,用來登錄到遠程數據庫的帳號必須有CREATE SESSION權限。
這兩種權限都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK權限在DBA中)。
如果創(chuàng)建全局dblink,必須使用systm或sys用戶,在database前加public。
oracle dblink解決后臺卻出現鎖
創(chuàng)建是很簡單,但是在使用中后臺卻出現鎖,查看這個鎖的方法可以去console中看到或者查詢數據庫。
其實這個鎖倒不是最讓人心煩的,而是每次使用 dblink查詢的時候,均會與遠程數據庫創(chuàng)建一個連接,dblink應該不會自動釋放這個連接,如果是大量使用dblink查詢,會造成web 項目的連接數不夠,導致系統(tǒng)無法正常運行。
到此這篇關于關于Oracle數據庫dbLink的創(chuàng)建和使用詳解的文章就介紹到這了,更多相關Oracle的dbLink內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Navicat?Premium連接Oracle數據庫的2種方式
這篇文章主要給大家介紹了關于Navicat?Premium連接Oracle數據庫的2種方式,大家要使用Navicat Premium連接Oracle數據庫,請按照以下步驟操作,需要的朋友可以參考下2024-01-01

