mysqldump备份大数据出错
来源: 阅读:1217 次 日期:2015-04-29 13:56:46
温馨提示: 小编为您整理了“mysqldump备份大数据出错”,方便广大网友查阅!

网 站的数据会定期备份,现在数据大了,mysqldump 方法估计是不行了,并且失败了以后并不能接着上次的位置开始备份。报错内容:mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `table name` at row: 23699。

Lost connection to MySQL server,在使用 mysqldump 的时候(尤其是向 NFS 上备份的时候),很多人都被“mysqldump:Got error:2013: Lost connection to MySQL server during query when dumping table”的问题困扰,在Manual中对这个问题有一些简单的说明。

在向NFS上备份的时候,数据的流向是这样的:MySQL Server 端从数据文件中检索出数据,然后分批将数据返回给mysqldump 客户端,然后 mysqldump 将数据写入到NFS上。一般地,向 NFS 上写入数据的速度较之Server端检索发送数据的速度要慢得多,这就会导致 mysqldump 无法及时的接受 Server 端发送过来的数据,Server 端的数据就会积压在内存中等待发送,这个等待不是无限期的,当 Server 的等待时间超过 net_write_timeout(默认是60秒)时它就失去了耐心,mysqldump 的连接会被断开,同时抛出错误 Got error: 2013: Lost connection。

增加 net_write_timeout 可以解决上述的问题的。在实践中发现,在增大 net_write_timeout 后,Server 端会消耗更多的内存,有时甚至会导致 swap 的使用(并不确定是不是修改 net_write_timeout 所至)。建议在mysqldump 之前修改 net_write_timeout 为一个较大的值(如1800),在 mysqldump 结束后,在将这个值修改到默认的60。

Lost connection to MySQL server during query 错误

造成这样的错误原因很多

个人经验认为先试一试这两个参数,大部分都是这个原因引起的:

bind-address = 127.0.0.1

skip-name-resolve

这两个参数任意一个就行。

也就是说遇到2006,2013错误就重新连接一下MySQL。

MySQL层面,需要配置一些参数 my.cnf

wait_timeout = x 超时时间

max_allowed_packet = y 最大允许数据量

一般出现这种情况不是所有例句而是单个表,请你先修复表一般都能解决这类问题

备份不要在数据库压力较大的时候进行,每天凌晨备份是比较合适的

如果是事务型引擎(InnoDB),建议使用 --single-transaction 参数,这样可以让锁表时间变得很短。

上 面是做法估计是行不通了,网站在虚拟主机上,修改 MySQL 配置是不太可能的。MySQL 官网也有类似的报告 。暂时只能使用 --ignore-table=<database>.<table> 选项忽略比较大的表暂时不备份吧。

更多信息请查看IT技术专栏

更多信息请查看数据库
手机网站地址:mysqldump备份大数据出错
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map