每天晚上(晚上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为了解决这个问题,我尝试过这样做:
但没有成功:
发布于 2017-12-11 13:46:35
可能是锁桌子,但我可能错了。与参数--lock-tables不同,您可以使用:
--single-transaction --lock-tables=false。这样,您的转储将是一致的,但不会锁定表这么长时间。
如果你能的话,试着用无害的。但是备份和恢复单个数据库要比使用mysqldump复杂得多。以下是一些详细信息:https://www.percona.com/forums/questions-discussions/percona-xtrabackup/10131-backing-up-and-restoring-a-single-database
https://stackoverflow.com/questions/47753917
复制相似问题