执行check,repair table 都无效 alter table email_status engine =myisam; #也报错了,因为模式是innodb_force_recovery =1。 ERROR 1025 (HY000): Error on rename of '...' to '....' (errno: -1) 建立一张表: create table email_status_bak #和原表结构一样,只是把INNODB改成了MYISAM。 把数据导进去 insert into email_status_bak select * from email_status; 删除掉原表: drop table email_status; 注释掉innodb_force_recovery 之后,重启。 重命名: rename table edm_email_status_bak to email_status; 最后该回存储引擎 alter table edm_email_status engine = innodb |
innodb_force_recovery影响整个InnoDB存储引擎的恢复状况。默认为0,表示当需要恢复时执行所有的 innodb_force_recovery可以设置为1-6,大的数字包含前面所有数字的影响。当设置参数值大于0后,可以对表进行select,create,drop操作,但insert,update或者delete这类操作是不允许的。 1(SRV_FORCE_IGNORE_CORRUPT):忽略检查到的corrupt页。 2(SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash。 3(SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作。 4(SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作。 5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。 6(SRV_FORCE_NO_LOG_REDO):不执行前滚的操作。 |
Powered by Discuz! X3.2
© 2001-2013 Comsenz Inc.