大话RAC介质恢复---联机日志损坏

对联机日志的损坏要根据日志状态进行分析,联机日志一般会有Current、Active和Inactive三种状态。Inactive状态不会造成数据丢失。而Active和Current状态的日志一般会造成数据的丢失。根据v$log.status判断受损日志的状态。

a.如果是Inactive状态的日志损坏,把该组日志drop就可以。因为每个thread至少要有两组日志,所以在删除前要先添加一组。

b.如果是ACTIVE/CURRENT状态,则要进行一下操作:

1.关闭所有实例
2.在受损实例上,启动到mount状态;
3.用recover database until cancel模拟一次不完全恢复
4.执行alter database open resetlogs命令
5.实例启动成功后,启动其他实例
6.对数据库进行一次全备

转:http://www.cnblogs.com/polestar/p/5751734.html
时间: 2024-08-06 11:31:08

大话RAC介质恢复---联机日志损坏的相关文章

大话RAC介质恢复---只有备份文件的恢复

场景:Oracle 10g RAC:数据文件.控制文件.联机日志.参数文件都使用ASM,归档到ASM.完整备份后,删除所有控制文件.联机日志.数据文件:最后利用备份进行不完全恢复. 1.模拟灾难场景(略) 2.恢复步骤 1.将数据库启动到nomount状态 SQL>startup nomount 2.用RMAN从自动备份中恢复控制文件,在某个实例中执行 RMAN>restore controfile from '存储备份文件的备份集'; 3.挂载数据库 RMAN>sql'alter da

ORACLE联机日志文件丢失或损坏的处理方法(转)

经验总结: 联机日志分为当前联机日志和非当前联机日志,非当前联机日志的损坏是比较简单的,一般通过clear命令就可以解决问题. 损坏非当前联机日志:1.启动数据库,遇到ORA-00312 or ORA-00313错误,如:ORA-00313: open failed for members of log group 4 of thread 1ORA-00312: online log 3 thread 1: '/opt/oracle/db04/oradata/ORCL/redo03.log'从这

acle联机日志文件的维护

1.刷新重做日志缓存的时机 a.commit b.缓存满了 c.checkpoint,checkpoint的触发有两种机制: 定时触发,由log_checkpoint_interval[1]参数决定间隔的时间,单位秒:0表示禁用 定量触发,由log_checkpoint_timeout[2]参数决定,表示故障恢复所需要的时间,单位秒:0表示禁用. 2.切换日志的归档方式 a.archive log list (查看日志的日志的归档方式) b.startup mount c.alter datab

完全恢复-介质恢复

恢复阶段 1.损坏或丢失文件从备份中还原 2.从归档和在线日志文件必要的被应用来改变数据,回滚块也在这时生成,这个称为前滚或恢复缓存 3.数据库可能包含提交.不提交的改变数据 4.回滚块被使用于任何未提交的数据被回滚,这个称为回滚或事务恢复 5.数据库现在为恢复状态 无开启归档模式恢复 A.好处: 执行简单,出错率低 恢复时间就是还原所有的文件花费的时间 B.不利: 数据丢失,必须手工应用 整个数据库被还原到关闭备份的最后一个时间点 带有重做日志文件的备份非归档的恢复 SQL>SHUTDOWN

重做日志损坏之后的处理

如果遇到没有备份,特别是重做日志文件损坏,可能数据库就打不开了.用户希望挽救一部分数据,如果备份可以进行数据库的不完全恢复,或者是直接清除日志.如果不行只能强制打开市局库.具体如下: ORACLE存在一个内部参数可以尝试恢复_allow_resetlogs_corruption.描述可以通过这个语句查询到. SELECT x.ksppinm NAME,y.ksppstvl VALUE,x.ksppdesc describ FROM SYS.X$ksppi x,SYS.x$Ksppcv y WHE

Oracle实例的恢复、介质恢复( crash recovery)( Media recovery)

实例的恢复( crash recovery) 什么时候发生Oracle实例恢复? shutdown abort; 数据库异常down掉(机器死机,掉电...) 实例恢复的原因是数据有丢掉,使用redo数据恢复 实例恢复是一个自动的过程,不需要人工干预. 控制文件就是为了检查一致性,如果不一致就会实例恢复 实例恢复发生在那个阶段? sql>startup nomount(读取spfle) ,启动实例,oracle给自己分了一些内存,oracle的内存起来,这个时候没有实例恢复. SQL> sta

ORACLE 10G RAC ASM 恢复例

RAC服务器的ASM实例中的库发生破坏,丢失了一些数据文件,还有控制文件和SPFILE.数据库实例也处于shutdown状态. 1.找到备份片的位置 通过查找,备份片处于 /u01/app/oracle/product/10.2.0/db_1/dbs/01ntr7ob_1_1datafile /u01/app/oracle/product/10.2.0/db_1/dbs/02ntr7qn_1_1controlfile和spfile 2.在RMAN中先引导DUMMY实例启动 先将init.ora拷

oracle介质恢复和实例恢复的异同

1.概念 ? ? REDO LOG是Oracle为确保已经提交的事务不会丢失而建立的一个机制.实际上REDO LOG的存在是为两种场景准备的: 实例恢复(INSTANCE RECOVERY): 介质恢复(MEDIA RECOVERY). ? ? 实例恢复的目的是在数据库发生故障时,确保BUFFER CACHE中的数据不会丢失,不会造成数据库的不一致: 介质恢复的目的是当数据文件发生故障时,能够恢复数据. 虽然这两种恢复使用的机制类似的,但是这两种恢复也有着十分本质的不同,这一点也是很多DBA经常

物理写的判断 & 介质恢复 & 实例恢复 & 增量检查点

物理写的检测: select  * from v$sysstat where lower(name) like 'physical writes%';  physical writes 8 9 119             //我一共写了多少块 select * from v$sysstat where upper(name) like 'DBW%'; 104 DBWR checkpoint buffers written 8 173 12  //通过检查点写了多少块. 那你就可以用  buf