千家信息网

Oracle 12C如何使用备份集执行只读表空间的跨平台传输

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍Oracle 12C如何使用备份集执行只读表空间的跨平台传输,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用带用for transport或to platfo
千家信息网最后更新 2026年10月31日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> show parameter compatibleNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------compatible                           string      12.2.0noncdb_compatible                    boolean     FALSE目标数据库SQL> show parameter compatibleNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------compatible                           string      12.2.0noncdb_compatible                    boolean     FALSE

2.对源数据库中的要被传输的表空间tts与cs执行自包含检查

SQL> alter session set container=jypdb;Session altered.SQL> exec sys.dbms_tts.transport_set_check('TTS,CS',true);PL/SQL procedure successfully completed.SQL> select * from sys.transport_set_violations;no rows selected

3.检查源平台与目标平台的字节序
源平台

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 tPLATFORM_NAME                                                                       ENDIAN_FORMAT--------------------------------------------------------------------------------    --------------Microsoft Windows x86 64-bit                                                        Little

4.将要被传输的表空间(tts,cs)设置为只读状态

SQL> alter tablespace tts read only;Tablespace altered.SQL> alter tablespace cs read only;Tablespace altered.SQL> select tablespace_name,status from user_tablespaces;TABLESPACE_NAME                STATUS------------------------------ ---------SYSTEM                         ONLINESYSAUX                         ONLINEUNDOTBS1                       ONLINETEMP                           ONLINEUNDO_2                         ONLINEUSERS                          ONLINETEST                           ONLINETTS                            READ ONLYCS                             READ ONLY9 rows selected.

5.给RMAN备份输出文件选择命名方法,使用backup命令的format子句来为备份输出文件选择输出方法。

6.启动RMAN连接到源数据库(整个RAC CDB)并将重启源数据库并以只读方式打开

[oracle@jytest1 ~]$ rman target sys/abcd@jy catalog rco/abcd@jypdb_173Recovery Manager: Release 12.2.0.1.0 - Production on Mon Feb 5 23:22:24 2018Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.connected to target database: JY (DBID=979425723)connected to recovery catalog database

7.在backup命令中使用for transport或to platform子句来备份表空间。下面的例子对表空间tts与cs创建跨平台传输备份。备份可以被还原到Microsoft Windows IA (64-bit)平台。Data Pump导出dump文件包含了附加表空间到目标数据库中所需要的元数据。备份文件与dump文件存储在/ora_backup/tts目录中。

RMAN> backup to platform 'Microsoft Windows x86 64-bit' format '/ora_backup/tts/trans_ts.bck' datapump format '/ora_backup/tts/trans_ts_dmp.bck' tablespace JYPDB:'TTS',JYPDB:'CS';Starting backup at 05-FEB-18using channel ORA_DISK_1Running TRANSPORT_SET_CHECK on specified tablespacesTRANSPORT_SET_CHECK completed successfullyPerforming export of metadata for specified tablespaces...   EXPDP> Starting "SYS"."TRANSPORT_EXP_JY_xput":     EXPDP> Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS   EXPDP> Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS   EXPDP> Processing object type TRANSPORTABLE_EXPORT/STATISTICS/MARKER   EXPDP> Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK   EXPDP> Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK   EXPDP> Processing object type TRANSPORTABLE_EXPORT/TABLE   EXPDP> Processing object type TRANSPORTABLE_EXPORT/INDEX/INDEX   EXPDP> Master table "SYS"."TRANSPORT_EXP_JY_xput" successfully loaded/unloaded   EXPDP> ******************************************************************************   EXPDP> Dump file set for SYS.TRANSPORT_EXP_JY_xput is:   EXPDP>   /u01/app/oracle/product/12.2.0/db/dbs/backup_tts_JY_38873.dmp   EXPDP> ******************************************************************************   EXPDP> Datafiles required for transportable tablespace CS:   EXPDP>   +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/cs.294.966380783   EXPDP> Datafiles required for transportable tablespace TTS:   EXPDP>   +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/tts.257.966380353   EXPDP> Job "SYS"."TRANSPORT_EXP_JY_xput" successfully completed at Mon Feb 5 23:57:57 2018 elapsed 0 00:03:08Export completedchannel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00022 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/tts.257.966380353input datafile file number=00023 name=+DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/cs.294.966380783channel ORA_DISK_1: starting piece 1 at 05-FEB-18channel ORA_DISK_1: finished piece 1 at 05-FEB-18piece handle=/ora_backup/tts/trans_ts.bck tag=TAG20180205T235319 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:03channel ORA_DISK_1: starting full datafile backup setinput Data Pump dump file=/u01/app/oracle/product/12.2.0/db/dbs/backup_tts_JY_38873.dmpchannel ORA_DISK_1: starting piece 1 at 05-FEB-18channel ORA_DISK_1: finished piece 1 at 05-FEB-18piece handle=/ora_backup/tts/trans_ts_dmp.bck tag=TAG20180205T235319 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 05-FEB-18starting full resync of recovery catalogfull resync complete[oracle@jytest1 tts]$ ls -lrttotal 2472-rw-r----- 1 oracle asmadmin 2318336 Feb  5 17:57 trans_ts.bck-rw-r----- 1 oracle asmadmin  212992 Feb  5 17:57 trans_ts_dmp.bck

因为在backup命令中使用了to platform子句,因此将数据文件转换成目标平台字节序的操作在源平台执行。

8.将backup命令生成的备份集与Data Pump导出的dump文件传输到目标平台的D:\app\oracle\oradata\tts目录中

9.使用rman连接到目标数据库(单实例CDB中的JYPDB)

C:\Users\Administrator>rman target sys/abcd@jypdb恢复管理器: Release 12.2.0.1.0 - Production on 星期一 2月 5 00:22:31 2018Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.已连接到目标数据库: JY:JYPDB (DBID=4203494064)

10.使用有foreign tablespace子句的restore命令来还原从源平台传输过来的备份集

RMAN> restore foreign tablespace TTS,CS to new from backupset 'D:\app\oracle\oradata\tts\trans_ts.bck' dump file from backupset '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_BLK   IMPDP> 处理对象类型 TRANSPORTABLE_EXPORT/TABLE   IMPDP> 处理对象类型 TRANSPORTABLE_EXPORT/INDEX/INDEX   IMPDP> 处理对象类型 TRANSPORTABLE_EXPORT/INDEX_STATISTICS   IMPDP> 处理对象类型 TRANSPORTABLE_EXPORT/TABLE_STATISTICS   IMPDP> 处理对象类型 TRANSPORTABLE_EXPORT/STATISTICS/MARKER   IMPDP> 处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK   IMPDP> 作业 "SYS"."TSPITR_IMP_JY_pfCp" 已于 星期二 2月 6 00:24:02 2018 elapsed 0 00:00:33 成功完成导入完毕在 05-2月 -18 完成了 restore

11.在目标数据库中查询表tts.t1与cs.t2记录是否与源数据库中一致,如果一致说用表空间tts与cs跨平台传输成功
源数据库

SQL> alter session set container=jypdb;会话已更改。SQL> select count(*) from tts.t1;  COUNT(*)----------        45SQL> select count(*) from cs.t2;  COUNT(*)----------        46

目标数据库

SQL> alter session set container=jypdb;会话已更改。SQL> select count(*) from tts.t1;  COUNT(*)----------        45SQL> select count(*) from cs.t2;  COUNT(*)----------        46

以上是"Oracle 12C如何使用备份集执行只读表空间的跨平台传输"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

数据 备份 空间 文件 数据库 通道 传输 平台 目标 正在 对象 类型 命令 处理 子句 片段 检查 成功 参数 字节 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米移动互联网科技园 厦门中拓互联网络科技有限公司 深圳科技互联网 北京互联网科技公司 互联网未来科技 苏州互联网科技贷款公司 奇士达互联网科技 无线互联网科技 深圳天众互联网科技公司 佳云科技和互联网广告 呼和浩特新华互联网科技学院 国大互联网教育科技有限公司工作 佛山市翊博互联网络科技有限公司 小米互联网科技园入驻 富国互联网金融科技混合基金 互联网科技数字货币 北京互联网科技类企业分布 马化腾互联网科技教学 第三届互联网大会安防黑科技 盐城市攀科互联网科技有限公司 广东猪兼强互联网科技有限公司 上海卓越科技互联网 盈实互联网科技 万易互联网科技有限公司 科技与互联网哪个更好 互联网科技人工智能实验室 翼展科技 首家互联网医院 为客找房互联网科技公司怎么样 互联网金融科技元年 好易买互联网科技
0