Error number: 3983; Symbol: ER_INNODB_REDO_DISABLED; SQLSTATE: HY000
Message: Cannot perform operation as InnoDB redo logging is disabled. Please retry after enabling redo log with ALTER INSTANCE
错误说明
ER_INNODB_REDO_DISABLED错误的字面意思是Redo日志被禁用,指的是意外关闭了InnoDB引擎的redo log缓冲区,使得重置日志无效,表或表上的更改未持久化,在发生服务器重启的情况下数据可能丢失。该错误也暗示服务器没有正确识别redo日志缓冲区,这通常是由于在当前数据库文件目录不正确地配置全局变量innodb_log_group_home_dir和innodb_log_file_size造成的。
常见案例
1.当你在MySQL 5.6.7中创建新表时,它可能会突然崩溃,并在运行以下查询时返回此错误消息:Error number: 3983; Symbol: ER_INNODB_REDO_DISABLED; SQLSTATE: HY000;
2.当您尝试更新MySQL 5.6.7表时,它可能崩溃,并在运行以下查询时返回此错误消息:Error number: 3983; Symbol: ER_INNODB_REDO_DISABLED; SQLSTATE: HY000;
3.当你在MySQL 5.6.7中插入新行时,它可能崩溃,并在运行以下查询时返回此错误消息:Error number: 3983; Symbol: ER_INNODB_REDO_DISABLED; SQLSTATE: HY000;
4.当您在MSSQL中尝试删除表行时,可能会收到 2009,并在运行以下查询时返回此错误消息:Error number: 3983; Symbol: ER_INNODB_REDO_DISABLED; SQLSTATE: HY000;
解决方法
1.最简单的解决方法是停止MySQL服务,然后手动设置所需的innodb_log_file_size全局变量,重新启动MySQL服务,然后再尝试启动MySQL的redo log缓冲区;
2.对于上面的案例中,可以检查MySQL的innodb_log_file_size全局变量是否设置正确,如果不正确,可以尝试使用SET GLOBAL innodb_log_file_size(value)命令修改该变量;
3.可以尝试恢复redologs,这需要先停止MySQL服务,然后重新启动它,这将重新创建redo日志文件并将redo log缓冲区重置为原始状态;
4.可以通过更改my.ini中的innodb_log_file_size变量,然后重新启动MySQL,以重新开启redo log缓冲区;
5.如果重新创建日志文件失败,可以尝试用新的innodb_log_file_size变量重新创建日志;
6.尝试使用“恢复器”或“myisamchk”修复表上的损坏,以保留其内容。