Oracle使用SQL傳輸資料表空間
源環境:RHEL 6.4 + Oracle 11.2.0.4
目的環境:RHEL 6.4 + Oracle 11.2.0.4 DG雙機
要求:使用SQL傳輸資料表空間DBS_D_JINGYU從源環境到目的環境。
- 1.建立目錄
- 2.檢查資料表空間自身的一致性
- 3.expdp匯出資料表空間的中繼資料
- 4.轉儲檔案和資料檔案複製到目的資料庫伺服器
- 5.在目的資料庫上,impdp匯入資料表空間
- 6.資料表空間設為讀寫(來源資料庫和目的資料庫)
1.建立目錄
--來源資料庫create directory src_dpump_dir as '/tmp';create directory src_dbf_dir as '/oradata/data/SHITAN/datafile';--目的資料庫create directory dest_dpump_dir as '/tmp';create directory dest_dbf_dir as '/u01/oradata01/CHICAGO/datafile';
2.檢查資料表空間自身的一致性
exec dbms_tts.transport_set_check('DBS_D_JINGYU',TRUE);select * from transport_set_violations;--確定資料表空間設為唯讀alter tablespace DBS_D_JINGYU read only;
3.expdp匯出資料表空間的中繼資料
expdp system/oracle dumpfile=EXPDP_META_SRC.DMP directory=src_dpump_dir transport_tablespaces=DBS_D_JINGYU--成功匯出,部分日誌資訊如下:******************************************************************************Dump file set for SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is: /tmp/EXPDP_META_SRC.DMP******************************************************************************Datafiles required for transportable tablespace DBS_D_JINGYU: /oradata/data/SHITAN/datafile/o1_mf_dbs_d_ji_cb0dbxt0_.dbfJob "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at Thu Jan 21 16:22:50 2016 elapsed 0 00:01:15
4.轉儲檔案和資料檔案複製到目的資料庫伺服器
--建立源到目的資料庫的資料鏈create public database link dest34 connect to system identified by oracle using 'destDB';select * from dual@dest34;--複製資料庫檔案begin dbms_file_transfer.put_file ('src_dbf_dir','o1_mf_dbs_d_ji_cb0dbxt0_.dbf', 'dest_dbf_dir','o1_mf_dbs_d_ji_cb0dbxt0_.dbf', 'dest34');end;/--複製轉儲檔案begin dbms_file_transfer.put_file ('src_dpump_dir','EXPDP_META_SRC.DMP', 'dest_dpump_dir','EXPDP_META_SRC.DMP', 'dest34');end;/
5.在目的資料庫上,impdp匯入資料表空間
--需要先建立使用者jingyu並賦權create user jingyu identified by jingyu ;grant dba to jingyu;--匯入資料表空間impdp system/oracle dumpfile=EXPDP_META_SRC.DMP directory=dest_dpump_dir transport_datafiles=/u01/oradata01/CHICAGO/datafile/o1_mf_dbs_d_ji_cb0dbxt0_.dbf--更改使用者jingyu的預設資料表空間和暫存資料表空間(可選,建議操作)create temporary tablespace temp_jingyu tempfile size 30M autoextend off;alter user jingyu TEMPORARY TABLESPACE temp_jingyu DEFAULT TABLESPACE dbs_d_jingyu QUOTA UNLIMITED ON dbs_d_jingyu;
6.資料表空間設為讀寫(來源資料庫和目的資料庫)
--分別檢查資料表空間狀態select TABLESPACE_NAME, STATUS from dba_tablespaces;--設定資料表空間為讀寫狀態alter tablespace DBS_D_JINGYU read write;