12C 基於 RMAN 備份集進行跨平臺(different Endian)資料傳輸 (文件 ID 2108887.1)
文件內容
|
目標 |
|
解決方案 |
1. 連線到需要匯出表空間的源資料庫(AIX) |
2. 將需要傳輸的表空間設定為只讀模式 |
3. 在源資料庫備份表空間,在 backup 命令中,要指定引數 TO PLATFORM /FOR TRANSPORT |
4. 移動備份集到目的伺服器 |
5. 連線到目的資料庫(Linux x86 64-bit) |
6. 透過備份集恢復(Restore)表空間 |
7. 更改表空間為讀寫模式 |
|
參考 |
適用於:
Oracle Database - Enterprise Edition - 版本 12.1.0.1 和更高版本本文件所含資訊適用於所有平臺
目標
解釋 12C 的新功能,如何使用 RMAN 進行跨平臺(different Endian)的資料傳輸。
RMAN 可以跨平臺傳輸資料庫,資料檔案,和表空間。使用 RMAN 備份集進行跨平臺的資料庫傳輸,可利用塊壓縮,而降低備份集大小。這會提高備份效能,並降低備份集透過網路傳輸的時間。
RMAN 跨平臺備份,可以將備份集還原到不同 Endian 的目的資料庫。
解決方案
前提條件
- 使用 RMAN 備份集執行跨平臺資料傳輸,目的資料庫版本必須要求 12.1 及之後版本。
- 引數 COMPATIBLE 必須設定為 12.0.0 或更高。
- 被傳輸的表空間需要為 read-only 模式,除非在備份命令執行時,使用 ALLOW INCONSISTENT 條目。
- 被傳輸的表空間需要是自包含的(self-contained)。
- 使用 DBMS_TTS.TRANSPORT_SET_CHECK 檢查依賴關係,如果檢視 TRANSPORT_SET_VIOLATIONS 包含的行資訊,指向了特定的表空間,在建立跨平臺備份前,必須要先解決依賴關係。
注意事項
外部資料檔案
一個不屬於目的資料庫的資料檔案,被稱為外部資料檔案。這些資料檔案,作為資料傳輸的一部分,被傳輸並插入到目的資料庫。在源資料庫中,這個資料檔案有它自己的原始的資料檔案號。
外部表空間
外部表空間是由一組外部資料檔案組成的在源資料庫上的表空間。這些外部資料檔案不屬於目的資料庫,但是被傳輸到目的資料庫,並且依然使用源資料庫的表空間名。
外部資料檔案複製
外部資料檔案複製,是從一個跨平臺備份集中恢復出來的資料檔案。 由於資料的不一致性,它不能被直接的插入到目的資料庫。我們必須先透過跨平臺的增量備份來恢復(recover)這個外部資料檔案,然後插入到目的資料庫。
資料泵的目的地
資料泵的目的地,即目的資料庫主機上的一個磁碟路徑,用以存放資料庫匯出的檔案和日誌。
例如:
- 源資料庫:AIX-Based Systems (64-bit) (Big Endian format)
- 目的資料庫:Linux x86 64-bit (Little Endian format)
- 在源端和目的端資料庫,將 SYSBACKUP 許可權賦予使用者 RMAN_TEST
- 被傳輸的表空間 TEST1
- 源資料名 SOURCE
- 目的資料庫名 DEST
注意:如果被傳輸的表空間中包含的物件的屬主(schema)在目的資料庫不存在,將會遇到下面問題:
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'DMSTEAM' does not exist
Failing sql is:GRANT DELETE ON "ADVTVS"."FT_ENQUIRY_PLAN" TO "DMSTEAM"
ORA-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'DMSTEAM' does not exist
為防止以上問題發生,需要在目的資料庫上手動建立全部的,已經在源資料庫存在的使用者(schema)。 可以透過下面的查詢,來檢查使用者是否存在。
select distinct OWNER from dba_segments where tablespace_name in ('被傳輸的表空間名');
透過備份集,跨平臺傳輸只讀表空間的具體步驟:
1. 連線到需要匯出表空間的源資料庫(AIX)
$ rman
Recovery Manager: Release 12.1.0.2.0 - Production on Thu May 28 14:38:06 2015
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
RMAN> Connect target "rman_test@source AS SYSBACKUP";
根據提示,輸入密碼。
2. 將需要傳輸的表空間設定為只讀模式
RMAN> alter tablespace test1 read only;
using target database control file instead of recovery catalog
Statement processed
3. 在源資料庫備份表空間,在 backup 命令中,要指定引數 TO PLATFORM /FOR TRANSPORT
使用 DATAPUMP 引數來明確指定對應表空間的資料泵檔案。
TO PLATFORM 'Linux x86 64-bit'
FORMAT '/tmp/xplat_backups/trans_ts.bck'
DATAPUMP FORMAT '/tmp/xplat_backups/trans_ts_dmp.bck'
TABLESPACE test1;
這個命令會輸出下面結果:
RMAN>
Starting backup at 22-MAY-15
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=184 device type=DISK
Running TRANSPORT_SET_CHECK on specified tablespaces
TRANSPORT_SET_CHECK completed successfully
EXPDP> Starting "SYSBACKUP"."TRANSPORT_EXP_SOURCE_asbF":
EXPDP> Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
EXPDP> Processing object type TRANSPORTABLE_EXPORT/TABLE
EXPDP> Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS
EXPDP> Processing object type TRANSPORTABLE_EXPORT/STATISTICS/MARKER
EXPDP> Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
EXPDP> Master table "SYSBACKUP"."TRANSPORT_EXP_SOURCE_asbF" successfully loaded/unloaded
EXPDP> ******************************************************************************
EXPDP> Dump file set for SYSBACKUP.TRANSPORT_EXP_SOURCE_asbF is:
EXPDP> /u01/app/oracle/product/dbs/backup_tts_SOURCE_93693.dmp
EXPDP> ******************************************************************************
EXPDP> Datafiles required for transportable tablespace TEST1:
EXPDP> /u01/app/app/oracle/oradata/SOURCE/test01.dbf
EXPDP> Job "SYSBACKUP"."TRANSPORT_EXP_SOURCE_asbF" successfully completed at Fri May 22 11:54:53 2015 elapsed 0 00:02:06
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=00002 name=/u01/app/app/oracle/oradata/SOURCE/test01.dbf
channel ORA_DISK_1: starting piece 1 at 22-MAY-15
channel ORA_DISK_1: finished piece 1 at 22-MAY-15
piece handle=/u01/app/app/oracle/oradata/trans_ts.bck tag=TAG20150522T115158 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting full datafile backup set
input Data Pump dump file=/u01/app/app/oracle/product/ dbs/backup_tts_SOURCE_93693.dmp
channel ORA_DISK_1: starting piece 1 at 22-MAY-15
channel ORA_DISK_1: finished piece 1 at 22-MAY-15
piece handle=/u01/app/app/oracle/oradata/trans_ts_dmp.bck tag=TAG20150522T115158 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 22-MAY-15
當在源庫使用引數'TO PLATFORM',oracle 會轉換資料檔案的 endian 格式到目的資料庫。
退出連線到源資料庫的 RMAN 會話。
4. 移動備份集到目的伺服器
將 Backup 命令和資料泵匯出的檔案移動到目的主機。可以使用 sftp,ftp 和 scp 等系統工具進行移動/複製。
5. 連線到目的資料庫(Linux x86 64-bit)
連線到目的資料庫(表空間需要被匯入的庫),並且目的資料庫保持讀寫模式。
這個樣例中,目的資料庫中的使用者 TEST1 需要被賦予 SYSBACKUP 許可權:
$ rman
Recovery Manager: Release 12.1.0.2.0 - Production on Thu May 28 14:38:06 2015
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
RMAN> connect target "rman_test@dest AS SYSBACKUP";
根據提示,輸入使用者 RMAN_TEST 的密碼。
6. 透過備份集恢復(Restore)表空間
從源資料庫傳輸過來的備份集中,使用 restore 命令恢復資料檔案。使用資料泵檔案匯入包含表空間的源資料,並將這個表空間插入到目的資料庫。
這個樣例中,備份集和資料泵檔案複製到目錄 /u01/app/oracle/oradata/test/。
如果目的資料庫的引數 db_create_file_dest 已經設定,執行下面命令:
FOREIGN TABLESPACE TEST1 to NEW
FROM BACKUPSET '/u01/app/oracle/oradata/test/trans_ts.bck'
DUMP FILE FROM BACKUPSET '/u01/app/oracle/oradata/test/trans_ts_dmp.bck';
注意:使用"to NEW"還原資料檔案到引數 db_create_file_dest 指定的目錄中。
如果正在使用多備份集,則顯示如下:
ALL FOREIGN DATAFILES TO NEW
FROM BACKUPSET '/mnt/staging_clt_target/tts/all_3tbs_uhrdm8f5_1_1.bck' BACKUPSET '/mnt/staging_clt_target/tts/all_3tbs_uirdm8f6_1_1.bck'
DUMP FILE FROM BACKUPSET '/mnt/staging_clt_target/tts/all_3tbs_uhrdm8f5_1_1.bck' ;
如果為每個備份集使用多個備份片,則需要指定每個備份集裡面備份片的名字:
ALL FOREIGN DATAFILES TO NEW
FROM BACKUPSET '/mnt/staging_clt_target/tts/RTODP-a0r8utgu_1_1','/mnt/staging_clt_target/tts/RTODP-a0r8utgu_2_1',
BACKUPSET '/mnt/staging_clt_target/tts/RTODP-a1r8utgu_1_1','/mnt/staging_clt_target/tts/RTODP-a1r8utgu_2_1'
DUMP FILE FROM BACKUPSET '/mnt/staging_clt_target/tts/RTODP_metadata_1.bck';
如果目的資料庫的引數 db_create_file_dest 沒有設定,需要指定資料檔案的存放路徑:
FOREIGN TABLESPACE TEST1 format '/u01/app/oracle/oradata/%U'
FROM BACKUPSET '/u01/app/oracle/oradata/dest/trans_ts.bck'
DUMP FILE FROM BACKUPSET '/u01/app/oracle/oradata/dest/trmp.bck';
這個命令會輸出下面結果:
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring all files in foreign tablespace TEST1
channel ORA_DISK_1: reading from backup piece/u01/app/oracle/oradata/dest/trans_ts.bck
channel ORA_DISK_1: restoring foreign file 2 to/u01/app/oracle/oradata/dest/data_D-dest_I-2390668590_TS-TEST1_FNO-2_jvq7is5b
channel ORA_DISK_1: foreign piece handle=/u01/app/oracle/oradata/dest/trans_ts.bck
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring Data Pump dump file to/u01/app/oracle/product/c12101/dbs/backup_tts_dest_31167.dmp
channel ORA_DISK_1: reading from backup piece/u01/app/oracle/oradata/dest/trans_ts_dmp.bck
channel ORA_DISK_1: foreign piece handle=/u01/app/oracle/oradata/dest/trans_ts_dmp.bck
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
Performing import of metadata...
IMPDP> Master table "SYSBACKUP"."TSPITR_IMP_dest_jykD" successfully loaded/unloaded
IMPDP> import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
export done in US7ASCII character set and AL16UTF16 NCHAR character set
IMPDP> Starting "SYSBACKUP"."TSPITR_IMP_dest_jykD":
IMPDP> Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
IMPDP> Processing object type TRANSPORTABLE_EXPORT/TABLE
IMPDP> Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS
IMPDP> Processing object type TRANSPORTABLE_EXPORT/STATISTICS/MARKER
IMPDP> Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
IMPDP> Job "SYSBACKUP"."TSPITR_IMP_dest_jykD" successfully completed at Fri May 22 12:19:08 2015 elapsed 0 00:00:05
Import completed
Finished restore at 22-MAY-15
退出 RMAN 會話,並連線到目的資料庫。
7. 更改表空間為讀寫模式
SQL> select status,tablespace_name from dba_tablespaces;
STATUS TABLESPACE_NAME
--------- ------------------------------
ONLINE SYSTEM
ONLINE SYSAUX
ONLINE UNDOTBS1
ONLINE TEMP
ONLINE USERS
READ ONLY TEST1
SQL> Alter tablespace test1 read write ;
Tablespace altered.
SQL> select status,tablespace_name from dba_tablespaces;
STATUS TABLESPACE_NAME
--------- ------------------------------
ONLINE SYSTEM
ONLINE SYSAUX
ONLINE UNDOTBS1
ONLINE TEMP
ONLINE USERS
ONLINE TEST1
參考
NOTE:2005729.1 - 12C - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31393455/viewspace-2130499/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN跨平臺傳輸表空間(different Endian)
- RMAN跨平臺傳輸表空間(same endian)
- Oracle 12C使用備份集執行只讀表空間的跨平臺傳輸Oracle
- rman進行跨平臺資料遷移
- RMAN跨平臺傳輸資料庫和表空間資料庫
- RMAN跨平臺可傳輸表空間和資料庫資料庫
- 12c – 使用跨平臺增量備份來減少傳輸表空間的停機時間 (文件 ID 2102859.1)
- Oraclc 12C使用不一致備份執行跨平臺傳輸表空間
- 12c跨平臺傳輸表空間
- 應用RMAN Transportable Database進行資料庫跨平臺遷移Database資料庫
- 利用RMAN Convert database特性進行跨平臺遷移資料Database
- 12c跨平臺完成PDB的備份遷移
- 關於WINDOWS平臺下RMAN備份移植Windows
- 12c – 使用跨平臺增量備份來減少傳輸表空間的停機時間 (Doc ID 2102859.1)
- RMAN備份恢復典型案例——跨平臺遷移pdb
- 11g使用增量備份來執行跨平臺傳輸表空間減少停機時間(xtts_rman)TTS
- RMAN跨小版本跨平臺與位元組序傳輸表空間
- Backup And Recovery User's Guide-備份資料庫-RMAN備份概覽-進行壓縮備份GUIIDE資料庫
- 用傳輸表空間跨平臺遷移資料
- Backup And Recovery User's Guide-備份RMAN備份-使用RMAN備份備份集GUIIDE
- 【資料遷移】XTTS跨平臺傳輸表空間v3(2.RMAN增量)TTS
- 如何利用Rman對Oracle資料庫進行備份Oracle資料庫
- Oracle 12C 跨網路傳輸資料庫Oracle資料庫
- 利用可傳輸表空間跨平臺遷移 -RMAN CONVERT
- 使用RMAN完成跨平臺資料遷移
- 利用RMAN跨平臺遷移資料庫資料庫
- ORACLE利用STANDBY端RMAN備份進行資料恢復Oracle資料恢復
- 實戰RMAN備份傳輸表空間
- Backup And Recovery User's Guide-RMAN備份概念-備份集-備份集和備份片GUIIDE
- RMAN中CONVERT跨平臺傳輸資料庫時整庫轉換不通過的問題資料庫
- Backup And Recovery User's Guide-備份資料庫-RMAN備份概覽-指定備份輸出選項GUIIDE資料庫
- oracle跨版本與平臺執行傳輸表空間Oracle
- rman 跨平臺支援
- Oracle 10g 跨平臺傳輸 相容平臺列表Oracle 10g
- mysqldump 進行資料備份MySql
- 【資料遷移】XTTS跨平臺傳輸表空間(1.傳統方式)TTS
- Backup And Recovery User's Guide-RMAN備份概念-備份集-備份集塊壓縮GUIIDE
- Solaris 資料備份和傳輸工具(轉)