怎么将Linux上的PDB数据库传输到windows的CDB数据库
本篇内容主要讲解“怎么将Linux上的PDB数据库传输到windows的CDB数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么将Linux上的PDB数据库传输到windows的CDB数据库”吧!
为了将整个PDB传输到不同的平台,源平台与目标平台必须使用相同的字节序。compatible参数在源CDB数据库与目标CDB数据库中必须设置为12.1或更高版本。
下面的例子将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>alterpluggabledatabaseallcloseimmediate;Pluggabledatabasealtered.SQL>setlong200SQL>setlinesize200SQL>selectname,open_modefromv$pdbs;NAMEOPEN_MODE------------------------------------------------------------------------------------------------------------------------------------------PDB$SEEDREADONLYJYPDBMOUNTEDTESTPDBMOUNTED
4.备份要传输的PDB数据库,可以使用以下一种方法来跨平台传输PDB
4.1使用RMAN连接到CDB的root容器,并使用backup for transport ... pluggable database或者backup to platform ... pluggable database命令来为PDB创建跨平台备份。
4.2使用RMAN连接到PDB,并使用backup for transport或backup to platform命令来为PDB创建跨平台备份。
因为我这里要传输两个PDB所以选择第一种方法
RMAN>backupfortransportunpluginto'/ora_backup/tpdbs/metadata_jypdb.xml'pluggabledatabasejypdbformat'/ora_backup/tpdbs/pdb_%U';Startingbackupat11-FEB-18usingchannelORA_DISK_1runningUNPLUGonthespecifiedpluggabledatabase:JYPDBUNPLUGfilepath:/ora_backup/tpdbs/metadata_jypdb.xmlchannelORA_DISK_1:startingfulldatafilebackupsetchannelORA_DISK_1:specifyingdatafile(s)inbackupsetinputdatafilefilenumber=00014name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/users.278.962209649inputdatafilefilenumber=00011name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/sysaux.316.962209649inputdatafilefilenumber=00012name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undotbs1.264.962209649inputdatafilefilenumber=00013name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undo_2.268.962209649inputdatafilefilenumber=00010name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/system.271.962209649inputdatafilefilenumber=00015name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/test.275.962210609inputdatafilefilenumber=00022name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/tts.257.966380353inputdatafilefilenumber=00023name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/cs.294.966380783channelORA_DISK_1:startingpiece1at11-FEB-18channelORA_DISK_1:finishedpiece1at11-FEB-18piecehandle=/ora_backup/tpdbs/pdb_8csqvqc5_1_1tag=TAG20180211T173748comment=NONEchannelORA_DISK_1:backupsetcomplete,elapsedtime:00:00:56Finishedbackupat11-FEB-18startingfullresyncofrecoverycatalogfullresynccompleteRMAN>backupfortransportunpluginto'/ora_backup/tpdbs/metadata_testpdb.xml'pluggabledatabasetestpdbformat'/ora_backup/tpdbs/pdb_%U';Startingbackupat11-FEB-18startingfullresyncofrecoverycatalogfullresynccompleteusingchannelORA_DISK_1runningUNPLUGonthespecifiedpluggabledatabase:TESTPDBUNPLUGfilepath:/ora_backup/tpdbs/metadata_testpdb.xmlchannelORA_DISK_1:startingfulldatafilebackupsetchannelORA_DISK_1:specifyingdatafile(s)inbackupsetinputdatafilefilenumber=00017name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/sysaux.259.962469409inputdatafilefilenumber=00018name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undotbs1.265.962469409inputdatafilefilenumber=00016name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/system.260.962469409inputdatafilefilenumber=00019name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undo_2.266.962469409inputdatafilefilenumber=00021name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/test.269.962469409inputdatafilefilenumber=00020name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/users.267.962469409channelORA_DISK_1:startingpiece1at11-FEB-18channelORA_DISK_1:finishedpiece1at11-FEB-18piecehandle=/ora_backup/tpdbs/pdb_8dsqvqpj_1_1tag=TAG20180211T174458comment=NONEchannelORA_DISK_1:backupsetcomplete,elapsedtime:00:00:35Finishedbackupat11-FEB-18startingfullresyncofrecoverycatalogfullresynccomplete[oracle@jytest1tpdbs]$ls-lrttotal1707488-rw-r--r--1oracleasmadmin11413Feb1111:38metadata_jypdb.xml-rw-r-----1oracleasmadmin1038368768Feb1111:39pdb_8csqvqc5_1_1-rw-r--r--1oracleasmadmin9569Feb1111:45metadata_testpdb.xml-rw-r-----1oracleasmadmin710066176Feb1111:45pdb_8dsqvqpj_1_1
5.将在源平台上使用rman backup命令生成的备份集与备份的控制文件传输到目标平台的D:\app\oracle\oradata\pdbs目录中
6.将PDB(jypdb,testpdb)还原到目标数据库
RMAN>restorefromplatform'Linuxx8664-bit'foreignpluggabledatabasejypdbtonewfrombackupset'D:\app\oracle\oradata\pdbs\pdb_8csqvqc5_1_1';从位于11-2月-18的restore开始使用目标数据库控制文件替代恢复目录分配的通道:ORA_DISK_1通道ORA_DISK_1:SID=1522设备类型=DISK通道ORA_DISK_1:正在开始还原数据文件备份集通道ORA_DISK_1:正在指定从备份集还原的数据文件通道ORA_DISK_1:正在还原备份片段中的所有外部文件通道ORA_DISK_1:正在读取备份片段D:\app\oracle\oradata\pdbs\pdb_8csqvqc5_1_1通道ORA_DISK_1:将外部文件14还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_USERS_F805GPMS_.DBF通道ORA_DISK_1:将外部文件11还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_SYSAUX_F805GPMS_.DBF通道ORA_DISK_1:将外部文件12还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_UNDOTBS1_F805GPMS_.DBF通道ORA_DISK_1:将外部文件13还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_UNDO_2_F805GPMS_.DBF通道ORA_DISK_1:将外部文件10还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_SYSTEM_F805GPN8_.DBF通道ORA_DISK_1:将外部文件15还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_TEST_F805GPN8_.DBF通道ORA_DISK_1:将外部文件22还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_TTS_F805GPN8_.DBF通道ORA_DISK_1:将外部文件23还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_CS_F805GPN8_.DBF通道ORA_DISK_1:外部片段句柄=D:\app\oracle\oradata\pdbs\pdb_8csqvqc5_1_1通道ORA_DISK_1:已还原备份片段1通道ORA_DISK_1:还原完成,用时:00:00:36在11-2月-18完成了restoreRMAN>restorefromplatform'Linuxx8664-bit'foreignpluggabledatabasetestpdbtonewfrombackupset'D:\app\oracle\oradata\pdbs\pdb_8dsqvqpj_1_1';从位于11-2月-18的restore开始使用目标数据库控制文件替代恢复目录分配的通道:ORA_DISK_1通道ORA_DISK_1:SID=1522设备类型=DISK通道ORA_DISK_1:正在开始还原数据文件备份集通道ORA_DISK_1:正在指定从备份集还原的数据文件通道ORA_DISK_1:正在还原备份片段中的所有外部文件通道ORA_DISK_1:正在读取备份片段D:\app\oracle\oradata\pdbs\pdb_8dsqvqpj_1_1通道ORA_DISK_1:将外部文件17还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_SYSAUX_F806C6WT_.DBF通道ORA_DISK_1:将外部文件18还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_UNDOTBS1_F806C6WT_.DBF通道ORA_DISK_1:将外部文件16还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_SYSTEM_F806C6WT_.DBF通道ORA_DISK_1:将外部文件19还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_UNDO_2_F806C6XB_.DBF通道ORA_DISK_1:将外部文件21还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_TEST_F806C6XB_.DBF通道ORA_DISK_1:将外部文件20还原到D:\APP\ORACLE\ORADATA\JY\DATAFILE\O1_MF_USERS_F806C6XB_.DBF通道ORA_DISK_1:外部片段句柄=D:\app\oracle\oradata\pdbs\pdb_8dsqvqpj_1_1通道ORA_DISK_1:已还原备份片段1通道ORA_DISK_1:还原完成,用时:00:00:26在11-2月-18完成了restore
7.在目标主机上修改metadata_jypdb.xml与metadata_testpdb.xml文件将数据文件路径修改为还原后数据文件所在路径
8.将传输过来的PDB(jypdb,testpdb)插入CDB
SQL>createpluggabledatabasejypdbusing'D:\app\oracle\oradata\pdbs\metadata_jypdb.xml'nocopy;插接式数据库已创建。SQL>createpluggabledatabasetestpdbusing'D:\app\oracle\oradata\pdbs\metadata_testpdb.xml'nocopy;插接式数据库已创建。SQL>setlong200SQL>setlinesize200SQL>selectname,open_modefromv$pdbs;NAMEOPEN_MODE------------------------------------------------------------------------------------------------------------------------------------------PDB$SEEDREADONLYJYPDBMOUNTEDTESTPDBMOUNTEDSQL>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
到此,相信大家对“怎么将Linux上的PDB数据库传输到windows的CDB数据库”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。