Oracle—dblink創建與使用


一、DbLink的創建

1.PLSQL圖文方式

2.SQL方式

-- Drop existing database link 
drop database link LINK_NC_ZS;
-- Create database link 
create database link LINK_NC_ZS  connect to ZSFNC  identified by 123 using '190.75.16.11:1327/ORCL';
View Code
-- Drop existing database link 
drop database link LINK_NC_ZS2;
-- Create database link 
create database link LINK_NC_ZS2
  connect to ZSFNC identified by 123
  using 'ZSF_NC_ZS =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 190.75.16.11)(PORT = 1327))
    )
    (CONNECT_DATA =
      (SERVICE_NAME =ORCL)
    )
  )';
View Code

3.dblink查看

SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
 
OWNER                          OBJECT_NAME
------------------------------ --------------------------------------------------------------------------------
PUBLIC                         DBMS_CLRDBLINK
PUBLIC                         ZSF_TEST
NC1013                         LINK_NC_ZS
NC1013                         LINK_NC_ZS2
NC1013                         ZSKJ_LINK
View Code

按照權限分為public、private兩種。

二、dblink使用

1.數據查詢

select * from so_sale@link_nc_zs
View Code

2.數據插入

SQL> insert into t@dblinktest values(1);
1 row created.
View Code

三、dblink優缺點

過度使用DBLINK做系統集成會帶來很多問題,問題主要由以下幾點:
1. 大量消耗數據庫資源;
本地系統每通過DBLINK鏈接遠端系統一次,都會生成一個本地session,如本地session不退出或者手動釋放,只有通過session超時才能自動釋放,會浪費大量的系統資源
2. 容易出現數據庫BUG;
大量使用DBLINK,本地系統極易出現ORA-02068、ORA-03113、ORA-02080、ORA-02054、ORA-02050等Oracle錯誤,這種錯誤大部分會影響當前session正在處理的業務
3. 性能較差;
由於使用DBLINK,本地系統在獲取數據時,每次鏈接都會對遠端數據庫進行一次全表掃描,且所有數據都會傳輸回本地數據庫內,導致性能降低並且嚴重浪費當前系統資源。尤其出現一條sql語句從兩個DBLINK中取數,更被稱之為“性能殺手”,尤其是OLTP型數據庫
4. 數據傳輸不穩定,占用帶寬嚴重,容易產生丟包風險;
DBLINK本身沒有數據存儲、監控等功能,是通過網絡中的數據庫進行傳輸時,如果在傳輸過程中出現數據丟包現象,DBLINK本身不會發現,只用當業務進行完畢才能發現丟包現象,這樣會影響當前正在處理的業務;另外,通過DBLINK查詢的數據會像數據全部傳至本地數據庫進行操作,數據傳輸量很大,占用帶寬嚴重,可能會導致網絡堵塞
5. Oracle數據功能受限
DBLINK本身不支持對oracle LOB大對象的操作,在使用PROCDURE時,使用COMMIT等操作時可能會出現錯誤;
6. 可擴展性較差
如果多系統之間 使用DBLINK進行傳輸,每增加一個系統,都會增加一個或多個DBLINK鏈接或者修改對應的接口程序,如果修改其中一個接口,需要修改所有關聯系統內的接口程序;
7. 維護性差、安全性較低
通過DBLINK進行鏈接需要將遠端數據庫用戶名、密碼、IP地址存在本地數據庫,如遠端進行密碼修改、IP地址變更,本地數據庫也需要修改,如果系統較多,每個系統都需要同時修改。切本地數據庫管理員能夠看到遠端數據的密碼、IP地址,對系統安全產生影響。

來自 <https://www.cnblogs.com/samuelhu/p/12400543.html>

 


免責聲明!

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



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