The InnoDB tablespace is corrupted and you start the server with option --innodb_force_recover=4 Which backup method would you use to reload the corrupted InnoDB tables?
A、A text backup. InnoDB does not allow you to make binary backups while the server is running.
B、a binary backup taken with MySQL Enterprise Backup that backup up even corrupted tables
C、a binary backup that uses transportable tablespaces and allows you to reload a corrupted table
D、A text backup. A binary backup will still contain the corrupted segments.
InnoDB表空间已损坏,您使用选项–InnoDB_force_recover=4启动服务器,您会使用哪种备份方法来重新加载损坏的InnoDB表?
A、 文本备份。InnoDB不允许您在服务器运行时进行二进制备份。
B、 使用MySQL Enterprise backup进行的二进制备份,甚至可以备份损坏的表
C、 二进制备份,使用可传输的表空间,并允许您重新加载损坏的表
D、 文本备份。二进制备份仍将包含损坏的段。
D
本题考察InnoDB强制启动(forcing-innodb-recovery)相关的知识。
[mysqld]
innodb_force_recovery = 1
innodb_force_recovery默认为0(正常启动,没有强制恢复),允许的非零值是1到6。一个较大的值包括较小值的功能。例如,一个3的值包括1和2的所有功能。只有在紧急情况下才将innodb_force_recovery设置为大于0的值。4或更大的值会永久地损坏数据文件。当强制InnoDB恢复时,你应该总是从innodb_force_recovery=1开始尝试,并且只在必要时逐步增加该值。如果你能够在innodb_force_recovery的值为3或更小的情况下转储你的表,那么你就相对安全了,只有个别页面上损坏的一些数据会丢失。4或更大的值被认为是危险的,因为数据文件可能被永久地损坏。6的值被认为是剧烈的,因为数据库页被留在一个过时的状态,这反过来可能会给B-树和其他数据库结构带来更多的损坏。
在使用innodb_force_recovery选项启动数据库之前,确保你有一个数据库的备份,以备在数据库损坏的情况下可以恢复。
当innodb_force_recovery大于0时,InnoDB会阻止INSERT、UPDATE或DELETE操作。innodb_force_recovery设置为4或更大时,InnoDB会进入只读模式。选项的具体含义如下所示:
官方参考文档