其他分享
首页 > 其他分享> > dm8 current重做日志生成方法

dm8 current重做日志生成方法

作者:互联网

当前重做日志是数据库事务最先写入的文件,不管事务有没有提交,都在数据文件落盘之前,是事务一致性保证的重要文件,在实际生产过程中,可能也会遇到当前重做日志丢失或者损坏的情况,前面一些文章中已经描述了初始化参数文件dm.ini、控制文件dm.ctl、非current redolog的修复方法。本单节是对current redolog,即当前重做日志丢失或损坏情况下的修复。

先创建测试用的表并插入相应的数据:

这里插入两条数据并进行提交,另外再插入一条数据,但是不提交,执行checkpoint操作,这时在其他终端上只能查询到两条数据:

查找当前重做日志,并删除当前重做日志,然后关闭数据库

这时再启动数据库,肯定提示重做日志不存在了。为节省测试步骤,这里从mesdb02.log复制一份,并修改file_id的值,节省修改db_magic和pemnt_magic两个值的修改,修改后的文件如下:

然后重新启动数据库实例,提示如下信息:

查看上面的启动过程,是可以启动成功的,和普通的启动基本无任何差别,查看一下日志的信息如下:

整个过程的描述和前面实例启动过程基本无任何差别,这里再关闭实例,查看mesdb01的内容:

相较于之前的查看内容,自动的将sta、clsn、next_seq、g_next_seq自动赋值了,再次启动实例,可以直接启动,查看最早创建的表的内容:

由于未执行提交,虽然执行了检查点操作,但是还是进行了回滚操作。到此完成current redolog的恢复。

总结:当前重做日志记录的是正在进行中的事务信息,是数据库故障后进行重演事务的重要文件,在实际生产过程中,可能会遇到当前重做日志丢失的事情,验证好丢失情况下的补救措施,可以很好的在故障出时,快速的进行数据库的修复。

达梦社区:https://eco.dameng.com

标签:启动,数据库,current,当前,dm8,日志,重做
来源: https://www.cnblogs.com/ly-nye/p/16468581.html