环境说明:模拟没有备份且实例无法启动的情况进行redo日志修复。
数据库版本:8.1.3.26
1)将正常状态集群的redo日志修改名字模拟删除
mv DAMENG01.log DAMENG01.log_bak
mv DAMENG02.log DAMENG02.log_bak
2)停止数据库后启动数据库失败。
–注意需要新初始化一个实例,将实例首次启动到SYSTEM IS READY状态再停止进行替换。
1)拷贝完成后查看SYSTEM.DBF中的db_magic
./dmmdf type=1 file=/data/dmdata2/DAMENG/SYSTEM.DBF
2)将db_magic分别更新到两个新的联机日志中
./dmmdf type=2 file=/data/dmdata2/DAMENG/DAMENG01.log
./dmmdf type=2 file=/data/dmdata2/DAMENG/DAMENG02.log
3)将dm.ini文件中PSEG_RECV修改为0
vi /data/dmdata2/DAMENG/dm.ini
–修改方法一致
注:数据库正常后可做一个dbcheck检验数据的完整性。
碰到过修改到以上第六步依然报错无法启动的情况,尝试将enable_page_check参数修改为与SYSTEM.DBF中一致,可正常启动。
–修改方式参考上面修改。
1)将新redo日志中的db_magic、pemnt_magic、enable_page_check三个参数修改为与SYSTEM.DBF中一致。其中enable_page_check有时不修改也可以启动。
2)在dm.ini文件中修改和添加PSEG_RECV = 0,RLOG_CHECK_SPACE = 2
3)前台启动数据库服务,可正常启动。停库后校验dbchk是否有报错。
4)为防止数据库出现问题,建议将损坏redo实例的数据迁移到新的数据库实例中并进行全库备份。
注意:redo日志作为数据库的重要在线日志谨慎操作,数据库及时做备份策略防止实例损坏后无法进行数据修复,以上测试修改可供参考,生产环境/测试环境谨慎操作。
文章
阅读量
获赞