怎么将Linux上的PDB数据库传输到windows的CDB数据库

60次阅读
没有评论

共计 8792 个字符,预计需要花费 22 分钟才能阅读完成。

本篇内容主要讲解“怎么将 Linux 上的 PDB 数据库传输到 windows 的 CDB 数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“怎么将 Linux 上的 PDB 数据库传输到 windows 的 CDB 数据库”吧!

为了将整个 PDB 传输到不同的平台,源平台与目标平台必须使用相同的字节序。compatible 参数在源 CDB 数据库与目标 CDB 数据库中必须设置为 12.1 或更高版本。

下面的例子将 Linux 平台上的 RAC CDB 中的 PDB 数据库 (jypdb 与 testpdb) 传输到 windows 平台上的单实例 CDB 数据库中。执行跨平台传输的操作如下:
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. 检查源平台与目标平台的字节序
源平台

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 tp.platform_name=d.platform_name;
PLATFORM_NAME ENDIAN_FORMAT
-------------------------------------------------------------------------------- --------------
Microsoft Windows x86 64-bit Little

3. 将要被传输的 pdb(jypdb,testpdb)设置为只读状态

SQL  alter pluggable database all close immediate;
Pluggable database altered.
SQL  set long 200
SQL  set linesize 200
SQL  select name,open_mode from v$pdbs;
NAME OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
PDB$SEED READ ONLY
JYPDB MOUNTED
TESTPDB MOUNTED

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  backup for transport unplug into  /ora_backup/tpdbs/metadata_jypdb.xml  pluggable database jypdb format  /ora_backup/tpdbs/pdb_%U 
Starting backup at 11-FEB-18
using channel ORA_DISK_1
running UNPLUG on the specified pluggable database: JYPDB
UNPLUG file path : /ora_backup/tpdbs/metadata_jypdb.xml
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00014 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/users.278.962209649
input datafile file number=00011 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/sysaux.316.962209649
input datafile file number=00012 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undotbs1.264.962209649
input datafile file number=00013 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undo_2.268.962209649
input datafile file number=00010 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/system.271.962209649
input datafile file number=00015 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/test.275.962210609
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 11-FEB-18
channel ORA_DISK_1: finished piece 1 at 11-FEB-18
piece handle=/ora_backup/tpdbs/pdb_8csqvqc5_1_1 tag=TAG20180211T173748 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:56
Finished backup at 11-FEB-18
starting full resync of recovery catalog
full resync complete
RMAN  backup for transport unplug into  /ora_backup/tpdbs/metadata_testpdb.xml  pluggable database testpdb format  /ora_backup/tpdbs/pdb_%U 
Starting backup at 11-FEB-18
starting full resync of recovery catalog
full resync complete
using channel ORA_DISK_1
running UNPLUG on the specified pluggable database: TESTPDB
UNPLUG file path : /ora_backup/tpdbs/metadata_testpdb.xml
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00017 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/sysaux.259.962469409
input datafile file number=00018 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undotbs1.265.962469409
input datafile file number=00016 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/system.260.962469409
input datafile file number=00019 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undo_2.266.962469409
input datafile file number=00021 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/test.269.962469409
input datafile file number=00020 name=+DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/users.267.962469409
channel ORA_DISK_1: starting piece 1 at 11-FEB-18
channel ORA_DISK_1: finished piece 1 at 11-FEB-18
piece handle=/ora_backup/tpdbs/pdb_8dsqvqpj_1_1 tag=TAG20180211T174458 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
Finished backup at 11-FEB-18
starting full resync of recovery catalog
full resync complete

total 1707488 -rw-r--r-- 1 oracle asmadmin 11413 Feb 11 11:38 metadata_jypdb.xml -rw-r----- 1 oracle asmadmin 1038368768 Feb 11 11:39 pdb_8csqvqc5_1_1 -rw-r--r-- 1 oracle asmadmin 9569 Feb 11 11:45 metadata_testpdb.xml -rw-r----- 1 oracle asmadmin 710066176 Feb 11 11:45 pdb_8dsqvqpj_1_1

5. 将在源平台上使用 rman backup 命令生成的备份集与备份的控制文件传输到目标平台的 D:\app\oracle\oradata\pdbs 目录中

6. 将 PDB(jypdb,testpdb)还原到目标数据库

RMAN  restore from platform  Linux x86 64-bit  foreign pluggable database jypdb to new from backupset  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  完成了  restore

RMAN  restore from platform  Linux x86 64-bit  foreign pluggable database testpdb to new from backupset  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  create pluggable database jypdb using  D:\app\oracle\oradata\pdbs\metadata_jypdb.xml  nocopy;
插接式数据库已创建。
SQL  create pluggable database testpdb using  D:\app\oracle\oradata\pdbs\metadata_testpdb.xml  nocopy ; 插接式数据库已创建。SQL  set long 200 SQL  set linesize 200 SQL  select name,open_mode from v$pdbs; NAME OPEN_MODE -------------------------------------------------------------------------------------------------------------------------------- ---------- PDB$SEED READ ONLY JYPDB MOUNTED TESTPDB MOUNTED SQL  alter pluggable database all open; 插接式数据库已变更。SQL  select name,open_mode from v$pdbs; NAME OPEN_MODE -------------------------------------------------------------------------------------------------------------------------------- ---------- PDB$SEED READ ONLY JYPDB READ WRITE TESTPDB READ WRITE

9. 查询 tts.t1 与 cs.t2 表中的数据来验证跨平台传输 PDB 是否操作成功

SQL  select count(*) from tts.t1;
 COUNT(*)
----------
 90
SQL  select count(*) from cs.t2;
 COUNT(*)
----------
 92

到此,相信大家对“怎么将 Linux 上的 PDB 数据库传输到 windows 的 CDB 数据库”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计8792字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)