MySQL备份之mysqlpump工具备份故障一则案例分享
2016-03-23 15:51
841 查看
昨日,在使用mysqlpump备份数据库时发现,mysqlpump一启动就会卡起。
尝试了几次还是这样,查看数据库err日志并没有什么异常,除了下面的:
Aborted connection 24 to db: 'unconnected' user: 'root' host: 'localhost' (Got an error reading communication packets)
Aborted connection 26 to db: 'unconnected' user: 'root' host: 'localhost' (Got an error reading communication packets)
Aborted connection 29 to db: 'unconnected' user: 'root' host: 'localhost' (Got an error reading communication packets)
Aborted connection 23 to db: 'unconnected' user: 'root' host: 'localhost' (Got an error writing communication packets)
Aborted connection 31 to db: 'unconnected' user: 'root' host: 'localhost' (Got an error reading communication packets)
但是跟踪观察err日志发现,这种日志并不是mysqlpump连接时打印的,而是我手工ctrl + c时打印的。
意思就是正常的。
而且我换做mysqldump工具时,现象还是一致的。
那么因为mysqlpump会卡起呢?
尝试让mysqlpump继续保持卡起状态,跟踪查看数据库的show processlist结果发现,mysqlpump所连接的服务线程,正在执行SHOW TABLE STATUS FROM `cms`;
并且持续保持这个动作很久。根据经验,执行SHOW TABLE STATUS FROM `cms`;时很快就会返回呀,为什么mysqlpump备份时执行这么久呢?
既然在刷tables信息时等待,那么肯定是某些tables的表结构信息有问题,或者frm文件有损坏。
回想一下发现,原来有几个表的存储引擎是federated,并且我的库无法连接到federated表的remote端。
所以导致mysqlpump在SHOW TABLE STATUS FROM `cms`;时持续等待,应该是在等待超时。
后面我让mysqlpump一直等待,果然过了一会儿mysqlpump就自觉地打印的几个表的remote端无法连接的日志。
所以,生产上使用federated存储引擎时一定要控制好,以免造成不必要的麻烦。
强烈建议生产表全部使用InnoDB存储引擎。*^_^*
尝试了几次还是这样,查看数据库err日志并没有什么异常,除了下面的:
Aborted connection 24 to db: 'unconnected' user: 'root' host: 'localhost' (Got an error reading communication packets)
Aborted connection 26 to db: 'unconnected' user: 'root' host: 'localhost' (Got an error reading communication packets)
Aborted connection 29 to db: 'unconnected' user: 'root' host: 'localhost' (Got an error reading communication packets)
Aborted connection 23 to db: 'unconnected' user: 'root' host: 'localhost' (Got an error writing communication packets)
Aborted connection 31 to db: 'unconnected' user: 'root' host: 'localhost' (Got an error reading communication packets)
但是跟踪观察err日志发现,这种日志并不是mysqlpump连接时打印的,而是我手工ctrl + c时打印的。
意思就是正常的。
而且我换做mysqldump工具时,现象还是一致的。
那么因为mysqlpump会卡起呢?
尝试让mysqlpump继续保持卡起状态,跟踪查看数据库的show processlist结果发现,mysqlpump所连接的服务线程,正在执行SHOW TABLE STATUS FROM `cms`;
并且持续保持这个动作很久。根据经验,执行SHOW TABLE STATUS FROM `cms`;时很快就会返回呀,为什么mysqlpump备份时执行这么久呢?
既然在刷tables信息时等待,那么肯定是某些tables的表结构信息有问题,或者frm文件有损坏。
回想一下发现,原来有几个表的存储引擎是federated,并且我的库无法连接到federated表的remote端。
所以导致mysqlpump在SHOW TABLE STATUS FROM `cms`;时持续等待,应该是在等待超时。
后面我让mysqlpump一直等待,果然过了一会儿mysqlpump就自觉地打印的几个表的remote端无法连接的日志。
所以,生产上使用federated存储引擎时一定要控制好,以免造成不必要的麻烦。
强烈建议生产表全部使用InnoDB存储引擎。*^_^*
相关文章推荐
- 访问Nginx发生SSL connection error的一种情况
- Php Installing An Expansion
- 星外虚拟主机访问被控出现Unspecified error解决方法
- IIS 错误 Server Application Error 详细解决方法
- On Error Resume Next 语句
- 经典配置 Vlan篇
- IIS运行错误 Server Application Error 错误代码 Error: 8004的解决方法
- Lua编程示例(一):select、debug、可变参数、table操作、error
- 收集整理的http/1.1 500 server error错误的解决方法
- SQL 2005 ERROR:3145 解决办法(备份集中的数据库备份与现有的数据库不同)
- VBScript中On Error语句用法小结
- 解决VC++编译报错error C2248的方案
- PHP has encountered an Access Violation
- Lost connection to MySQL server at 'reading authorization packet', system error: 0
- jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
- JQuery ajax中error返回错误及一直返回error的解答
- PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
- node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
- Select data from an Excel sheet in MSSQL
- PHP 5.3和PHP 5.4出现FastCGI Error解决方法