Oracle怎么实现跨平台传输PDB
本篇内容主要讲解“Oracle怎么实现跨平台传输PDB”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle怎么实现跨平台传输PDB”吧!
PDB可以被传输并插入到与源平台不同的目标CDB数据库中。除了需要对PDB创建备份外还需要将PDB插入到目标CDB中所需要的元数据。源CDB与目标CDB中的compatible参数必须设置为12.2,并且源平台与目标平台有相同的字节 序。
下面的例子将Linux平台上的RAC CDB中的PDB数据库(jypdb与testpdb)传输到windows平台上的单实例CDB数据库中。 执行跨平台传输的操作如下:
1.检查源数据库与目标数据库的compatible参数是否设置为12.0.0或更高版本
源数据库
SQL>showparametercompatibleNAMETYPEVALUE-----------------------------------------------------------------------------compatiblestring12.2.0noncdb_compatiblebooleanFALSE
目标数据库
SQL>showparametercompatibleNAMETYPEVALUE-----------------------------------------------------------------------------compatiblestring12.2.0noncdb_compatiblebooleanFALSE
2.检查源平台与目标平台的字节序
源平台
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$databasedwheretp.platform_name=d.platform_name;PLATFORM_NAMEENDIAN_FORMAT----------------------------------------------------------------------------------------------MicrosoftWindowsx8664-bitLittle
3.将要被传输的pdb(jypdb,testpdb)设置为关闭状态
SQL>alterpluggabledatabasejypdbcloseimmediate;Pluggabledatabasealtered.SQL>alterpluggabledatabasetestpdbcloseimmediate;Pluggabledatabasealtered.SQL>selectname,open_modefromv$pdbs;NAMEOPEN_MODE------------------------------------------------------------------------------------------------------------------------------------------PDB$SEEDREADONLYJYPDBMOUNTEDTESTPDBMOUNTED
4.使用backup pluggable database命令来为PDB(jypdb,testpdb)创建跨平台完全备份
下面的例子是为PDB(jypdb,testpdb)创建跨平台传输备份目标平台为Microsoft Windows x86 64-bit。使用unplug into子句将生成将PDB插入目标CDB中所需要的元数据XML文件。
RMAN>backuptoplatform='MicrosoftWindowsx8664-bit'unpluginto'/ora_backup/tpdbs/metadata_jypdb.xml'pluggabledatabasejypdbformat'/ora_backup/tpdbs/transport_jypdb.bck';Startingbackupat11-FEB-18usingchannelORA_DISK_1runningUNPLUGonthespecifiedpluggabledatabase:JYPDBUNPLUGfilepath:/ora_backup/tpdbs/metadata_jypdb.xmlchannelORA_DISK_1:startingfulldatafilebackupsetchannelORA_DISK_1:specifyingdatafile(s)inbackupsetinputdatafilefilenumber=00028name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/users.278.962209649inputdatafilefilenumber=00025name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/sysaux.316.962209649inputdatafilefilenumber=00026name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undotbs1.264.962209649inputdatafilefilenumber=00027name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undo_2.268.962209649inputdatafilefilenumber=00024name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/system.271.962209649inputdatafilefilenumber=00029name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/test.275.962210609inputdatafilefilenumber=00030name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/tts.257.966380353inputdatafilefilenumber=00031name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/cs.294.966380783channelORA_DISK_1:startingpiece1at11-FEB-18channelORA_DISK_1:finishedpiece1at11-FEB-18piecehandle=/ora_backup/tpdbs/transport_jypdb.bcktag=TAG20180211T223539comment=NONEchannelORA_DISK_1:backupsetcomplete,elapsedtime:00:00:55Finishedbackupat11-FEB-18startingfullresyncofrecoverycatalogfullresynccompleteRMAN>backuptoplatform='MicrosoftWindowsx8664-bit'unpluginto'/ora_backup/tpdbs/metadata_testpdb.xml'pluggabledatabasetestpdbformat'/ora_backup/tpdbs/transport_testpdb.bck';Startingbackupat11-FEB-18usingchannelORA_DISK_1runningUNPLUGonthespecifiedpluggabledatabase:TESTPDBUNPLUGfilepath:/ora_backup/tpdbs/metadata_testpdb.xmlchannelORA_DISK_1:startingfulldatafilebackupsetchannelORA_DISK_1:specifyingdatafile(s)inbackupsetinputdatafilefilenumber=00033name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/sysaux.259.962469409inputdatafilefilenumber=00034name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undotbs1.265.962469409inputdatafilefilenumber=00032name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/system.260.962469409inputdatafilefilenumber=00035name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undo_2.266.962469409inputdatafilefilenumber=00037name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/test.269.962469409inputdatafilefilenumber=00036name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/users.267.962469409channelORA_DISK_1:startingpiece1at11-FEB-18channelORA_DISK_1:finishedpiece1at11-FEB-18piecehandle=/ora_backup/tpdbs/transport_testpdb.bcktag=TAG20180211T223830comment=NONEchannelORA_DISK_1:backupsetcomplete,elapsedtime:00:00:35Finishedbackupat11-FEB-18startingfullresyncofrecoverycatalogfullresynccomplete[oracle@jytest1tpdbs]$ls-lrttotal1707044-rw-r--r--1oracleasmadmin11417Feb1116:36metadata_jypdb.xml-rw-r-----1oracleasmadmin1038204928Feb1116:37transport_jypdb.bck-rw-r--r--1oracleasmadmin9575Feb1116:38metadata_testpdb.xml-rw-r-----1oracleasmadmin709779456Feb1116:39transport_testpdb.bck
5.将步骤4生成的备份文件与XML文件传输到目标主机上的D:\app\oracle\oradata\pdbs目录中
6.确保目标CDB数据库的状态为读写状态
SQL>selectopen_modefromv$database;OPEN_MODE--------------------READWRITE
7.执行dbms_pdb.check_plug_compatibility过程来判断被传输的PDB与目标CDB是否兼容。
SQL>declare2cboolean;3begin4c:=dbms_pdb.check_plug_compatibility('D:\app\oracle\oradata\pdbs\metadata_jypdb.xml','JYPDB');5if(c)thendbms_output.put_line('True');6elsedbms_output.put_line('False');7endif;8end;9/PL/SQL过程已成功完成。SQL>declare2cboolean;3begin4c:=dbms_pdb.check_plug_compatibility('D:\app\oracle\oradata\pdbs\metadata_testpdb.xml','TESTPDB');5if(c)thendbms_output.put_line('True');6elsedbms_output.put_line('False');7endif;8end;9/PL/SQL过程已成功完成。
8.还原PDB备份
使用using子句来存储将源PDB插入目标CDB所需要的元数据所在的XML文件名。为了将数据文件复制到与XML文件所描述的不同位置使用file_name_convert子句。
RMAN>restoreusing'D:\app\oracle\oradata\pdbs\metadata_jypdb.xml'foreignpluggabledatabaseJYPDBformat'D:\APP\ORACLE\ORADATA\JY\DATAFILE\%U'frombackupset'D:\app\oracle\oradata\pdbs\transport_jypdb.bck';从位于11-2月-18的restore开始使用通道ORA_DISK_1通道ORA_DISK_1:正在开始还原数据文件备份集通道ORA_DISK_1:正在指定从备份集还原的数据文件通道ORA_DISK_1:正在还原备份片段中的所有外部文件通道ORA_DISK_1:正在读取备份片段D:\app\oracle\oradata\pdbs\transport_jypdb.bck通道ORA_DISK_1:将外部文件28还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-USERS_FNO-28_IASR0EH6通道ORA_DISK_1:将外部文件25还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-SYSAUX_FNO-25_EGSR0EH6通道ORA_DISK_1:将外部文件26还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-UNDOTBS1_FNO-26_TESR0EH6通道ORA_DISK_1:将外部文件27还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-UNDO_2_FNO-27_D2SR0EH6通道ORA_DISK_1:将外部文件24还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-SYSTEM_FNO-24_FFSR0EH6通道ORA_DISK_1:将外部文件29还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-TEST_FNO-29_OMSR0EH6通道ORA_DISK_1:将外部文件30还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-TTS_FNO-30_SUSR0EH6通道ORA_DISK_1:将外部文件31还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-CS_FNO-31_7LSR0EH6通道ORA_DISK_1:外部片段句柄=D:\app\oracle\oradata\pdbs\transport_jypdb.bck通道ORA_DISK_1:已还原备份片段1通道ORA_DISK_1:还原完成,用时:00:00:36通道ORA_DISK_1:正在为+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/system.271.962209649插入文件24通道ORA_DISK_1:正在为+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/sysaux.316.962209649插入文件25通道ORA_DISK_1:正在为+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undotbs1.264.962209649插入文件26通道ORA_DISK_1:正在为+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/TEMPFILE/temp.258.967837571插入文件5通道ORA_DISK_1:正在为+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undo_2.268.962209649插入文件27通道ORA_DISK_1:正在为+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/users.278.962209649插入文件28通道ORA_DISK_1:正在为+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/test.275.962210609插入文件29通道ORA_DISK_1:正在为+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/tts.257.966380353插入文件30通道ORA_DISK_1:正在为+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/cs.294.966380783插入文件31RMAN-00571:===========================================================RMAN-00569:===============ERRORMESSAGESTACKFOLLOWS===============RMAN-00571:===========================================================RMAN-03002:位于02/11/201823:22:50的restore命令失败RMAN-00600:internalerror,arguments[5302][][][][]RMAN>restoreusing'D:\app\oracle\oradata\pdbs\metadata_testpdb.xml'foreignpluggabledatabasetestpdbformat'D:\APP\ORACLE\ORADATA\JY\DATAFILE\%U'frombackupset'D:\app\oracle\oradata\pdbs\transport_testpdb.bck';从位于11-2月-18的restore开始使用通道ORA_DISK_1通道ORA_DISK_1:正在开始还原数据文件备份集通道ORA_DISK_1:正在指定从备份集还原的数据文件通道ORA_DISK_1:正在还原备份片段中的所有外部文件通道ORA_DISK_1:正在读取备份片段D:\app\oracle\oradata\pdbs\transport_testpdb.bck通道ORA_DISK_1:将外部文件33还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-SYSAUX_FNO-33_N4SR0EOK通道ORA_DISK_1:将外部文件34还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-UNDOTBS1_FNO-34_S1SR0EOK通道ORA_DISK_1:将外部文件32还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-SYSTEM_FNO-32_KTSR0EOK通道ORA_DISK_1:将外部文件35还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-UNDO_2_FNO-35_PGSR0EOK通道ORA_DISK_1:将外部文件37还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-TEST_FNO-37_1MSR0EOK通道ORA_DISK_1:将外部文件36还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\DATA_D-JY_I-979425723_TS-USERS_FNO-36_9ASR0EOK通道ORA_DISK_1:外部片段句柄=D:\app\oracle\oradata\pdbs\transport_testpdb.bck通道ORA_DISK_1:已还原备份片段1通道ORA_DISK_1:还原完成,用时:00:00:16通道ORA_DISK_1:正在为+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/system.260.962469409插入文件32通道ORA_DISK_1:正在为+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/sysaux.259.962469409插入文件33通道ORA_DISK_1:正在为+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undotbs1.265.962469409插入文件34通道ORA_DISK_1:正在为+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/TEMPFILE/temp.276.967837623插入文件6通道ORA_DISK_1:正在为+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undo_2.266.962469409插入文件35通道ORA_DISK_1:正在为+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/users.267.962469409插入文件36通道ORA_DISK_1:正在为+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/test.269.962469409插入文件37RMAN-00571:===========================================================RMAN-00569:===============ERRORMESSAGESTACKFOLLOWS===============RMAN-00571:===========================================================RMAN-03002:位于02/11/201823:26:28的restore命令失败RMAN-00600:internalerror,arguments[5302][][][][]
上面的错误是因为XMl文件所描述的数据文件名是源数据库中的文件名,手功修改XML文件中的数据文件名为目标数据库中的数据文件名,并执行下面的命令来创建PDB
SQL>createpluggabledatabasejypdbusing'D:\app\oracle\oradata\pdbs\metadata_jypdb.xml';插接式数据库已创建。SQL>createpluggabledatabasetestpdbusing'D:\app\oracle\oradata\pdbs\metadata_testpdb.xml';插接式数据库已创建。SQL>alterpluggabledatabaseallopen;插接式数据库已变更。SQL>selectname,open_modefromv$pdbs;NAMEOPEN_MODE------------------------------------------------------------------------------------------------------------------------------------------PDB$SEEDREADONLYJYPDBREADWRITETESTPDBREADWRITE
9.查询tts.t1与cs.t2表中的数据来验证跨平台传输PDB是否操作成功
SQL>selectcount(*)fromtts.t1;COUNT(*)----------90SQL>selectcount(*)fromcs.t2;COUNT(*)----------92
到此,相信大家对“Oracle怎么实现跨平台传输PDB”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。