【发布时间】:2018-05-25 00:49:45
【问题描述】:
每天晚上(太平洋标准时间晚上 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_packet)
- 清理我的数据库,删除了 1/5 的旧记录(备份文件从 600MB 到 480)
但是没有成功:(
【问题讨论】:
-
一般情况下,当我收到
MySQL server has gone away错误时,是在某个时间段内没有任何活动的数据库打开连接。您的备份是否有可能在某个时候被阻塞(停止并等待另一个进程)?