Oracle創建database link(dblink)和同義詞(synonym)


Oracle創建database link(dblink)和同義詞(synonym)

同一個數據庫不同用戶之間建立dblink和synonym

1.建立dblink

實現在A用戶下通過dblink訪問B用戶下的數據庫表,需要在A用戶下創建訪問B庫的dblink連接

--創建遠程連接dblink語句示例:
create database link dblink名
       connect to B庫用戶名 identified by B庫密碼
       using '172.66.50.241:1521/AAA';  
備注:需修改對應訪問連接用戶和密碼、IP、端口和數據庫示例名

相關連接:

    https://zyqwst.iteye.com/blog/2285560

    https://blog.csdn.net/bxl049/article/details/70879655

2.創建表名同義詞 SYNONYM

create SYNONYM table_new for table_b@dblink名;  
直接訪問: select * form table_new 相當於:select * from table_b@dblink名;

3. 創建表空間、用戶、dblink、讓用戶持有dblink、創建視圖、建立同義詞、導出數據

 

----------------------------------------------------------------------------------------------------------------------

同一個數據庫不同用戶之間建立dblink和synonym

數據庫中現有數據庫A(用戶名/密碼  A/a),數據庫庫B(用戶名/密碼 B/b)。A用戶需要B庫中的表table_b;A用戶如果想直接對表table_b進行操作,例如 select * from table_b;update XXX table_b set XXX等。需要兩步:1對B用戶建立dblink;2對b.table_b建立同義詞。具體兩步如下

--1建立對B數據庫的dblink
create database link test_link connect to B --B數據庫的某個用戶名
IDENTIFIED by "b" --B數據庫的密碼
using 'orcl';  --所在庫實例名
--執行上面的語句,然后在A數據庫測試 查詢語句:select * from test_link.table_b;查詢成功說明blink建立成功。但是每次想操作table_b表都要在前面加test_link真的很不爽,下來為其建立同義詞
--2建立同義詞
create SYNONYM table_b for table_b@test_link;
--現在執行查詢select * from table_b;就好像table_b表是A數據庫的表一樣,有沒有很爽

create database link test_link connect to B
IDENTIFIED by "b"
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))'

 

--------------------------------------------------------------------------------同庫同實例

1.dba用戶 賦權創建同義詞的權限
sqlplus /as  sysdba
grant create synonym to dcm
--finchina 用戶 賦權 dcm查看的權限
grant select on table1 to dcm;
--dcm 用戶創建同義詞
create or replace synonym table1 for finchina.table1;

----------------------------------------------------------------------------------

oracle database link 查詢時候 select * from 表A@link 執行后為什么會起事務

oracle的db_link數據bai要數據庫自身du和遠程數據庫建立zhi鏈接進行查詢dao的zhuan,而且會對遠程數據shu庫中查詢的表加鎖。相當於本地的 select * from table for update;產生事物就是因為這個原因。通過dblink查詢完之后,最好進行commit或rollback結束事物。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM