Oracle 12C如何使用备份集执行只读表空间的跨平台传输
这篇文章主要介绍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>showparametercompatibleNAMETYPEVALUE-----------------------------------------------------------------------------compatiblestring12.2.0noncdb_compatiblebooleanFALSE目标数据库SQL>showparametercompatibleNAMETYPEVALUE-----------------------------------------------------------------------------compatiblestring12.2.0noncdb_compatiblebooleanFALSE
2.对源数据库中的要被传输的表空间tts与cs执行自包含检查
SQL>altersessionsetcontainer=jypdb;Sessionaltered.SQL>execsys.dbms_tts.transport_set_check('TTS,CS',true);PL/SQLproceduresuccessfullycompleted.SQL>select*fromsys.transport_set_violations;norowsselected
3.检查源平台与目标平台的字节序
源平台
SQL>selectd.platform_name,endian_formatfromv$transportable_platformtp,v$databasedwheretp.platform_name=d.platform_name;PLATFORM_NAMEENDIAN_FORMAT-------------------------------------------------------------------------------------------------------------------Linuxx8664-bitLittle
目标平台
SQL>selectd.platform_name,endian_formatfromv$transportable_platformtp,v$databasedwheretPLATFORM_NAMEENDIAN_FORMAT----------------------------------------------------------------------------------------------MicrosoftWindowsx8664-bitLittle
4.将要被传输的表空间(tts,cs)设置为只读状态
SQL>altertablespacettsreadonly;Tablespacealtered.SQL>altertablespacecsreadonly;Tablespacealtered.SQL>selecttablespace_name,statusfromuser_tablespaces;TABLESPACE_NAMESTATUS---------------------------------------SYSTEMONLINESYSAUXONLINEUNDOTBS1ONLINETEMPONLINEUNDO_2ONLINEUSERSONLINETESTONLINETTSREADONLYCSREADONLY9rowsselected.
5.给RMAN备份输出文件选择命名方法,使用backup命令的format子句来为备份输出文件选择输出方法。
6.启动RMAN连接到源数据库(整个RAC CDB)并将重启源数据库并以只读方式打开
[oracle@jytest1~]$rmantargetsys/abcd@jycatalogrco/abcd@jypdb_173RecoveryManager:Release12.2.0.1.0-ProductiononMonFeb523:22:242018Copyright(c)1982,2017,Oracleand/oritsaffiliates.Allrightsreserved.connectedtotargetdatabase:JY(DBID=979425723)connectedtorecoverycatalogdatabase
7.在backup命令中使用for transport或to platform子句来备份表空间。下面的例子对表空间tts与cs创建跨平台传输备份。备份可以被还原到Microsoft Windows IA (64-bit)平台。Data Pump导出dump文件包含了附加表空间到目标数据库中所需要的元数据。备份文件与dump文件存储在/ora_backup/tts目录中。
RMAN>backuptoplatform'MicrosoftWindowsx8664-bit'format'/ora_backup/tts/trans_ts.bck'datapumpformat'/ora_backup/tts/trans_ts_dmp.bck'tablespaceJYPDB:'TTS',JYPDB:'CS';Startingbackupat05-FEB-18usingchannelORA_DISK_1RunningTRANSPORT_SET_CHECKonspecifiedtablespacesTRANSPORT_SET_CHECKcompletedsuccessfullyPerformingexportofmetadataforspecifiedtablespaces...EXPDP>Starting"SYS"."TRANSPORT_EXP_JY_xput":EXPDP>ProcessingobjecttypeTRANSPORTABLE_EXPORT/INDEX_STATISTICSEXPDP>ProcessingobjecttypeTRANSPORTABLE_EXPORT/TABLE_STATISTICSEXPDP>ProcessingobjecttypeTRANSPORTABLE_EXPORT/STATISTICS/MARKEREXPDP>ProcessingobjecttypeTRANSPORTABLE_EXPORT/PLUGTS_BLKEXPDP>ProcessingobjecttypeTRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKEXPDP>ProcessingobjecttypeTRANSPORTABLE_EXPORT/TABLEEXPDP>ProcessingobjecttypeTRANSPORTABLE_EXPORT/INDEX/INDEXEXPDP>Mastertable"SYS"."TRANSPORT_EXP_JY_xput"successfullyloaded/unloadedEXPDP>******************************************************************************EXPDP>DumpfilesetforSYS.TRANSPORT_EXP_JY_xputis:EXPDP>/u01/app/oracle/product/12.2.0/db/dbs/backup_tts_JY_38873.dmpEXPDP>******************************************************************************EXPDP>DatafilesrequiredfortransportabletablespaceCS:EXPDP>+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/cs.294.966380783EXPDP>DatafilesrequiredfortransportabletablespaceTTS:EXPDP>+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/tts.257.966380353EXPDP>Job"SYS"."TRANSPORT_EXP_JY_xput"successfullycompletedatMonFeb523:57:572018elapsed000:03:08ExportcompletedchannelORA_DISK_1:startingfulldatafilebackupsetchannelORA_DISK_1:specifyingdatafile(s)inbackupsetinputdatafilefilenumber=00022name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/tts.257.966380353inputdatafilefilenumber=00023name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/cs.294.966380783channelORA_DISK_1:startingpiece1at05-FEB-18channelORA_DISK_1:finishedpiece1at05-FEB-18piecehandle=/ora_backup/tts/trans_ts.bcktag=TAG20180205T235319comment=NONEchannelORA_DISK_1:backupsetcomplete,elapsedtime:00:00:03channelORA_DISK_1:startingfulldatafilebackupsetinputDataPumpdumpfile=/u01/app/oracle/product/12.2.0/db/dbs/backup_tts_JY_38873.dmpchannelORA_DISK_1:startingpiece1at05-FEB-18channelORA_DISK_1:finishedpiece1at05-FEB-18piecehandle=/ora_backup/tts/trans_ts_dmp.bcktag=TAG20180205T235319comment=NONEchannelORA_DISK_1:backupsetcomplete,elapsedtime:00:00:01Finishedbackupat05-FEB-18startingfullresyncofrecoverycatalogfullresynccomplete[oracle@jytest1tts]$ls-lrttotal2472-rw-r-----1oracleasmadmin2318336Feb517:57trans_ts.bck-rw-r-----1oracleasmadmin212992Feb517:57trans_ts_dmp.bck
因为在backup命令中使用了to platform子句,因此将数据文件转换成目标平台字节序的操作在源平台执行。
8.将backup命令生成的备份集与Data Pump导出的dump文件传输到目标平台的D:\app\oracle\oradata\tts目录中
9.使用rman连接到目标数据库(单实例CDB中的JYPDB)
C:\Users\Administrator>rmantargetsys/abcd@jypdb恢复管理器:Release12.2.0.1.0-Productionon星期一2月500:22:312018Copyright(c)1982,2017,Oracleand/oritsaffiliates.Allrightsreserved.已连接到目标数据库:JY:JYPDB(DBID=4203494064)
10.使用有foreign tablespace子句的restore命令来还原从源平台传输过来的备份集
RMAN>restoreforeigntablespaceTTS,CStonewfrombackupset'D:\app\oracle\oradata\tts\trans_ts.bck'dumpfilefrombackupset'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_BLKIMPDP>处理对象类型TRANSPORTABLE_EXPORT/TABLEIMPDP>处理对象类型TRANSPORTABLE_EXPORT/INDEX/INDEXIMPDP>处理对象类型TRANSPORTABLE_EXPORT/INDEX_STATISTICSIMPDP>处理对象类型TRANSPORTABLE_EXPORT/TABLE_STATISTICSIMPDP>处理对象类型TRANSPORTABLE_EXPORT/STATISTICS/MARKERIMPDP>处理对象类型TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKIMPDP>作业"SYS"."TSPITR_IMP_JY_pfCp"已于星期二2月600:24:022018elapsed000:00:33成功完成导入完毕在05-2月-18完成了restore
11.在目标数据库中查询表tts.t1与cs.t2记录是否与源数据库中一致,如果一致说用表空间tts与cs跨平台传输成功
源数据库
SQL>altersessionsetcontainer=jypdb;会话已更改。SQL>selectcount(*)fromtts.t1;COUNT(*)----------45SQL>selectcount(*)fromcs.t2;COUNT(*)----------46
目标数据库
SQL>altersessionsetcontainer=jypdb;会话已更改。SQL>selectcount(*)fromtts.t1;COUNT(*)----------45SQL>selectcount(*)fromcs.t2;COUNT(*)----------46
以上是“Oracle 12C如何使用备份集执行只读表空间的跨平台传输”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。