Mysql服务器已经消失 - 在mysqldump

时间:2017-12-11 13:21:54

标签: mysql dump

每天晚上(太平洋标准时间晚上8点)我都会对我的生产数据库(innoDB引擎)进行全局备份。

继承mysqldump命令:

mysqldump -u$MYSQLUSER -p$MYSQLPWD -h$MYSQLHOST -Q -c -C --add-drop-table --add-locks --quick --lock-tables surveys > $MYSQLBACKUPDIR/surveys.$NOW.sql;

备份大约需要45分钟,并生成一个480 MB的sql文件。 在此备份期间,我网站的某些用户可能会遇到错误(500)

这是我在apache错误日志中找到的内容:

[Sun Dec 10 20:32:58.028079 2017] [:error] [pid 10921] DBD::mysql::db commit failed: MySQL server has gone away at /var/www/---.pl line 17.\n

这是我试图解决这个问题的方法:

  • 提升mySQL配置中的值(wait_timeout,max_allowed_pa​​cket)
  • 清理我的数据库,删除了1/5的旧记录(备份文件从600MB到480)

但没有成功:(

1 个答案:

答案 0 :(得分:0)

可能是锁定表,但我可能错了。您可以使用以下代码而不是参数--lock-tables --single-transaction --lock-tables=false。这样你的转储将是一致的,但不会长时间锁定表 此外 - 如果可以,尝试使用innobackupex。但是备份和恢复单个数据库要比使用mysqldump复杂得多。这里有一些细节: https://www.percona.com/forums/questions-discussions/percona-xtrabackup/10131-backing-up-and-restoring-a-single-database