expdp遠程導出方式network_link使用

很多時候,出於數據安全考慮,需要備份一些重要的業務數據,但這個時候服務器沒有直接登錄的權限,我們只能通過數據庫用戶名方式進行訪問,這個時候可以考慮用exp,但exp畢竟是個舊版的工具,功能沒有expdp那麼全面,但由於expdp只能在服務端進行本地備份寫入,受限比較大,這個時候可以考慮用expdp的network_link方式進行遠程導出或直接導入,下面是這個方案的詳細介紹:

解決方案:通過dblink實現遠程數據的導入導出。

  1. 本地庫創建dblink指向遠程庫。
create database link link_oss connect to dba_ftc identified by ****** using 'OSS';
  1. 本地庫創建directory目錄對象。
create directory expdp_dir as '/home/oracle11g/expdp_dir/';
  1. 本地庫創建數據泵導出參數文件。
vi exp.par:
userid=username/password  //本地庫的用戶名密碼,可用上面創建的dblink和directory目錄。
directory=expdp_dir  //本地庫創建的directory目錄。
dumpfile=gf_expdp.dump  //dump文件名。
logfile=gf_expdp.log  //日誌文件名。
tables=depkf15.t_cp  //要導出的表。
query='"where rownum<1000001"' //導出條件,前100萬行。
network_link=gf_local  //dblink名。

注意,這裏有個小問題值得注意,tables=depkf15.t_cp,如果待導出表和登錄用戶不同,則這裏需要添加導出的對象schema(用戶),否則會報錯。

  1. 執行導出命令。
expdp '"/ as sysdba"'  network_link=link_oss  directory=dir1 dumpfile=om_order.dmp tables=gdoss.om_order 

impdp使用network_link直接導入
1,從源庫直接複製用戶到目標庫。
建立從目標庫連接源庫的dblink,登錄目標庫使用下面語句

impdp system/password schemas=用戶名 network_link=dblink

2,也可以將源庫作爲目標庫,創建連接自身的dblink

impdp system/password schemas=用戶名 network_link=dblink remap_schema=用戶名:新用戶名

通過network_link方式直接將遠程用戶(schema)複製到本地!

發佈了31 篇原創文章 · 獲贊 6 · 訪問量 7431
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章