日志损坏时,加入隐含参数打开数据库的总结

对在日志损坏时,什么时候需要加入隐含参数打开数据库的问题一直没弄清楚,做了一下测试,总结如下:(我也不知道对不对,请高手指正)


一、归档模式
1、损坏当前联机日志

1.1 非干净关闭

1.1.1、有活动事务

1.1.1.1、有备份
1)关闭数据库、备份现场、拷贝备份
2)recover database until cancel;(选择AUTO)
3)recover database until cancel;(选择CANCEL)
4)alter datbase open resetlogs;
5)做一次全备

1.1.1.2、无备份(需要加入隐含参数)
1)关闭数据库、加入隐含参数、拷贝备份
2)recover database until cancel;(选择CANCEL)
3)alter database open resetlogs;
4)注释隐含参数,并做一次全备

1.1.2、无活动事务
1)startup mount
2)alter database clear [unarchived] logfile group n;
3)alter database open;

1.2 干净关闭
参考1.1.2

2、损坏非当前联机日志
参考1.1.2


二、非归档模式
1、损坏当前联机日志

1.1 非干净关闭

1.1.1、有活动事务(需要加入隐含参数)
1)关闭数据库、保护现场、加入隐含参数
2)recover database until cancel;(选择CANCEL)
3)alter database open resetlogs;
4)做一次全备、注释隐含参数

1.1.2、无活动事务
1)startup mount
2)alter database clear [unarchived] logfile group n;
3)alter database open;

1.2 干净关闭
参考1.1.2

2、损坏非当前联机日志
参考1.1.2


总结:
1、归档模式下,只有损坏当前联机日志、当前联机日志有活动事务、且数据库无备份的情况下才需要加入隐含参数。
2、非归档模式下,只要损坏当前联机日志、且当前联机日志有活动事务,无论数据库是否有备份的情况下都需要加入隐含参数。

请使用浏览器的分享功能分享到微信等