不可轻言放弃,否则对不起自己!
rman备份与恢复-3
上一篇 /
下一篇 2011-06-07 14:02:13
/ 个人分类:数据库
6、重做日志文件的恢复
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
SQL> recover database using backup controlfile until cancel;
SQL> alter database open resetlogs;
7、归档日志文件的恢复
RMAN>shutdown immediate
RMAN>startup mount
RMAN> run
2> {
3> allocate channel c1 device type disk;
4> restore archivelog all;
5> }
8、损坏非当前联机日志
步骤一 启动数据库,报错:ORA-00313和ORA-00312
步骤二 查看v$log视图
步骤三 用CLEAR命令重建该日志文件 SQL> alter database clear logfile group 3;
如果是该日志组还没有归档,则需要用
SQL>alter database clear unarchived logfile group 3;
步骤四 打开数据库,并备份数据库 SQL> alter database open;
9、损坏当前联机日志
一、数据库正常关闭,日志文件中没有未决的事务需要实例恢复,当前日志组的损坏,可以直接使用alter database clear unarchived logfile group N;命令来重建
SQL> alter database clear unarchived logfile group 2;
SQL> alter database open;
二、日志组中有活动事务,需要介质恢复,日志组需要用来数据同步,有两种解决方法:
1、通过不完全恢复,保持数据库数据一致性,这种方法要求数据库运行在归档方式下,且有可用的数据文件的备份
步骤一 启动数据库,报错:ORA-00313 ,ORA-00312, ORA-27037
步骤二 模拟当前日志组中日志文件损坏 SQL> select * from v$log;
步骤三 拷贝有效的备份,进行不完全恢复(包括所有的控制文件、数据文件、redo文件)
步骤四 数据库启动到mount状态,进行不完全恢复:
SQL> startup mount
SQL> recover database until cancel;
SQL> alter database open resetlogs;
注:这个时候是不能用rman进行恢复的!
2、通过强制性恢复,这种方法会导致数据的不一致性,推荐使用方法一
步骤一 模拟当前日志组中日志成员被损坏 SQL> select * from v$log;
步骤二 修改pfile文件,增加隐性参数
vi /opt/oracle/admin/mmsgdb/pfile/init.ora.232011183420
#add for test by wangyunzeng
_allow_resetlogs_corruption=TRUE
收藏
举报
TAG: