?
前提:進行表空間傳輸需要用戶有 SYSDBA 的系統權限,被移動的表空間是自包含的表空間,不應有依賴于表空間外部對象的對象存在。確定是否自包含可使用系統包 DBMS_TTS 中的 TRANSPORT_SET_CHECK 過程進行檢查
例如要對表空間OLTP 進行傳輸,
SQL> exec dbms_tts.transport_set_check('OLTP',true,true);
PL/SQL procedure successfully completed.
SQL> select * from transport_set_violations;
no rows selected
如果有違返自包含,則會在表 TRANSPORT_TABLESPACE_SET_VIOLATIONS 視圖,如果沒有則里面沒有數據。no rows selected shows the oltp tablespace is not self-contained.
?
第一步:表空間變為只讀
將源數據庫中移動表空間設為只讀狀態
SQL> alter tablespace oltp read only;
?
第二步:源數據庫進行導出操作
$expdp userid=system/oracle directory=my_test dumpfile=oltp.dump transport_tablespaces='oltp'
?
第三步:把dump文件和表空間的數據庫文件scp到目標主機上
?
第四步: 目的數據庫進行導入
$impdp? userid=system/oracle directory=my_test dumpfile=oltp.dump transport_datafiles='u01/app/oracle/oradata/OMS/oltp01.dbf'
?
?
第五步: 將源、目的數據庫的表空間狀態由只讀改為可讀寫
ALTERTABLESPACE?OLTPREAD WRITE ;
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
