如何同步mySQL日志

时间:2014-07-13 20:22:44

标签: mysql logging innodb

我最近经历过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

1 个答案:

答案 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