RMAN 恢复
来源:互联网 发布:西餐收银软件 编辑:程序博客网 时间:2024/04/29 06:54
可以在mount的情况;
alter database create datafile 8----前提在控制文件中已经有datafile相关记录。
然后alter database rename file '+DATA/xxxxxxxxxxxxxx' to '+DATA/yyyyyyyyyyyyyyyyyy'
alter database backup control file to trace可以产生一个控制文件的文本备份。用于控制文件恢复
可以去alert文件里查看刚才生成的trace file文件名。
实验
先备份整个数据加控制文件spfile
backup database
RMAN> list backup;using target database control file instead of recovery catalogList of Backup Sets===================BS Key Type LV Size Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------9 Full 1.49G DISK 00:00:27 18-MAR-13 BP Key: 9 Status: AVAILABLE Compressed: NO Tag: TAG20130318T052627 Piece Name: +DATA/orcl/backupset/2013_03_18/nnndf0_tag20130318t052627_0.710.810365187 List of Datafiles in backup set 9 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 25341971 18-MAR-13 +DATA/orcl/datafile/system.256.793082125 2 Full 25341971 18-MAR-13 +DATA/orcl/datafile/sysaux.257.793082125 3 Full 25341971 18-MAR-13 +DATA/orcl/datafile/undotbs1.258.793082127 4 Full 25341971 18-MAR-13 +DATA/orcl/datafile/users.259.793082127 5 Full 25341971 18-MAR-13 +DATA/orcl/datafile/undotbs2.267.793082251BS Key Type LV Size Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------10 Full 18.17M DISK 00:00:01 18-MAR-13 BP Key: 10 Status: AVAILABLE Compressed: NO Tag: TAG20130318T052702 Piece Name: +DATA/orcl/autobackup/2013_03_18/s_810365222.706.810365223 SPFILE Included: Modification time: 17-MAR-13 SPFILE db_unique_name: ORCL Control File Included: Ckp SCN: 25342056 Ckp time: 18-MAR-13
删除所有的数据文件,控制文件,联机日志文件;
orcl1>select name from v$controlfile 2 union 3 select name from v$datafile 4 union 5 select member name from v$logfile;NAME----------------------------------------------------------------------+DATA/orcl/controlfile/current.260.793082219+DATA/orcl/controlfile/current.261.793082219+DATA/orcl/datafile/sysaux.257.793082125+DATA/orcl/datafile/system.256.793082125+DATA/orcl/datafile/undotbs1.258.793082127+DATA/orcl/datafile/undotbs2.267.793082251+DATA/orcl/datafile/users.259.793082127+DATA/orcl/onlinelog/group_1.262.793082223+DATA/orcl/onlinelog/group_1.263.793082223+DATA/orcl/onlinelog/group_2.264.793082223+DATA/orcl/onlinelog/group_2.265.793082225NAME----------------------------------------------------------------------+DATA/orcl/onlinelog/group_3.268.793082307+DATA/orcl/onlinelog/group_3.269.793082307+DATA/orcl/onlinelog/group_4.270.793082309+DATA/orcl/onlinelog/group_4.271.79308230915 rows selected.
.
关闭两个实例
shutdown abort; --所有实例
进行删除操作:--删除上面列出的所有文件
恢复步骤:
先从备份中恢复控制文件
sal>startup nomount;
[oracle@juliaz2 ~]$ rman target /Recovery Manager: Release 11.2.0.1.0 - Production on Mon Mar 18 06:50:11 2013Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.connected to target database: ORCL (not mounted)RMAN> restore controlfile from '+DATA/orcl/autobackup/2013_03_18/s_810365222.706.810365223';Starting restore at 18-MAR-13using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=134 instance=orcl1 device type=DISKchannel ORA_DISK_1: restoring control filechannel ORA_DISK_1: restore complete, elapsed time: 00:00:01output file name=+DATA/orcl/controlfile/current.267.810370223output file name=+DATA/orcl/controlfile/current.258.810370223Finished restore at 18-MAR-13
rman>restore controlfile form '控制文件备份所在路径'
控制文件恢复成功后
rman > sql 'alter database mount' ;
RMAN> sql 'alter database mount';sql statement: alter database mountreleased channel: ORA_DISK_1RMAN>
rman>restore database ;
RMAN> restore database ;Starting restore at 18-MAR-13Starting implicit crosscheck backup at 18-MAR-13allocated channel: ORA_DISK_1Crosschecked 3 objectsFinished implicit crosscheck backup at 18-MAR-13Starting implicit crosscheck copy at 18-MAR-13using channel ORA_DISK_1Crosschecked 16 objectsFinished implicit crosscheck copy at 18-MAR-13searching for all files in the recovery areacataloging files...cataloging doneList of Cataloged Files=======================File Name: +dg1/ORCL/ARCHIVELOG/2013_03_18/thread_1_seq_426.257.810368515File Name: +dg1/ORCL/ARCHIVELOG/2013_03_18/thread_1_seq_427.258.810368563File Name: +dg1/ORCL/ARCHIVELOG/2013_03_18/thread_1_seq_428.259.810368569File Name: +dg1/ORCL/ARCHIVELOG/2013_03_18/thread_2_seq_460.260.810368569File Name: +dg1/ORCL/ARCHIVELOG/2013_03_18/thread_1_seq_429.261.810369187File Name: +dg1/ORCL/ARCHIVELOG/2013_03_18/thread_1_seq_430.262.810369189using 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 00001 to +DATA/orcl/datafile/system.256.793082125channel ORA_DISK_1: restoring datafile 00002 to +DATA/orcl/datafile/sysaux.257.793082125channel ORA_DISK_1: restoring datafile 00003 to +DATA/orcl/datafile/undotbs1.258.793082127channel ORA_DISK_1: restoring datafile 00004 to +DATA/orcl/datafile/users.259.793082127channel ORA_DISK_1: restoring datafile 00005 to +DATA/orcl/datafile/undotbs2.267.793082251channel ORA_DISK_1: reading from backup piece +DATA/orcl/backupset/2013_03_18/nnndf0_tag20130318t052627_0.710.810365187channel ORA_DISK_1: piece handle=+DATA/orcl/backupset/2013_03_18/nnndf0_tag20130318t052627_0.710.810365187 tag=TAG20130318T052627channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:45Finished restore at 18-MAR-13
接下来确定恢复终点;
查看控制文件中归档日志记录;
查看磁盘上的归档日志记录
sql>select name from v$archived_log;
orcl1>select name from v$archived_log;+DG1/orcl/archivelog/2013_03_18/thread_1_seq_426.257.810368515+DG1/orcl/archivelog/2013_03_18/thread_1_seq_427.258.810368563+DG1/orcl/archivelog/2013_03_18/thread_1_seq_428.259.810368569+DG1/orcl/archivelog/2013_03_18/thread_2_seq_460.260.810368569NAME----------------------------------------------------------------------+DG1/orcl/archivelog/2013_03_18/thread_1_seq_429.261.810369187+DG1/orcl/archivelog/2013_03_18/thread_1_seq_430.262.810369189442 rows selected.
再看看磁盘上的归档日志
ASMCMD> pwd+dg1/orcl/archivelog/2013_03_18ASMCMD> lsthread_1_seq_426.257.810368515thread_1_seq_427.258.810368563thread_1_seq_428.259.810368569thread_1_seq_429.261.810369187thread_1_seq_430.262.810369189thread_2_seq_460.260.810368569ASMCMD>
有些归档日志是在备份之后产生的,所以不被当前控制文件所知道。需要把这些文件登记到控制文件中;
可以在我的实验里没有。
登记备份后产生的日志需要用rman的catalog命令;
rman>catalog archivelog '归档文件所在路径‘;
。。。
直到全部注册到controlfile;
确认恢复终点
sql>select thread#,sequence#,name,next_change# from v$archived_log
1 426 +DG1/orcl/archivelog/2013_03_18/thread_1_seq_426.257.810368515 25350729 1 427 +DG1/orcl/archivelog/2013_03_18/thread_1_seq_427.258.810368563 25352313 1 428 +DG1/orcl/archivelog/2013_03_18/thread_1_seq_428.259.810368569 25359744 2 460 +DG1/orcl/archivelog/2013_03_18/thread_2_seq_460.260.810368569 25360192 THREAD# SEQUENCE# NAME NEXT_CHANGE#---------- ---------- ---------------------------------------------------------------------- ------------ 1 429 +DG1/orcl/archivelog/2013_03_18/thread_1_seq_429.261.810369187 25387789 1 430 +DG1/orcl/archivelog/2013_03_18/thread_1_seq_430.262.810369189 25387794442 rows selected.orcl1>l 1* select thread#,sequence#,name,next_change# from v$archived_log
再执行恢复;
sql>recover database using backup controlfile until cancel;也可以用rman工具,但是需要使用set until提前指定恢复终点,比较麻烦,还是sql中的简单。
orcl1>recover database using backup controlfile until cancel ;ORA-00279: change 25341971 generated at 03/18/2013 05:26:27 needed for thread 1ORA-00289: suggestion : +DG1/orcl/archivelog/2013_03_18/thread_1_seq_426.257.810368515ORA-00280: change 25341971 for thread 1 is in sequence #426Specify log: {<RET>=suggested | filename | AUTO | CANCEL}+DG1/orcl/archivelog/2013_03_18/thread_1_seq_426.257.810368515ORA-00279: change 25341971 generated at 03/17/2013 23:18:17 needed for thread 2ORA-00289: suggestion : +DG1/orcl/archivelog/2013_03_18/thread_2_seq_460.260.810368569ORA-00280: change 25341971 for thread 2 is in sequence #460Specify log: {<RET>=suggested | filename | AUTO | CANCEL}+DG1/orcl/archivelog/2013_03_18/thread_2_seq_460.260.810368569ORA-00279: change 25350729 generated at 03/18/2013 06:21:54 needed for thread 1ORA-00289: suggestion : +DG1/orcl/archivelog/2013_03_18/thread_1_seq_427.258.810368563ORA-00280: change 25350729 for thread 1 is in sequence #427ORA-00278: log file '+DG1/orcl/archivelog/2013_03_18/thread_1_seq_426.257.810368515' no longer needed for this recoverySpecify log: {<RET>=suggested | filename | AUTO | CANCEL} +DG1/orcl/archivelog/2013_03_18/thread_1_seq_427.258.810368563ORA-00279: change 25352313 generated at 03/18/2013 06:22:43 needed for thread 1ORA-00289: suggestion : +DG1/orcl/archivelog/2013_03_18/thread_1_seq_428.259.810368569ORA-00280: change 25352313 for thread 1 is in sequence #428ORA-00278: log file '+DG1/orcl/archivelog/2013_03_18/thread_1_seq_427.258.810368563' no longer needed for this recoverySpecify log: {<RET>=suggested | filename | AUTO | CANCEL}+DG1/orcl/archivelog/2013_03_18/thread_1_seq_428.259.810368569ORA-00279: change 25359744 generated at 03/18/2013 06:22:48 needed for thread 1ORA-00289: suggestion : +DG1/orcl/archivelog/2013_03_18/thread_1_seq_429.261.810369187ORA-00280: change 25359744 for thread 1 is in sequence #429ORA-00278: log file '+DG1/orcl/archivelog/2013_03_18/thread_1_seq_428.259.810368569' no longer needed for this recoverySpecify log: {<RET>=suggested | filename | AUTO | CANCEL}+DG1/orcl/archivelog/2013_03_18/thread_1_seq_429.261.810369187ORA-00279: change 25360192 generated at 03/18/2013 06:22:49 needed for thread 2ORA-00289: suggestion : +DG1ORA-00280: change 25360192 for thread 2 is in sequence #461ORA-00278: log file '+DG1/orcl/archivelog/2013_03_18/thread_2_seq_460.260.810368569' no longer needed for this recoverySpecify log: {<RET>=suggested | filename | AUTO | CANCEL}cancelMedia recovery cancelled.
如果使用rman ,需要下面的方法
rman> run {
set until sequence 64 thread 2;
restore database;
recover database;
}
如果在rman中我们不提前确认能够恢复的终点,并且用set until 明确指出.Oracle会尝试恢复所有的归档。
在单实例情况下,每个归档日志中的scn号是连续分布的,因此这种尝试肯定会成功;但是在RAC环境下,scn是在实例间分布的,因此归档日志间的scn可能是不连续。这时某些归档日志虽然文件存在,但是却不能恢复到最后时间点。
以resetlogs方式打开数据库
orcl1>alter database open resetlogs;Database altered.orcl1>
打开其他实例
最后,进行数据库完全备份。
在以上操作过程,不清楚节点在哪一个步骤自动在本地生成了spfile文件,
生成正确的pfile,然后用pfile生成正确的spfile,还需要修改一下本地的initsid.ora 文件,和ocr里面spfile的文件路径。我们一般是用srvctl来启动和关闭数据库的,而srvctl读取的ocr里面的配置信息,所以要更新ocr的spfile信息
orcl2>create spfile='+DATA/orcl/spfileorcl.ora' from pfile='/tmp/pfileorcl1.ora';
[oracle@juliaz2 dbs]$ pwd/u01/app/oracle/dbs[oracle@juliaz2 dbs]$ more initorcl1.oraSPFILE='+DATA/orcl/spfileorcl.ora'# line added by Agent[oracle@juliaz2 dbs]$
[root@juliaz2 ~]# srvctl modify database -d orcl -p +DATA/orcl/spfileorcl.ora[[root@juliaz2 dbs]# srvctl config database -d orcl -aDatabase unique name: orclDatabase name: orclOracle home: /u01/app/oracleOracle user: oracleSpfile: +DATA/orcl/spfileorcl.oraDomain: Start options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: orclDatabase instances: orcl1,orcl2Disk Groups: DATAServices: Database is enabledDatabase is administrator managed[root@juliaz2 dbs]#
参考图书:大话Oracle RAC
oracle联机文档
- RMAN恢复
- rman恢复
- rman恢复
- RMAN 恢复
- RMAN 恢复
- RMAN恢复
- rman catalog (rman 恢复目录)
- rman恢复-不完全恢复
- [转帖]RMAN 恢复实践
- RMAN恢复数据文件
- rman备份恢复总结
- 11 RMAN 恢复
- RMAN备份恢复测试
- RMAN恢复数据库
- rman备份恢复总结
- RMAN 备份与恢复
- RMAN恢复策略
- rman备份恢复
- 中兴u930修改搜索键为电源键
- iOS学习之 plist文件的读写
- Ubuntu下不能以根用户身份运行 Google Chrome 浏览器
- 查找算法之折半查找
- 需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个
- RMAN 恢复
- PE文件格式应用实例__为PE文件添加启动时对话框
- 寻找丑数
- 查找算法之二叉排序树查找
- 毕业论文查重
- 使用跳转语句计算满足1+2+...+n<8888的最大整数n以及1—200之间被7整除的数字之和
- ZooKeeper典型应用场景
- OAuth介绍 - 协议解析
- 设计模式--行为模式--迭代模式--Java