V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
jzz22
V2EX  ›  MySQL

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

  •  
  •   jzz22 · 2020-07-20 11:13:18 +08:00 · 2122 次点击
    这是一个创建于 1568 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    6 条回复    2020-07-21 00:51:03 +08:00
    julyclyde
        1
    julyclyde  
       2020-07-20 11:58:14 +08:00
    mysql 有 undo log 吗?我记得只有 redo log 啊……
    iamaprin
        2
    iamaprin  
       2020-07-20 12:12:10 +08:00 via Android
    @julyclyde 有的,用于事务回滚和 MVCC
    littlewing
        3
    littlewing  
       2020-07-20 12:37:03 +08:00
    innodb_force_recovery
    jzz22
        4
    jzz22  
    OP
       2020-07-20 13:45:00 +08:00
    @littlewing 调成 5,可以正常启动,但是不知道怎么处理,drop 不了 tablespace,重新调成 0 之后又启动失败
    UnknownR
        5
    UnknownR  
       2020-07-20 16:24:14 +08:00
    握手,我是把 oracle 的 redolog 给删了。。。还好只是开发用的调试数据库,建了个新的
    littlewing
        6
    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 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   960 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:17 · PVG 05:17 · LAX 13:17 · JFK 16:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.