MySQL 误删了 undo log 文件,启动失败,有什么办法可以恢复或者跳过 undo tablespaces 正常启动吗?

2020-07-20 11:13:18 +08:00
 jzz22

如题,各位大神有什么解决方法吗?搜了很多都是 oracle 的处理方法

1997 次点击
所在节点    MySQL
6 条回复
julyclyde
2020-07-20 11:58:14 +08:00
mysql 有 undo log 吗?我记得只有 redo log 啊……
iamaprin
2020-07-20 12:12:10 +08:00
@julyclyde 有的,用于事务回滚和 MVCC
littlewing
2020-07-20 12:37:03 +08:00
innodb_force_recovery
jzz22
2020-07-20 13:45:00 +08:00
@littlewing 调成 5,可以正常启动,但是不知道怎么处理,drop 不了 tablespace,重新调成 0 之后又启动失败
UnknownR
2020-07-20 16:24:14 +08:00
握手,我是把 oracle 的 redolog 给删了。。。还好只是开发用的调试数据库,建了个新的
littlewing
2020-07-21 00:51:03 +08:00
@jzz22 " In such cases, you can use the innodb_force_recovery option to force the InnoDB storage engine to start up while preventing background operations from running, so that you can dump your tables."
https://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
这个参数是用来让你把 mysql 跑起来然后有机会把数据备份出来用的,并不能从根本上解决问题,不过数据能备份出来你再新建一个 mysql 实例导进去不就行了
需要注意的是这样备份出来的数据不一定是正确的,如果你是在 mysql 运行的时候把 undo 删了,然后又重启了 mysql,那么未提交事物就不能 rollback 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/691499

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX