rman同平台异机恢复
Table of Contents
- 1. 数据恢复
- 1.1. 准备
- 1.1.1. 确认spfile备份文件
- 1.1.2. 恢复spfile并修改
- 1.1.3. 启动到nomount状态
- 1.1.4. 查看截止SCN
- 1.1.5. 确认控制文件备份
- 1.1.6. 准备全量恢复脚本
- 1.1.7. 准备增量恢复脚本
- 1.2. 恢复数据
- 1.2.1. 执行全备恢复
- 1.2.2. 执行增量恢复
- 1.2.3. 重建redo
- 1.3. 启动数据库
- 1.4. 去除thread2信息
- 1.1. 准备
- 2. 修改IP
1 数据恢复
1.1 准备
1.1.1 确认spfile备份文件
可以通过 list backup of spfile 来查看,也可以通过rman的备份日志来查找。下面是示例:
RMAN> list backup of spfile; ...... 省略 ........ BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 29334 Incr 0 80.00K DISK 00:00:01 10-MAY-20 BP Key: 50114 Status: AVAILABLE Compressed: YES Tag: TAG20200510T000809 Piece Name: /orabackup/backup/rmanbak/0510/level0_BOSS_20200510_29362_1.bak SPFILE Included: Modification time: 04-MAY-20 BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 29370 Incr 1 80.00K DISK 00:00:03 11-MAY-20 BP Key: 50167 Status: AVAILABLE Compressed: YES Tag: TAG20200511T000812 Piece Name: /orabackup/backup/rmanbak/0511/level1_BOSS_20200511_29398_1.bak SPFILE Included: Modification time: 04-MAY-20
通过日志查找:
# grep -i spfile -A 4 -B 2 rman.log channel c1: starting compressed incremental level 1 datafile backupset channel c1: specifying datafile(s) in backupset including current SPFILE in backupset channel c1: starting piece 1 at 11-MAY-20 channel c1: finished piece 1 at 11-MAY-20 piece handle=/orabackup/backup/rmanbak/0511/level1_BOSS_20200511_29398_1.bak tag=TAG20200511T000812 comment=NONE channel c1: backup set complete, elapsed time: 00:00:04
1.1.2 恢复spfile并修改
rman target / restore spfile to pfile from '/orabackup/backup/rmanbak/0511/level1_BOSS_20200511_29398_1.bak';
然后修改pfile 文件,调整一些必要的参数。比如内存分配,比如去除RAC配置等。
1.1.3 启动到nomount状态
目标环境实例需要启动到nomount状态。
[oracle@boss1 recovery]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Sun May 10 23:34:23 2020 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to an idle instance. SQL> startup nomount; ORACLE instance started. Total System Global Area 7180648448 bytes Fixed Size 2094960 bytes Variable Size 872417424 bytes Database Buffers 6291456000 bytes Redo Buffers 14680064 bytes SQL> exit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options [oracle@boss1 recovery]$
1.1.4 查看截止SCN
通过 list backup of archivelog all; 命令在原库中查看全备的中,归档的最后的SCN号。 我们需要告诉RMAN, 恢复到此SCN号为止。不然会报RMAN-06054: media recovery requesting unknown log: thread N seq xxxxx lowscn xxxxxxxx 示例如下:
RMAN> list backup of archivelog all; List of Backup Sets =================== BS Key Size Device Type Elapsed Time Completion Time ------- ---------- ----------- ------------ --------------- 28523 24.71G DISK 00:03:12 17-APR-20 BP Key: 48558 Status: AVAILABLE Compressed: NO Tag: TAG20200417T063445 Piece Name: /orabackup/backup/rmanbak/0417/arc_BOSS_20200417_28548_1.bak ............. 省略 .................. BS Key Size Device Type Elapsed Time Completion Time ------- ---------- ----------- ------------ --------------- 29338 23.70G DISK 00:03:52 10-MAY-20 BP Key: 50135 Status: AVAILABLE Compressed: NO Tag: TAG20200510T104532 Piece Name: /orabackup/backup/rmanbak/0510/arc_BOSS_20200510_29363_1.bak List of Archived Logs in backup set 29338 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- --------- ---------- --------- 1 15971 37992760305 09-MAY-20 38005724502 09-MAY-20 1 15972 38005724502 09-MAY-20 38006158131 09-MAY-20 1 15973 38006158131 09-MAY-20 38006517434 09-MAY-20 1 15974 38006517434 09-MAY-20 38008332716 10-MAY-20 1 15975 38008332716 10-MAY-20 38009880506 10-MAY-20 1 15976 38009880506 10-MAY-20 38010101673 10-MAY-20 1 15977 38010101673 10-MAY-20 38010260401 10-MAY-20 1 15978 38010260401 10-MAY-20 38021698434 10-MAY-20 1 15979 38021698434 10-MAY-20 38021702257 10-MAY-20 2 11556 37992760877 09-MAY-20 38006520198 09-MAY-20 2 11557 38006520198 09-MAY-20 38008308695 10-MAY-20 2 11558 38008308695 10-MAY-20 38008332693 10-MAY-20 2 11559 38008332693 10-MAY-20 38010101839 10-MAY-20 2 11560 38010101839 10-MAY-20 38010147354 10-MAY-20 2 11561 38010147354 10-MAY-20 38010260188 10-MAY-20 2 11562 38010260188 10-MAY-20 38021698438 10-MAY-20 2 11563 38021698438 10-MAY-20 38021702290 10-MAY-20 ====> 取最后一行的NEXT SCN 值
1.1.5 确认控制文件备份
通过 RMAN 命令 list backup of controlfile; 在原库中查找对应的控制文件。 本次操作,需要使用控制文件备份信息如下:
BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 29333 Incr 0 3.22M DISK 00:00:03 10-MAY-20 BP Key: 50113 Status: AVAILABLE Compressed: YES Tag: TAG20200510T000809 Piece Name: /orabackup/backup/rmanbak/0510/level0_BOSS_20200510_29361_1.bak Control File Included: Ckp SCN: 38011697387 Ckp time: 10-MAY-20
如果原库不可用,可在rman备份日志中通过control关键词查找,示例如下:
channel c1: backup set complete, elapsed time: 00:23:58 channel c1: starting compressed incremental level 1 datafile backupset channel c1: specifying datafile(s) in backupset including current control file in backupset channel c1: starting piece 1 at 11-MAY-20 channel c1: finished piece 1 at 11-MAY-20 piece handle=/orabackup/backup/rmanbak/0511/level1_BOSS_20200511_29397_1.bak tag=TAG20200511T000812 comment=NONE channel c1: backup set complete, elapsed time: 00:00:02
1.1.6 准备全量恢复脚本
rman脚本:
#!/bin/sh rman target / <recovery0510.log restore controlfile from '/recovery/0510/level0_BOSS_20200510_29361_1.bak'; alter database mount; catalog start with '/recovery/0510/' noprompt; set until scn 38021702290; run{ allocate channel ch00 type disk; allocate channel ch01 type disk; allocate channel ch02 type disk; set newname for datafile 1 to '/oradata/system.259.959376163'; set newname for datafile 2 to '/oradata/undotbs1.260.959376167'; set newname for datafile 3 to '/oradata/sysaux.261.959376167'; set newname for datafile 4 to '/oradata/undotbs2.263.959376169'; set newname for datafile 5 to '/oradata/users.264.959376171'; set newname for datafile 6 to '/oradata/rep.333.959707819'; set newname for datafile 7 to '/oradata/so.332.959707819'; set newname for datafile 8 to '/oradata/cs.331.959707821'; set newname for datafile 9 to '/oradata/bp.330.959707821'; set newname for datafile 10 to '/oradata/cs_idx.329.959707823'; set newname for datafile 11 to '/oradata/bm_idx.328.959707823'; set newname for datafile 12 to '/oradata/bm.327.959707823'; set newname for datafile 13 to '/oradata/bp_idx.326.959707825'; set newname for datafile 14 to '/oradata/mr.325.959707825'; set newname for datafile 15 to '/oradata/sm.324.959707825'; set newname for datafile 16 to '/oradata/indexlrg.323.959707827'; set newname for datafile 17 to '/oradata/so_idx.322.959707827'; set newname for datafile 18 to '/oradata/ei.321.959707829'; set newname for datafile 19 to '/oradata/card.320.959707829'; set newname for datafile 20 to '/oradata/datalrg.319.959707829'; set newname for datafile 21 to '/oradata/mr_idx.318.959707831'; set newname for datafile 22 to '/oradata/ei_idx.317.959707831'; set newname for datafile 23 to '/oradata/tr.316.959707831'; set newname for datafile 24 to '/oradata/tr_idx.315.959707833'; set newname for datafile 25 to '/oradata/datausr.314.959707833'; set newname for datafile 26 to '/oradata/uc.313.959707835'; set newname for datafile 27 to '/oradata/uc_idx.312.959707835'; set newname for datafile 28 to '/oradata/sm_idx.311.959707837'; set newname for datafile 29 to '/oradata/wf.310.959707837'; set newname for datafile 30 to '/oradata/ms_idx.309.959707837'; set newname for datafile 31 to '/oradata/ua.308.959707839'; set newname for datafile 32 to '/oradata/up.307.959707839'; set newname for datafile 33 to '/oradata/up_idx.268.959707841'; set newname for datafile 34 to '/oradata/pm.306.959707841'; set newname for datafile 35 to '/oradata/bo.303.959707843'; set newname for datafile 36 to '/oradata/sequser.305.959707843'; set newname for datafile 37 to '/oradata/datasml.304.959707843'; set newname for datafile 38 to '/oradata/pm_idx.302.959707845'; set newname for datafile 39 to '/oradata/ms.301.959707845'; set newname for datafile 40 to '/oradata/ua_idx.292.959707845'; set newname for datafile 41 to '/oradata/sr.358.959707847'; set newname for datafile 42 to '/oradata/sso.357.959707847'; set newname for datafile 43 to '/oradata/sso_idx.356.959707847'; set newname for datafile 44 to '/oradata/sr_idx.273.959707849'; set newname for datafile 45 to '/oradata/rep.365.959707855'; set newname for datafile 46 to '/oradata/rep.366.959707855'; set newname for datafile 47 to '/oradata/rep.367.959707855'; set newname for datafile 48 to '/oradata/rep.300.959707857'; set newname for datafile 49 to '/oradata/rep.299.959707857'; set newname for datafile 50 to '/oradata/rep.298.959707857'; set newname for datafile 51 to '/oradata/rep.297.959707859'; set newname for datafile 52 to '/oradata/rep.296.959707859'; set newname for datafile 53 to '/oradata/rep.295.959707859'; set newname for datafile 54 to '/oradata/rep.294.959707861'; set newname for datafile 55 to '/oradata/rep.293.959707861'; set newname for datafile 56 to '/oradata/rep.291.959707863'; set newname for datafile 57 to '/oradata/rep.290.959707863'; set newname for datafile 58 to '/oradata/rep.289.959707863'; set newname for datafile 59 to '/oradata/rep.288.959707865'; set newname for datafile 60 to '/oradata/rep.287.959707865'; set newname for datafile 61 to '/oradata/rep.286.959707865'; set newname for datafile 62 to '/oradata/rep.285.959707867'; set newname for datafile 63 to '/oradata/rep.284.959707867'; set newname for datafile 64 to '/oradata/rep.283.959707867'; set newname for datafile 65 to '/oradata/rep.282.959707869'; set newname for datafile 66 to '/oradata/rep.281.959707869'; set newname for datafile 67 to '/oradata/rep.280.959707869'; set newname for datafile 68 to '/oradata/rep.279.959707871'; set newname for datafile 69 to '/oradata/rep.278.959707871'; set newname for datafile 70 to '/oradata/rep.277.959707871'; set newname for datafile 71 to '/oradata/rep.276.959707873'; set newname for datafile 72 to '/oradata/so.364.959707873'; set newname for datafile 73 to '/oradata/so.363.959707875'; set newname for datafile 74 to '/oradata/so.362.959707875'; set newname for datafile 75 to '/oradata/so.275.959707875'; set newname for datafile 76 to '/oradata/so.361.959707877'; set newname for datafile 77 to '/oradata/so.360.959707877'; set newname for datafile 78 to '/oradata/so.359.959707879'; set newname for datafile 79 to '/oradata/so.274.959707879'; set newname for datafile 80 to '/oradata/so.355.959707881'; set newname for datafile 81 to '/oradata/so.354.959707881'; set newname for datafile 82 to '/oradata/so.353.959707881'; set newname for datafile 83 to '/oradata/so.272.959707881'; set newname for datafile 84 to '/oradata/cs.352.959707883'; set newname for datafile 85 to '/oradata/cs.351.959707883'; set newname for datafile 86 to '/oradata/cs.350.959707885'; set newname for datafile 87 to '/oradata/cs.271.959707885'; set newname for datafile 88 to '/oradata/bp.349.959707885'; set newname for datafile 89 to '/oradata/bp.348.959707887'; set newname for datafile 90 to '/oradata/bp.347.959707887'; set newname for datafile 91 to '/oradata/cs_idx.346.959707887'; set newname for datafile 92 to '/oradata/cs_idx.270.959707889'; set newname for datafile 93 to '/oradata/cs_idx.345.959707889'; set newname for datafile 94 to '/oradata/bm_idx.344.959707891'; set newname for datafile 95 to '/oradata/bm_idx.343.959707891'; set newname for datafile 96 to '/oradata/bm_idx.342.959707893'; set newname for datafile 97 to '/oradata/bm.341.959707893'; set newname for datafile 98 to '/oradata/bm.340.959707893'; set newname for datafile 99 to '/oradata/bm.339.959707895'; set newname for datafile 100 to '/oradata/bp_idx.338.959707895'; set newname for datafile 101 to '/oradata/bp_idx.337.959707897'; set newname for datafile 102 to '/oradata/bp_idx.336.959707897'; set newname for datafile 103 to '/oradata/tbs_ggate.368.959529693'; set newname for datafile 104 to '/oradata/undotbs2.258.959862935'; set newname for datafile 105 to '/oradata/undotbs2.257.959862943'; set newname for datafile 106 to '/oradata/undotbs1.266.959862957'; set newname for datafile 107 to '/oradata/undotbs1.265.959862963'; set newname for datafile 108 to '/oradata/rep.373.959862979'; set newname for datafile 109 to '/oradata/rep.374.959862985'; set newname for datafile 110 to '/oradata/rep.375.959862991'; set newname for datafile 111 to '/oradata/mr_01.dbf'; set newname for datafile 112 to '/oradata/so_01.dbf'; set newname for datafile 113 to '/oradata/tbs_ggate_02'; set newname for datafile 114 to '/oradata/rep_01.dbf'; set newname for datafile 115 to '/oradata/rep_02.dbf'; set newname for datafile 116 to '/oradata/bm_5.dbf'; set newname for datafile 117 to '/oradata/cs_idx_5.dbf'; set newname for datafile 118 to '/oradata/rep_34.dbf'; set newname for datafile 119 to '/oradata/ucan_01.dbf'; set newname for datafile 120 to '/oradata/mr_03.dbf'; set newname for datafile 121 to '/oradata/rep_35.dbf'; set newname for datafile 122 to '/oradata/so_02.dbf'; set newname for datafile 123 to '/oradata/rep_36.dbf'; set newname for datafile 124 to '/oradata/rep_37.dbf'; set newname for datafile 125 to '/oradata/rep_38.dbf'; set newname for datafile 126 to '/oradata/rep_39.dbf'; set newname for datafile 127 to '/oradata/rep_40.dbf'; set newname for datafile 128 to '/oradata/rep_41.dbf'; set newname for datafile 129 to '/oradata/rep_42.dbf'; set newname for datafile 130 to '/oradata/rep_43.dbf'; set newname for datafile 131 to '/oradata/so_03.dbf'; set newname for tempfile 1 to '/oradata/temp.262.959376169'; set newname for tempfile 2 to '/oradata/temp_def.335.959707897'; set newname for tempfile 3 to '/oradata/temp_usr.334.959707899'; set newname for tempfile 4 to '/oradata/temp_dba.269.959707925'; restore database; switch datafile all; switch tempfile all; recover database; release channel ch00; release channel ch01; release channel ch02; } EOF
将以上内容保存到recovery.sh
1.1.7 准备增量恢复脚本
此步骤可能需要执行多闪。因此需要多次确认SCN号。
catalog start with '/recovery/0511/' noprompt; set until scn 38031802340; recovery database;
1.2 恢复数据
1.2.1 执行全备恢复
本次恢复,并没有从备份文件中恢复spfile, 执行上面的rman 脚本。/sh recovery.sh/ 观察rman 日志,部分内容如下:
Recovery Manager: Release 10.2.0.4.0 - Production on Mon May 11 00:49:09 2020 Copyright (c) 1982, 2007, Oracle. All rights reserved. connected to target database: boss (not mounted) RMAN> Starting restore at 11-MAY-20 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=2189 devtype=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:04 output filename=/u01/app/oracle/control1.ctl output filename=/u01/app/oracle/control2.ctl Finished restore at 11-MAY-20 RMAN> database mounted released channel: ORA_DISK_1 RMAN> searching for all files that match the pattern /recovery/0510/ List of Files Unknown to the Database ===================================== File Name: /recovery/0510/level0_BOSS_20200510_29331_8.bak File Name: /recovery/0510/level0_BOSS_20200510_29332_6.bak File Name: /recovery/0510/level0_BOSS_20200510_29339_4.bak ........... 华丽丽的省略 ........... File Name: /recovery/0510/level0_BOSS_20200510_29331_3.bak File Name: /recovery/0510/level0_BOSS_20200510_29332_7.bak File Name: /recovery/0510/level0_BOSS_20200510_29333_3.bak File Name: /recovery/0510/level0_BOSS_20200510_29360_4.bak File Name: /recovery/0510/level0_BOSS_20200510_29349_7.bak cataloging files... cataloging done List of Cataloged Files ======================= File Name: /recovery/0510/level0_BOSS_20200510_29331_8.bak File Name: /recovery/0510/level0_BOSS_20200510_29332_6.bak File Name: /recovery/0510/level0_BOSS_20200510_29339_4.bak ......... 华丽丽的省略 ........... File Name: /recovery/0510/level0_BOSS_20200510_29331_3.bak File Name: /recovery/0510/level0_BOSS_20200510_29332_7.bak File Name: /recovery/0510/level0_BOSS_20200510_29333_3.bak File Name: /recovery/0510/level0_BOSS_20200510_29360_4.bak File Name: /recovery/0510/level0_BOSS_20200510_29349_7.bak RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16> 17> 18> 19> 20> 21> 22> 23> 24> 25> 26> 27> 28> 29> 30> 31> 32> 33> 34> 35> 36> 37> 38> 39> 40> 41> 42> 43> 44> 45> 46> 47> 48> 49> 50> 51> 52> 53> 54> 55> 56> 57> 58> 59> 60> 61> 62> 63> 64> 65> 66> 67> 68> 69> 70> 71> 72> 73> 74> 75> 76> 77> 78> 79> 80> 81> 82> 83> 84> 85> 86> 87> 88> 89> 90> 91> 92> 93> 94> 95> 96> 97> 98> 99> 100> 101> 102> 103> 104> 105> 106> 107> 108> 109> 110> 111> 112> 113> 114> 115> 116> 117> 118> 119> 120> 121> 122> 123> 124> 125> 126> 127> 128> 129> 130> 131> 132> 133> 134> 135> 136> 137> 138> 139> 140> 141> 142> 143> 144> 145> 146> 147> allocated channel: ch00 channel ch00: sid=2189 devtype=DISK allocated channel: ch01 channel ch01: sid=2188 devtype=DISK allocated channel: ch02 channel ch02: sid=2187 devtype=DISK executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME ....... 华丽丽的省略 ........ executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME Starting restore at 11-MAY-20 channel ch00: starting datafile backupset restore channel ch00: specifying datafile(s) to restore from backup set restoring datafile 00014 to /oradata/mr.325.959707825 restoring datafile 00017 to /oradata/so_idx.322.959707827 restoring datafile 00069 to /oradata/rep.278.959707871 restoring datafile 00117 to /oradata/cs_idx_5.dbf channel ch00: reading from backup piece /orabackup/backup/rmanbak/0510/level0_BOSS_20200510_29331_1.bak channel ch01: starting datafile backupset restore channel ch01: specifying datafile(s) to restore from backup set restoring datafile 00009 to /oradata/bp.330.959707821 restoring datafile 00076 to /oradata/so.361.959707877 restoring datafile 00079 to /oradata/so.274.959707879 restoring datafile 00086 to /oradata/cs.350.959707885 channel ch01: reading from backup piece /orabackup/backup/rmanbak/0510/level0_BOSS_20200510_29328_1.bak channel ch02: starting datafile backupset restore channel ch02: specifying datafile(s) to restore from backup set restoring datafile 00008 to /oradata/cs.331.959707821 restoring datafile 00016 to /oradata/indexlrg.323.959707827 restoring datafile 00070 to /oradata/rep.277.959707871 restoring datafile 00116 to /oradata/bm_5.dbf channel ch02: reading from backup piece /orabackup/backup/rmanbak/0510/level0_BOSS_20200510_29332_1.bak channel ch02: restored backup piece 1 failover to piece handle=/recovery/0510/level0_BOSS_20200510_29332_1.bak tag=TAG20200510T000809 channel ch02: reading from backup piece /orabackup/backup/rmanbak/0510/level0_BOSS_20200510_29332_2.bak channel ch00: restored backup piece 1 failover to piece handle=/recovery/0510/level0_BOSS_20200510_29331_1.bak tag=TAG20200510T000809 channel ch00: reading from backup piece /orabackup/backup/rmanbak/0510/level0_BOSS_20200510_29331_2.bak channel ch01: restored backup piece 1 failover to piece handle=/recovery/0510/level0_BOSS_20200510_29328_1.bak tag=TAG20200510T000809 ............ 华丽丽的省略 ........... channel ch02: reading from backup piece /recovery/0510/level0_BOSS_20200510_29357_4.bak channel ch02: restored backup piece 4 piece handle=/recovery/0510/level0_BOSS_20200510_29357_4.bak tag=TAG20200510T000809 channel ch02: reading from backup piece /recovery/0510/level0_BOSS_20200510_29357_5.bak channel ch02: restored backup piece 5 piece handle=/recovery/0510/level0_BOSS_20200510_29357_5.bak tag=TAG20200510T000809 channel ch02: reading from backup piece /recovery/0510/level0_BOSS_20200510_29357_6.bak channel ch02: restored backup piece 6 piece handle=/recovery/0510/level0_BOSS_20200510_29357_6.bak tag=TAG20200510T000809 channel ch02: reading from backup piece /recovery/0510/level0_BOSS_20200510_29357_7.bak channel ch02: restored backup piece 7 piece handle=/recovery/0510/level0_BOSS_20200510_29357_7.bak tag=TAG20200510T000809 channel ch02: restore complete, elapsed time: 00:29:21 Finished restore at 11-MAY-20 datafile 1 switched to datafile copy input datafile copy recid=132 stamp=1040109177 filename=/oradata/system.259.959376163 datafile 2 switched to datafile copy input datafile copy recid=133 stamp=1040109177 filename=/oradata/undotbs1.260.959376167 datafile 3 switched to datafile copy input datafile copy recid=134 stamp=1040109177 filename=/oradata/sysaux.261.959376167 datafile 4 switched to datafile copy ........... 华丽丽的省略 ................ input datafile copy recid=258 stamp=1040109193 filename=/oradata/rep_40.dbf datafile 128 switched to datafile copy input datafile copy recid=259 stamp=1040109193 filename=/oradata/rep_41.dbf datafile 129 switched to datafile copy input datafile copy recid=260 stamp=1040109193 filename=/oradata/rep_42.dbf datafile 130 switched to datafile copy input datafile copy recid=261 stamp=1040109193 filename=/oradata/rep_43.dbf datafile 131 switched to datafile copy input datafile copy recid=262 stamp=1040109193 filename=/oradata/so_03.dbf renamed temporary file 1 to /oradata/temp.262.959376169 in control file renamed temporary file 2 to /oradata/temp_def.335.959707897 in control file renamed temporary file 3 to /oradata/temp_usr.334.959707899 in control file renamed temporary file 4 to /oradata/temp_dba.269.959707925 in control file Starting recover at 11-MAY-20 starting media recovery channel ch00: starting archive log restore to default destination channel ch00: restoring archive log archive log thread=1 sequence=15974 channel ch00: restoring archive log archive log thread=2 sequence=11557 channel ch00: restoring archive log archive log thread=2 sequence=11558 channel ch00: restoring archive log archive log thread=2 sequence=11559 channel ch00: restoring archive log archive log thread=1 sequence=15975 channel ch00: restoring archive log archive log thread=1 sequence=15976 channel ch00: restoring archive log archive log thread=1 sequence=15977 channel ch00: restoring archive log archive log thread=2 sequence=11560 channel ch00: restoring archive log archive log thread=2 sequence=11561 channel ch00: restoring archive log archive log thread=2 sequence=11562 channel ch00: restoring archive log archive log thread=1 sequence=15978 channel ch00: restoring archive log archive log thread=1 sequence=15979 channel ch00: restoring archive log archive log thread=2 sequence=11563 channel ch00: reading from backup piece /recovery/0510/arc_BOSS_20200510_29363_1.bak channel ch00: restored backup piece 1 piece handle=/recovery/0510/arc_BOSS_20200510_29363_1.bak tag=TAG20200510T104532 channel ch00: restore complete, elapsed time: 00:01:16 archive log filename=/recovery/1_15974_959376158.arc thread=1 sequence=15974 archive log filename=/recovery/2_11557_959376158.arc thread=2 sequence=11557 archive log filename=/recovery/2_11558_959376158.arc thread=2 sequence=11558 archive log filename=/recovery/2_11559_959376158.arc thread=2 sequence=11559 archive log filename=/recovery/1_15975_959376158.arc thread=1 sequence=15975 archive log filename=/recovery/1_15976_959376158.arc thread=1 sequence=15976 archive log filename=/recovery/1_15977_959376158.arc thread=1 sequence=15977 archive log filename=/recovery/2_11560_959376158.arc thread=2 sequence=11560 archive log filename=/recovery/2_11561_959376158.arc thread=2 sequence=11561 archive log filename=/recovery/2_11562_959376158.arc thread=2 sequence=11562 archive log filename=/recovery/1_15978_959376158.arc thread=1 sequence=15978 archive log filename=/recovery/1_15979_959376158.arc thread=1 sequence=15979 archive log filename=/recovery/2_11563_959376158.arc thread=2 sequence=11563 unable to find archive log archive log thread=1 sequence=15980 released channel: ch00 released channel: ch01 released channel: ch02 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 05/11/2020 07:53:37 RMAN-06054: media recovery requesting unknown log: thread 1 seq 15980 lowscn 38021702257 RMAN> Recovery Manager complete.
看到最后, 出现错误提示:RMAN-06054 , 说明,备份的归档在恢复后,仍不能保证数据的一致性。
1.2.2 执行增量恢复
将备份数据发送到目标环境:
scp -r /orabackup/backup/rmanbak/0511 [email protected]:/recovery/
临时生产环境中,需要多次恢复。
catalog start with '/recovery/0511/' noprompt; recover database;
1.2.3 重建redo
需要确认控制文件中的redo 信息与恢复后的文件相匹配,否则无法open database.
set lines 32767 pages 5000 col status for a8 col type for a7 col member for a64 select a.inst_id,a.thread#,a.group#,a.sequence#,a.archived,a.status,b.type,b.member from gv$log a ,gv$logfile b where a.inst_id = b.inst_id and a.group# = b.group#;
结果:
INST_ID THREAD# GROUP# SEQUENCE# ARC STATUS TYPE MEMBER ---------- ---------- ---------- ---------- --- -------- ------- ---------------------------------------------------------------- 1 1 3 15977 YES INACTIVE ONLINE +DGDATA/boss/onlinelog/group_3.380.962034729 1 1 1 15978 NO CURRENT ONLINE +DGDATA/boss/onlinelog/group_1.378.962034643 1 2 4 11562 NO CURRENT ONLINE +DGDATA/boss/onlinelog/group_4.381.997111077 1 2 2 11561 YES INACTIVE ONLINE +DGDATA/boss/onlinelog/group_2.379.997111039
重建redo:
alter database rename file '+DGDATA/boss/onlinelog/group_3.380.962034729' to '/oradata/redo03.log'; alter database rename file '+DGDATA/boss/onlinelog/group_1.378.962034643' to '/oradata/redo01.log'; alter database rename file '+DGDATA/boss/onlinelog/group_2.379.997111039' to '/oradata/redo02.log'; alter database rename file '+DGDATA/boss/onlinelog/group_4.381.997111077' to '/oradata/redo04.log'; alter database clear unarchived logfile group 1; alter database clear unarchived logfile group 2; alter database clear unarchived logfile group 3; alter database clear unarchived logfile group 4;
在这里需要注意, 执行rename file 的时候可能会报错:
ERROR at line 1: ORA-00600: internal error code, arguments: [kgeade_is_0], [], [], [], [], [], [], []
无需理会,因为原文件与目标文件都不存在。只要执行后,控制文件中的内容被更新即可。如:
SQL> alter database rename file '+DGDATA/boss/onlinelog/group_3.380.962034729' to '/oradata/redo03.log'; alter database rename file '+DGDATA/boss/onlinelog/group_3.380.962034729' to '/oradata/redo03.log' ERROR at line 1: ORA-00600: internal error code, arguments: [kgeade_is_0], [], [], [], [], [], [], [] SQL> set lines 32767 pages 5000 SQL> col status for a8 SQL> col type for a7 SQL> col member for a64 SQL> SQL> select a.inst_id,a.thread#,a.group#,a.sequence#,a.archived,a.status,b.type,b.member 2 from gv$log a ,gv$logfile b 3 where a.inst_id = b.inst_id 4 and a.group# = b.group#; INST_ID THREAD# GROUP# SEQUENCE# ARC STATUS TYPE MEMBER ---------- ---------- ---------- ---------- --- -------- ------- ---------------------------------------------------------------- 1 1 3 15977 YES INACTIVE ONLINE /oradata/redo03.log 1 1 1 15978 NO CURRENT ONLINE +DGDATA/boss/onlinelog/group_1.378.962034643 1 2 4 11562 NO CURRENT ONLINE +DGDATA/boss/onlinelog/group_4.381.997111077 1 2 2 11561 YES INACTIVE ONLINE +DGDATA/boss/onlinelog/group_2.379.997111039 SQL>
1.3 启动数据库
alter database open resetlogs;
1.4 去除thread2信息
查看thread信息
select thread#,status,enabled,groups ,instance from v$thread; THREAD# STATUS ENABLED GROUPS INSTANCE ---------- ------ -------- ---------- -------------------------------------------------------------------------------- 1 OPEN PUBLIC 2 boss1 2 OPEN PUBLIC 2 boss1 select a.group#,thread#,sequence#,b.member,a.status,a.archived,b.status,b.type from v$log a,v$logfile b where a.group# = b.group#; GROUP# THREAD# SEQUENCE# MEMBER STATUS ARC STATUS TYPE ---------- ---------- ---------- -------------------- ---------------- --- ------- ------- 3 1 82 /oradata/redo03.log INACTIVE YES ONLINE 1 1 83 /oradata/redo01.log CURRENT NO ONLINE 4 2 10 /oradata/redo04.log INACTIVE YES ONLINE 2 2 11 /oradata/redo02.log ACTIVE YES ONLINE
取消thread2 并删除对应redo
-- 取消thread2 alter database disable thread 2; -- 为thread 1 添加redo alter database add logfile thread 1 group 5 ('/oradata/redo05.log') size 2G ; -- 删除thread2 redo alter database drop logfile group 4; alter database drop logfile group 2;
确认thread信息
select thread#,status,enabled,groups ,instance from v$thread; THREAD# STATUS ENABLED GROUPS INSTANCE ---------- ------ -------- ---------- -------------------------------------------------------------------------------- 1 OPEN PUBLIC 3 boss1
2 修改IP
因为原来的库是RAC, 应用连接数据库的时候配置的IP 都是VIP。 为了减少应用运维修改配置的工作量,在临时生产环境中 启动vip 地址。
- NOTE
- 原库停止后,再在临时生产库上添加IP。否则会出现IP冲突。
ifconfig eth0:2 172.58.10.13 netmask 255.255.255.224 broadcast 172.58.10.33 up ifconfig eth0:1 172.58.10.14 netmask 255.255.255.224 broadcast 172.58.10.33 up
Created: 2020-05-18 Mon 00:59
Validate