mysql的增量SQL转储

时间:2010-08-18 02:24:28

标签: mysql sql dump

我使用MySql作为开发数据库以及托管我网站的服务器。现在我每天都会将新数据打入数据库并使用SQLyog将其保存为SQL转储。但是当在服务器Mysql数据库上更新那天的数据时,我必须截断表格,然后插入新数据。这导致了以下问题:

  1. 每个表中的数据为5000多行,插入查询无法执行。所以我必须分批插入2000行数据。

  2. 当我截断特定表并且尚未插入新数据时,网站上的任何请求都将导致根本没有数据。这是5到7分钟。

  3. 每天只有大约300行添加到每个表中,但我必须插入表格的完整数据。

  4. 请提示如何对本地MySql数据库进行增量备份,以便我可以在服务器上更新相同内容,而不是直到那天更新完整数据。

2 个答案:

答案 0 :(得分:1)

如果它是一个简单的开发环境,我实际上不建议使用增量转储路由。 AFAIK,mysql没有提供内置的方法来做到这一点。如果确实想要这样做,您可以使用二进制日志。使用binary log重播第二天的语句。在内部,MySQL使用二进制日志进行复制。 (免责声明,我以前从未这样做过,如果您已从开发副本中插入或删除,我很确定您会遇到问题。)

或者,您可以只创建另一个数据库,将转储导入其中,然后重新配置您的应用程序以使用新数据库。一旦你重新配置,放弃昨天的数据库,你很好。没有停机时间......

答案 1 :(得分:0)

为什么不直接使用命令行转储和恢复 -

创建转储 -

  

mysql -u root -h localhost -p db_name> db_name_dump_version.sql

这会将DB转储到文件db_name_dump_version.sql

然后从中恢复 -

  

mysql -u root -h localhost -p db_name< db_name_dump_version.sql

命令行mysql速度非常快,所以即使是一百万行数据库也不必等待超过10秒。