Oracle 12C使用備份集執行只讀表空間的跨平臺傳輸
使用帶用for transport或to platform子句的backup命令來建立備份集來將只讀表空間從一個平臺傳輸到另一個平臺。當傳輸只讀表空間時,必須要匯出這些表空間的後設資料。這些後設資料會在將表空間附加到目標資料庫時需要使用。當跨平臺傳輸表空間時,源平臺與目標平臺可以使用不同的位元組序。可以還原跨平臺備份中的所有資料檔案或表空間或者它們中的一部分。在還原這些物件之後,可以為被還原的資料檔案指定路徑與名稱。
使用備份集執行跨平臺傳輸表空間的先決條件
.源資料庫與目標資料庫的spfile引數檔案中的compatible引數必須設定為12.0.0或更高版本。
.被傳輸的表空間必須是自包含。執行dbms_tts.transport_set_check過程來檢查依賴性。如果transport_set_violations檢視包含指定表空間的相關行記錄,那麼必須在建立跨平臺備份之前解決這種依賴性。
.被傳輸的表空間必須是隻讀模式,除非在backup命令中使用了allow inconsistent子句。
下面的例子將Linux平臺上的RAC CDB中的jypdb的表空間tts與cs傳輸到windows平臺上的單例項CDB的jypdb資料庫中。使用備份集對只讀表空間執行跨平臺傳輸的操作如下:
1.檢查源資料庫與目標資料庫的compatible引數是否設定為12.0.0或更高版本
源資料庫
SQL> show parameter compatible NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ compatible string 12.2.0 noncdb_compatible boolean FALSE 目標資料庫 SQL> show parameter compatible NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ compatible string 12.2.0 noncdb_compatible boolean FALSE
2.對源資料庫中的要被傳輸的表空間tts與cs執行自包含檢查
SQL> alter session set container=jypdb; Session altered. SQL> exec sys.dbms_tts.transport_set_check('TTS,CS',true); PL/SQL procedure successfully completed. SQL> select * from sys.transport_set_violations; no rows selected
3.檢查源平臺與目標平臺的位元組序
源平臺
SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d where tp.platform_name=d.platform_name; PLATFORM_NAME ENDIAN_FORMAT ----------------------------------------------------------------------------------------------------- -------------- Linux x86 64-bit Little
目標平臺
SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d where t PLATFORM_NAME ENDIAN_FORMAT -------------------------------------------------------------------------------- -------------- Microsoft Windows x86 64-bit Little
4.將要被傳輸的表空間(tts,cs)設定為只讀狀態
SQL> alter tablespace tts read only; Tablespace altered. SQL> alter tablespace cs read only; Tablespace altered. SQL> select tablespace_name,status from user_tablespaces; TABLESPACE_NAME STATUS ------------------------------ --------- SYSTEM ONLINE SYSAUX ONLINE UNDOTBS1 ONLINE TEMP ONLINE UNDO_2 ONLINE USERS ONLINE TEST ONLINE TTS READ ONLY CS READ ONLY 9 rows selected.
5.給RMAN備份輸出檔案選擇命名方法,使用backup命令的format子句來為備份輸出檔案選擇輸出方法。
6.啟動RMAN連線到源資料庫(整個RAC CDB)並將重啟源資料庫並以只讀方式開啟
[oracle@jytest1 ~]$ rman target sys/abcd@jy catalog rco/abcd@jypdb_173 Recovery Manager: Release 12.2.0.1.0 - Production on Mon Feb 5 23:22:24 2018 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. connected to target database: JY (DBID=979425723) connected to recovery catalog database
7.在backup命令中使用for transport或to platform子句來備份表空間。下面的例子對錶空間tts與cs建立跨平臺傳輸備份。備份可以被還原到Microsoft Windows IA (64-bit)平臺。Data Pump匯出dump檔案包含了附加表空間到目標資料庫中所需要的後設資料。備份檔案與dump檔案儲存在/ora_backup/tts目錄中。
RMAN> backup to platform 'Microsoft Windows x86 64-bit' format '/ora_backup/tts/trans_ts.bck' datapump format '/ora_backup/tts/trans_ts_dmp.bck' tablespace JYPDB:'TTS',JYPDB:'CS'; Starting backup at 05-FEB-18 using channel ORA_DISK_1 Running TRANSPORT_SET_CHECK on specified tablespaces TRANSPORT_SET_CHECK completed successfully Performing export of metadata for specified tablespaces... EXPDP> Starting "SYS"."TRANSPORT_EXP_JY_xput": EXPDP> Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS EXPDP> Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS EXPDP> Processing object type TRANSPORTABLE_EXPORT/STATISTICS/MARKER EXPDP> Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK EXPDP> Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK EXPDP> Processing object type TRANSPORTABLE_EXPORT/TABLE EXPDP> Processing object type TRANSPORTABLE_EXPORT/INDEX/INDEX EXPDP> Master table "SYS"."TRANSPORT_EXP_JY_xput" successfully loaded/unloaded EXPDP> ****************************************************************************** EXPDP> Dump file set for SYS.TRANSPORT_EXP_JY_xput is: EXPDP> /u01/app/oracle/product/12.2.0/db/dbs/backup_tts_JY_38873.dmp EXPDP> ****************************************************************************** EXPDP> Datafiles required for transportable tablespace CS: EXPDP> +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/cs.294.966380783 EXPDP> Datafiles required for transportable tablespace TTS: EXPDP> +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/tts.257.966380353 EXPDP> Job "SYS"."TRANSPORT_EXP_JY_xput" successfully completed at Mon Feb 5 23:57:57 2018 elapsed 0 00:03:08 Export completed channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00022 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/tts.257.966380353 input datafile file number=00023 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/cs.294.966380783 channel ORA_DISK_1: starting piece 1 at 05-FEB-18 channel ORA_DISK_1: finished piece 1 at 05-FEB-18 piece handle=/ora_backup/tts/trans_ts.bck tag=TAG20180205T235319 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03 channel ORA_DISK_1: starting full datafile backup set input Data Pump dump file=/u01/app/oracle/product/12.2.0/db/dbs/backup_tts_JY_38873.dmp channel ORA_DISK_1: starting piece 1 at 05-FEB-18 channel ORA_DISK_1: finished piece 1 at 05-FEB-18 piece handle=/ora_backup/tts/trans_ts_dmp.bck tag=TAG20180205T235319 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 05-FEB-18 starting full resync of recovery catalog full resync complete [oracle@jytest1 tts]$ ls -lrt total 2472 -rw-r----- 1 oracle asmadmin 2318336 Feb 5 17:57 trans_ts.bck -rw-r----- 1 oracle asmadmin 212992 Feb 5 17:57 trans_ts_dmp.bck
因為在backup命令中使用了to platform子句,因此將資料檔案轉換成目標平臺位元組序的操作在源平臺執行。
8.將backup命令生成的備份集與Data Pump匯出的dump檔案傳輸到目標平臺的D:\app\oracle\oradata\tts目錄中
9.使用rman連線到目標資料庫(單例項CDB中的JYPDB)
C:\Users\Administrator>rman target sys/abcd@jypdb 恢復管理器: Release 12.2.0.1.0 - Production on 星期一 2月 5 00:22:31 2018 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. 已連線到目標資料庫: JY:JYPDB (DBID=4203494064)
10.使用有foreign tablespace子句的restore命令來還原從源平臺傳輸過來的備份集
RMAN> restore foreign tablespace TTS,CS to new from backupset 'D:\app\oracle\oradata\tts\trans_ts.bck' dump file from backupset 'D:\app\oracle\oradata\tts\trans_ts_dmp.bck'; 從位於 06-2月 -18 的 restore 開始 使用目標資料庫控制檔案替代恢復目錄 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=8 裝置型別=DISK 通道 ORA_DISK_1: 正在開始還原資料檔案備份集 通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案 通道 ORA_DISK_1: 正在還原外部表空間 TTS 中的所有檔案 通道 ORA_DISK_1: 正在還原外部表空間 CS 中的所有檔案 通道 ORA_DISK_1: 正在讀取備份片段 D:\app\oracle\oradata\tts\trans_ts.bck 通道 ORA_DISK_1: 將外部檔案 22 還原到 D:\APP\ORACLE\ORADATA\JY\5F9AC6865E87549FE053AB828A0ADE94\DATAFILE\O1_MF_TTS_F7K17RGW_.DBF 通道 ORA_DISK_1: 將外部檔案 23 還原到 D:\APP\ORACLE\ORADATA\JY\5F9AC6865E87549FE053AB828A0ADE94\DATAFILE\O1_MF_CS_F7K17RHC_.DBF 通道 ORA_DISK_1: 外部片段控制程式碼 = D:\app\oracle\oradata\tts\trans_ts.bck 通道 ORA_DISK_1: 已還原備份片段 1 通道 ORA_DISK_1: 還原完成, 用時: 00:00:02 通道 ORA_DISK_1: 正在開始還原資料檔案備份集 通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案 通道 ORA_DISK_1: 正在將資料泵轉儲檔案還原到 D:\app\oracle\product\12.2.0\dbhome_1/dbs/backup_tts_JY_38586.dmp 通道 ORA_DISK_1: 正在讀取備份片段 D:\app\oracle\oradata\tts\trans_ts_dmp.bck 通道 ORA_DISK_1: 外部片段控制程式碼 = D:\app\oracle\oradata\tts\trans_ts_dmp.bck 通道 ORA_DISK_1: 已還原備份片段 1 通道 ORA_DISK_1: 還原完成, 用時: 00:00:02 正在執行後設資料匯入... IMPDP> 已成功載入/解除安裝了主表 "SYS"."TSPITR_IMP_JY_pfCp" IMPDP> 啟動 "SYS"."TSPITR_IMP_JY_pfCp": IMPDP> 處理物件型別 TRANSPORTABLE_EXPORT/PLUGTS_BLK IMPDP> 處理物件型別 TRANSPORTABLE_EXPORT/TABLE IMPDP> 處理物件型別 TRANSPORTABLE_EXPORT/INDEX/INDEX IMPDP> 處理物件型別 TRANSPORTABLE_EXPORT/INDEX_STATISTICS IMPDP> 處理物件型別 TRANSPORTABLE_EXPORT/TABLE_STATISTICS IMPDP> 處理物件型別 TRANSPORTABLE_EXPORT/STATISTICS/MARKER IMPDP> 處理物件型別 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK IMPDP> 作業 "SYS"."TSPITR_IMP_JY_pfCp" 已於 星期二 2月 6 00:24:02 2018 elapsed 0 00:00:33 成功完成 匯入完畢 在 05-2月 -18 完成了 restore
11.在目標資料庫中查詢表tts.t1與cs.t2記錄是否與源資料庫中一致,如果一致說用表空間tts與cs跨平臺傳輸成功
源資料庫
SQL> alter session set container=jypdb; 會話已更改。 SQL> select count(*) from tts.t1; COUNT(*) ---------- 45 SQL> select count(*) from cs.t2; COUNT(*) ---------- 46
目標資料庫
SQL> alter session set container=jypdb; 會話已更改。 SQL> select count(*) from tts.t1; COUNT(*) ---------- 45 SQL> select count(*) from cs.t2; COUNT(*) ---------- 46
到此使用備份集跨平臺傳輸只讀表空間操作就完成了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2150872/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oraclc 12C使用不一致備份執行跨平臺傳輸表空間
- oracle跨版本與平臺執行傳輸表空間Oracle
- 12c跨平臺傳輸表空間
- 跨平臺表空間遷移(傳輸表空間)
- 11g使用增量備份來執行跨平臺傳輸表空間減少停機時間(xtts_rman)TTS
- 跨平臺表空間傳輸的實現
- 12c – 使用跨平臺增量備份來減少傳輸表空間的停機時間 (Doc ID 2102859.1)
- 12c – 使用跨平臺增量備份來減少傳輸表空間的停機時間 (文件 ID 2102859.1)
- 10g跨平臺傳輸表空間
- 用可傳輸表空間實現Oracle跨平臺移植Oracle
- [zt]跨平臺表空間傳輸 (DB遷移)
- Ora10G跨平臺傳輸表空間
- RMAN跨平臺傳輸表空間(different Endian)
- RMAN跨平臺傳輸表空間(same endian)
- 使用Oracle可傳輸表空間的特性複製資料(3)跨平臺的傳輸實踐Oracle
- 使用Oracle可傳輸表空間的特性複製資料(7)實戰RMAN備份傳輸表空間Oracle
- 用傳輸表空間跨平臺遷移資料
- RMAN跨平臺傳輸資料庫和表空間資料庫
- RMAN跨小版本跨平臺與位元組序傳輸表空間
- 同位元組序跨平臺表空間傳輸的測試
- RMAN跨平臺可傳輸表空間和資料庫資料庫
- 10g新特性之-跨平臺表空間傳輸
- 實戰RMAN備份傳輸表空間
- 利用可傳輸表空間跨平臺遷移 -RMAN CONVERT
- Oracle 11g RMAN恢復-只讀表空間的恢復(備份是在表空間只讀狀態下做的)Oracle
- RMAN使用備份傳輸表空間的各種自定義操作
- 如何用rman 不備份只讀表空間的資料
- 【資料遷移】XTTS跨平臺傳輸表空間v4TTS
- 10G新特性筆記之跨平臺傳輸表空間筆記
- 【資料遷移】XTTS跨平臺傳輸表空間(1.傳統方式)TTS
- Oracle 表空間傳輸Oracle
- oracle表空間傳輸Oracle
- Oracle傳輸表空間Oracle
- Oracle資料庫同平臺與異構平臺下的表空間傳輸Oracle資料庫
- 12C 基於 RMAN 備份集進行跨平臺(different Endian)資料傳輸 (文件 ID 2108887.1)
- 傳輸表空間操作-OracleOracle
- Oracle傳輸表空間(TTS)OracleTTS
- Oracle 傳輸表空間-RmanOracle