我使用MySql作为开发数据库以及托管我网站的服务器。现在我每天都会将新数据打入数据库并使用SQLyog将其保存为SQL转储。但是当在服务器Mysql数据库上更新那天的数据时,我必须截断表格,然后插入新数据。这导致了以下问题:
每个表中的数据为5000多行,插入查询无法执行。所以我必须分批插入2000行数据。
当我截断特定表并且尚未插入新数据时,网站上的任何请求都将导致根本没有数据。这是5到7分钟。
每天只有大约300行添加到每个表中,但我必须插入表格的完整数据。
请提示如何对本地MySql数据库进行增量备份,以便我可以在服务器上更新相同内容,而不是直到那天更新完整数据。
答案 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秒。