love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

达梦数据库学习笔记之 — current redo误删除恢复

前一篇文章测试了非current redo的情况,这里继续测试达梦数据库current redo如果被误删除如何启动数据库。

首先创建测试表,并删除current redo:

此时尝试去启动数据库,肯定是会报错的;如下所示:

这里我们利用其他2个日志来构造修改被删除的enmotech01.log。

[dmdba@mogdb ~]$ cp /opt/dm/dmdbms/data/enmotech/enmotech02.log /opt/dm/dmdbms/data/enmotech/enmotech01.log
[dmdba@mogdb ~]$

使用工具修复redo:

再次启动发现仍然报错:

检查日志发现相关信息是不对的:

进一步检查之前的日志,寻找lsn等信息:

再次进行修改:

看上去修改不对,提示这个redo log状态是inactive。那么首先修改成active,试试看;

Ok!自此修改完毕,接下来我们尝试启动达梦数据库看看效果。

最后我们验证一下数据库:

可以发现数据库正常,数据也是正常的。不过通过综合分析,发现达梦数据库似乎在事务一致性方面校验并不是十分的严格。

后面我进行了类似多次测试,如下:

修改redo的步骤类似,这里省略。

数据仍然正常,此时日志中有事务回滚方面的信息:

这里让我有点看不懂了。难道事务恢复不需要Redo?我只需要Redo的几个关键信息就可以欺骗达梦数据库?

Leave a Reply

You must be logged in to post a comment.