文档章节

mysqldump备份大数据出错

hosser
 hosser
发布于 2015/04/27 23:15
字数 726
阅读 942
收藏 12

mysqldump备份大数据出错技术

maybe yes 发表于2015-01-26 22:58

原文链接 : http://blog.lmlphp.com/archives/72  来自 : LMLPHP后院

网 站的数据会定期备份,现在数据大了,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 官网也有类似的报告 http://bugs.mysql.com/bug.php?id=47702 。暂时只能使用 --ignore-table=<database>.<table> 选项忽略比较大的表暂时不备份吧。

阅(69)评(0)查看评论


本文转载自:http://blog.lmlphp.com/archives/72

共有 人打赏支持
hosser
粉丝 194
博文 78
码字总数 4614
作品 3
徐汇
MYSQL5.6 mysqldump备份与恢复

MYSQL5.6学习——mysqldump备份与恢复 MYSQL备份 冷备份:停止服务进行备份,即停止数据库的写入 热备份:不停止服务进行备份(在线) l mysql的MyIsam引擎只支持冷备份,InnoDB支持热备份,...

xiaocao13140
05/29
0
0
linux上mysql库的迁移

两种办法 第一种: 首先将/var/lib/mysql这个目录备份起来, 在恢复的时候直接将mysql目录下的数据库拷贝到另外一个系统的数据库中即可,另外还需拷贝/mysql/下的ibdata1这个文件到另外一个系...

zmf
2014/10/23
0
0
十三、MySQL数据备份与恢复

13.1、数据备份 数据备份:目的用于恢复;必须对备份数据做恢复测试。 备份类型: 物理备份和逻辑备份: 完全备份、增量备份和差异备份; 备份策略:选择备份方式;选择备份时间;考虑到恢复...

梦想成大牛
06/28
0
0
Mysql数据库备份和还原常用的命令

备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename backupfile.sql 备份MySQL数据库为带删除表的格式 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有...

wilelm
2013/05/30
0
0
使用mysql恢复数据时视图变成表

问题是这样的,使用mysqldump备份线上数据库之后,然后通过mysql 命令行恢复到线下数据库,发现视图都成了表。 为什么会这样呢?这就得聊聊mysql备份恢复的机制了 其实查看mysqldump备份产生...

feng110498
01/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

DES/3DES(TripleDES)加密、解密测试数据

以下结果经 PHP+openssl及VB.NET验证,ECB模式。 PHP 7.0.10 (cli) (built: Aug 18 2016 09:48:53) ( ZTS ) OpenSSL Library Version: OpenSSL 1.0.1t 3 May 2016 VB.net 2003 ****** DES(S......

SamXIAO
35分钟前
1
2
Java11的新特性

Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的新特性 Java10的新特性 Java11的新特性 Java12的新特性 序 本文主要讲述一下Java11的新特性 版本号 java...

go4it
35分钟前
3
0
Maven常用命令及相关笔记

Maven常用命令 dos指令 4. 编译源代码: mvn compile 6. 运行测试: mvn test 8. 打包: mvn package 9. 在本地Repository中安装jar: mvn install 10. 清除产生的项目: mvn clean 4. 运行项...

颖伙虫
42分钟前
1
0
swagger2.2.2 与 spring cloud feign冲突 导致服务请求报空

swagger2.2.2 与 spring cloud feign冲突 Java代码 Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.choosefine.web.console.ar......

泉天下
45分钟前
1
0
设计模式之 明确责任 观察者模式 状态模式 责任链模式

观察者模式是任务分发的一种模式。 如果认为我们设计的系统的各个模块(或子系统)的最终目的是完成共同任务,那么这个任务如何分配到多个模块的就是我们遇到的第一个问题。简单设计场合我们...

backbye
50分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部