我最近经历过DDoS攻击。它淹没了我的服务器并使其崩溃。重启后,服务器上的每个数据库中的所有innodb表都被破坏了。
我已经重建了数据库和所有表格。我不得不重新创建innodb_table_stats,innodb_index_stats。
现在一切似乎都运行正常,网站已经启动,但我有一个持续存在的错误不断出现。一般日志正在迅速填补这些内容。
2014-07-13 15:28:37 7fd70b374700 InnoDB: Error: page 193 log sequence number 526819726
InnoDB: is in the future! Current system log sequence number 156433332.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: for more information.
我试过了Changing the Number and Size of mySQL logs。一切顺利,没有错误。但我仍然看到这些错误在新日志中出现。
我还可以尝试同步这些日志序列号吗?我对这个后端数据库工作很新。自主持人技术支持以来被迫学习很糟糕。
我目前在:CENTOS 6.5 x86_64 virtuozzo - vps- WHM 11.44.0(build 22) mySQL:5.6.17
答案 0 :(得分:1)
" page ...日志序列号"是上次修改页面的时间。标头中的LSN大于重做日志中的LSN。
最简单的解决方法是使用ALTER TABLE重建表。
ALTER TABLE mytable ENGINE InnoDB;
它将重建PRIMARY索引及其二级索引。之后,错误就会消失。
ALTER将阻止该表,因此如果它很大并且该站点正在生产中,最好的选择是使用pt-online-schema-change重建它。它会做同样的事情,但不会在短暂的时刻阻止桌面。
pt-online-schema-change --alter "ENGINE=InnoDB" D=sakila,t=actor