如何使用RMAN对PDB中的表空间或数据文件执行完全恢复
小编给大家分享一下如何使用RMAN对PDB中的表空间或数据文件执行完全恢复,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
因为不同PDB中的表空间可以有相同的名字,为了消除这种混淆你必须直接连接到PDB来恢复PDB的表空间。相反,因为数据文件号与路径名是跨CDB唯一标识的,所以可以连接到root容器或PDB来恢复PDB的数据文件。如果连接到CDB的root容器,那么可以使用单个命令来恢复多个PDB中的数据文件。如果连接到PDB,只能恢复PDB中的数据文件。
还原与恢复PDB中的non-SYSTEM表空间
1.启动RMAN并连接到目标数据库
[oracle@jytest1 ~]$ rman target sys/xxxxx@jypdbRecovery Manager: Release 12.2.0.1.0 - Production on Mon Dec 11 17:59:27 2017Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.connected to target database: JY:JYPDB (DBID=4203494064)
2.如果数据库的状态为open,那么将要恢复的表空间置于脱机状态
SQL> alter tablespace test offline immediate;Tablespace altered.
3.使用show命令来查看是否配置了预先设置的通道。如果需要的设置类型与通道被配置,那么不需要执行任何操作。否则可以使用configure命令来配置自动通道,或都使用包含allocate channel命令的run块
RMAN> show all;RMAN configuration parameters for database with db_unique_name JY are:CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # defaultCONFIGURE BACKUP OPTIMIZATION OFF; # defaultCONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFILE AUTOBACKUP ON; # defaultCONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '+test/rman_backup/%F';CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # defaultCONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE MAXSETSIZE TO UNLIMITED; # defaultCONFIGURE ENCRYPTION FOR DATABASE OFF; # defaultCONFIGURE ENCRYPTION ALGORITHM 'AES128'; # defaultCONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # defaultCONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # defaultCONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # defaultCONFIGURE SNAPSHOT CONTROLFILE NAME TO '+test/jy/snapcf_jy.f';
4.还原与恢复表空间
.如果将数据文件还原到原始位置,那么执行restore tablespace与recover tablespace命令
.如果将数据文件还原到新目录,那么在run命令块中执行restore tablespace与recover tablespace命令,并且使用set newname命令来重命名数据文件。
RMAN> restore tablespace 'TEST';Starting restore at 11-DEC-17using channel ORA_DISK_1channel ORA_DISK_1: starting datafile backup set restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setchannel ORA_DISK_1: restoring datafile 00015 to +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/test.275.962210609channel ORA_DISK_1: reading from backup piece +TEST/rman_backup/jy_979425723_20171211_0osls830_1_1channel ORA_DISK_1: piece handle=+TEST/rman_backup/jy_979425723_20171211_0osls830_1_1 tag=TAG20171211T164446channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:03Finished restore at 11-DEC-17RMAN> recover tablespace 'TEST';Starting recover at 11-DEC-17using channel ORA_DISK_1starting media recoverymedia recovery complete, elapsed time: 00:00:01Finished recover at 11-DEC-17
5.检查输出结果查看是否恢复成功。如果恢复成功将表空间设置为联机状态
RMAN> alter tablespace test online;Statement processed
还原与恢复PDB中的SYSTEM表空间
1.启动RMAN并使用有sysdba或sysbackup权限的公共用户连接到root容器。
[oracle@jytest1 ~]$ rman target/ catalog rco/abcd@jypdb_173Recovery Manager: Release 12.2.0.1.0 - Production on Mon Dec 11 18:11:55 2017Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.connected to target database: JY (DBID=979425723)connected to recovery catalog database
2.关闭CDB并重启到mount状态
SQL> conn / as sysdbaConnected.SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startup mountORACLE instance started.Total System Global Area 6442450944 bytesFixed Size 8807168 bytesVariable Size 1895828736 bytesDatabase Buffers 4529848320 bytesRedo Buffers 7966720 bytesDatabase mounted.
3.还原与恢复PDB中SYSTEM表空间的数据文件
[oracle@jytest1 ~]$ rman target/ catalog rco/abcd@jypdb_173Recovery Manager: Release 12.2.0.1.0 - Production on Mon Dec 11 18:20:30 2017Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.connected to target database: JY (DBID=979425723, not open)connected to recovery catalog databaseRMAN> report schema;starting full resync of recovery catalogfull resync completeReport of database schema for database with db_unique_name JYList of Permanent Datafiles===========================File Size(MB) Tablespace RB segs Datafile Name---- -------- -------------------- ------- ------------------------1 830 SYSTEM YES +DATA/JY/DATAFILE/system.317.9622096033 1230 SYSAUX NO +DATA/JY/DATAFILE/sysaux.298.9622096054 75 UNDOTBS1 YES +DATA/JY/DATAFILE/undotbs1.277.9622096055 250 PDB$SEED:SYSTEM NO +DATA/JY/5F9AA264B21F3ED9E053AB828A0A6088/DATAFILE/system.256.9622096756 340 PDB$SEED:SYSAUX NO +DATA/JY/5F9AA264B21F3ED9E053AB828A0A6088/DATAFILE/sysaux.270.9622096757 5 USERS NO +DATA/JY/DATAFILE/users.301.9622096058 100 PDB$SEED:UNDOTBS1 NO +DATA/JY/5F9AA264B21F3ED9E053AB828A0A6088/DATAFILE/undotbs1.296.9622096759 50 UNDOTBS2 YES +DATA/JY/DATAFILE/undotbs2.312.96220960510 260 JYPDB:SYSTEM YES +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/system.271.96220964911 460 JYPDB:SYSAUX NO +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/sysaux.316.96220964912 100 JYPDB:UNDOTBS1 YES +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undotbs1.264.96220964913 100 JYPDB:UNDO_2 YES +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/undo_2.268.96220964914 5 JYPDB:USERS NO +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/users.278.96220964915 100 JYPDB:TEST NO +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/test.275.96221060916 260 TESTPDB:SYSTEM YES +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/system.260.96246940917 460 TESTPDB:SYSAUX NO +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/sysaux.259.96246940918 100 TESTPDB:UNDOTBS1 YES +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undotbs1.265.96246940919 100 TESTPDB:UNDO_2 YES +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/undo_2.266.96246940920 5 TESTPDB:USERS NO +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/users.267.96246940921 100 TESTPDB:TEST NO +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/DATAFILE/test.269.962469409List of Temporary Files=======================File Size(MB) Tablespace Maxsize(MB) Tempfile Name---- -------- -------------------- ----------- --------------------1 142 TEMP 32767 +DATA/JY/TEMPFILE/temp.299.9619763392 64 PDB$SEED:TEMP 32767 +DATA/JY/5F9AA264B21F3ED9E053AB828A0A6088/TEMPFILE/temp.297.9622098653 135 JYPDB:TEMP 32767 +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/TEMPFILE/temp.276.9622105194 135 TESTPDB:TEMP 32767 +DATA/JY/600D6F56DEB669CCE053AB828A0AAB7E/TEMPFILE/temp.258.962469435RMAN> restore tablespace 'JYPDB:SYSTEM';Starting restore at 11-DEC-17allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=10 instance=jy1 device type=DISKRMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of restore command at 12/11/2017 18:21:09RMAN-06004: ORACLE error from recovery catalog database: RMAN-20202: Tablespace not found in the recovery catalogRMAN-06019: could not translate tablespace name "JYPDB:SYSTEM"
这里在还原SYSTEM表空间时使用表空间名时会报错,如是使用restore datafile与recover datafile方法来还原与恢复SYSTEM表空间
RMAN> restore datafile 10;Starting restore at 11-DEC-17using channel ORA_DISK_1channel ORA_DISK_1: starting datafile backup set restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setchannel ORA_DISK_1: restoring datafile 00010 to +DATA/JY/5F9AC6865E87549FE053AB828A0ADE94/DATAFILE/system.271.962209649channel ORA_DISK_1: reading from backup piece +TEST/rman_backup/jy_979425723_20171211_0osls830_1_1channel ORA_DISK_1: piece handle=+TEST/rman_backup/jy_979425723_20171211_0osls830_1_1 tag=TAG20171211T164446channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:15Finished restore at 11-DEC-17RMAN> recover datafile 10;Starting recover at 11-DEC-17using channel ORA_DISK_1starting media recoverymedia recovery complete, elapsed time: 00:00:01Finished recover at 11-DEC-17
4.打开CDB中的所有PDB
RMAN> alter database open;Statement processedstarting full resync of recovery catalogfull resync completeRMAN> alter pluggable database all open read write;Statement processedstarting full resync of recovery catalogfull resync complete
看完了这篇文章,相信你对"如何使用RMAN对PDB中的表空间或数据文件执行完全恢复"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!