博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 12C使用备份集执行只读表空间的跨平台传输
阅读量:2435 次
发布时间:2019-05-10

本文共 9154 字,大约阅读时间需要 30 分钟。

使用带用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

到此使用备份集跨平台传输只读表空间操作就完成了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26015009/viewspace-2150872/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26015009/viewspace-2150872/

你可能感兴趣的文章
Oracle 9i管理的模式(转)
查看>>
Oracle 9i管理的用户(转)
查看>>
Oracle 9i管理工具的使用(转)
查看>>
网络关系型数据库的代表Oracle 9i(转)
查看>>
安装管理客户机(转)
查看>>
目前主流的两类关系型数据库系统(转)
查看>>
Oracle 9i的两种工作模式(转)
查看>>
在Oracle数据库10g中跟踪SQL(转)
查看>>
Oracle 10g Release2新功能之变化通知(转)
查看>>
ORACLE之常用FAQ V1.0一(构架体系)(转)
查看>>
Oracle 10g 新特性之虚拟专用数据库(转)
查看>>
深刻理解Oracle数据库的启动和关闭(转)
查看>>
将Oracle 10g内置的安全特性用于PHP(转)
查看>>
骇客攻击:跳板攻击与防御(1)(转)
查看>>
黑客入侵计中计(转)
查看>>
谈DoS攻击和DDoS的攻击方式(转)
查看>>
Word 2003 视频教程-关闭 Word(转)
查看>>
JBuilder8配置CVSNT 2.0 (转)
查看>>
分布式反射:新一代的DDoS攻击(转)
查看>>
SYN Flood攻击的基本原理(转)
查看>>