现象
1、从mysqlbackup 的日志上来看是它一直处于state: Waiting for locks;
2、从mysql 层面show processlist 上看它的处于waiting for gloabl read lock

show processlist;
+-----+-------------+---------------------+------+---------+--------+----------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+-------------+---------------------+------+---------+--------+----------------------------------+------------------+
| 331 | system user | | NULL | Connect | 215831 | Waiting for master to send event | NULL |
| 332 | system user | | NULL | Connect | 252054 | Reading event from the relay log | NULL |
| 336 | ha_op | 127.0.0.1:36246 | NULL | Sleep | 1 | | NULL |
| 337 | ha_op | 127.0.0.1:36247 | NULL | Sleep | 1 | | NULL |
| 339 | ha_op | 192.168.56.39:44672 | NULL | Sleep | 8816 | | NULL |
| 340 | backup | 127.0.0.1:36267 | NULL | Sleep | 3954 | | NULL |
| 344 | root | 127.0.0.1:36310 | NULL | Query | 0 | init | show processlist |
| 345 | backup | 127.0.0.1:36337 | NULL | Sleep | 1134 | | NULL |
+-----+-------------+---------------------+------+---------+--------+----------------------------------+------------------+

分析
  1、是不是有别的事务持有了X锁,使得备份用户的flush tables with read lock 一直等待

        select * from information_schema.innodb_trx \G
*************************** 1. row ***************************
trx_id: 82557697
trx_state: RUNNING
trx_started: 2016-08-28 13:53:11
trx_requested_lock_id: NULL
trx_wait_started: NULL
trx_weight: 153349
trx_mysql_thread_id: 332
trx_query: NULL
trx_operation_state: starting index read
trx_tables_in_use: 296
trx_tables_locked: 296
trx_lock_structs: 5759
trx_lock_memory_bytes: 538152
trx_rows_locked: 295679
trx_rows_modified: 147590
trx_concurrency_tickets: 0
trx_isolation_level: REPEATABLE READ
trx_unique_checks: 1
trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
trx_adaptive_hash_latched: 0
trx_adaptive_hash_timeout: 10000
trx_is_read_only: 0
trx_autocommit_non_locking: 0
1 row in set (0.01 sec)

  2、由(分析.1)可以看出是有一事务阻塞了备份用户下发的flush tables with read lock命令、 而且可以知道这个事务是332这个session发起的;
     再结合(现象.2)可以知道332 是SQL进程

  3、由(分析.2)已经知道是复制阻塞了备份,所以接下来是要去解析当前正slave 正在应用的binlog 用于更进一步的确定问题原因
          show slave status 看到Relay_Master_Log_File: mysql-bin.000314、Exec_Master_Log_Pos: 216304949

  4、解析binlog 后发现slave 在执行delete 操作

        # at 216304997
#160826 14:49:02 server id 192694598 end_log_pos 216305071 CRC32 0x416f0b3c Query thread_id=16381 exec_time=0 error_code=0
SET TIMESTAMP=1472194142/*!*/;
BEGIN
/*!*/;
# at 216305071
#160826 14:49:02 server id 192694598 end_log_pos 216305306 CRC32 0x19b5309b Table_map: `dcsdba`.`pre_merge_cdr_gsm` mapped to number 147
# at 216305306
#160826 14:49:02 server id 192694598 end_log_pos 216313252 CRC32 0xd8102d41 Delete_rows: table id 147
# at 216313252
#160826 14:49:02 server id 192694598 end_log_pos 216321207 CRC32 0xd73f1e3f Delete_rows: table id 147
# at 216321207
#160826 14:49:02 server id 192694598 end_log_pos 216329247 CRC32 0x6331d53b Delete_rows: table id 147
# at 216329247
#160826 14:49:02 server id 192694598 end_log_pos 216337393 CRC32 0xecd5041e Delete_rows: table id 147
# at 216337393
#160826 14:49:02 server id 192694598 end_log_pos 216345555 CRC32 0x6284a900 Delete_rows: table id 147

  5、进一步确认问题原因是因为pre_merge_cdr_gsm表没有主键,在这种情况下slave 每删除一行都会对应一次全表扫描。

建议
1、给pre_merge_cdr_gsm表加上一个合适的主键

mysqlbackup 备份失败的分析的更多相关文章

  1. MySQL-记一次备份失败的排查过程

                山竹来临,窝在家里整理个人文档.        本篇文章主要讲解排查问题的思路,涉及linux 删除文件的原理.实例误删数据恢复.MySQL实例初始化参数优先级别等,虽然涉及知 ...

  2. 当spring 对象@Autowired 注入失败或者创建对象Bean失败、No qualifying bean/Error creating bean 的失败情形分析和解决方案

    错误信息 今天开发的过程中突然出现如下错误: Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: N ...

  3. 【Azure 应用服务】备份网站时由于文件太大了,导致应用服务备份失败。如何解决?

    问题描述 备份网站时由于文件太大了,导致应用服务备份失败.如何解决呢? 问题分析 App Service (应用服务)的备份功能有10GB大小的限制,超过了是无法备份成功的并且该限制是无法扩大的.查看 ...

  4. 杀毒软件导致YourSQLDba备份失败

    有一朋友咨询我,他配置的YourSQLDba 备份作业经常出现备份失败的情况,我帮忙查看了一下,首先从告警邮件中查看出错的具体信息,执行了下面SQL语句(来自于告警邮件) Exec YourSQLDb ...

  5. YourSQLDba备份失败案例锦集

    使用YourSQLDba做备份.维护.管理时,偶尔会收到一些备份失败的邮件.导致YourSQLDba备份失败的情况比价多,打算在此篇中对YourSQLDba备份失败的案例做一些总结.整理. 1:You ...

  6. RMAN备份失败之:mount: block device /dev/emcpowerc1 is write-protected, mounting read-only

    今天再做巡检的时候发现有一台服务器的RMAN备份不正常,有一段时间没能正常备份了.检查了一下脚本,正常,定时任务列表也正常,再检查一下/var/log/cron的内容,也没有问题.尝试在该挂载点上创建 ...

  7. Android开发遇到短信备份失败

    今天做了一个有关ContentProvider的短信备份的小案例,遇到短信备份失败,费了一番周折后终于找到了问题所在 该案例是将短信写到一个xml文件然后保存在手机存储中实现短信的备份功能,关键实现代 ...

  8. 执行查询“BACKUP LOG [XXX] TO DISK = N'F:\\BackData\\事务日至备份\\...”失败,错误如下:“无法执行 BACKUP LOG,因为当前没有数据库备份。 BACKUP LOG 正在异常终止。

    执行查询"BACKUP LOG [XXX] TO  DISK = N'F:\\BackData\\事务日至备份\\..."失败,错误如下:"无法执行 BACKUP LOG ...

  9. Mssql备份失败

    Mssql备份失败出现如下提示 备份时先删除默认的备份设备,自己选择路径

随机推荐

  1. soapUI参数中文乱码问题解决方法 (groovy脚本中文乱码)

    soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...

  2. SpringMVC整合极光推送报错ClassNotFound

    问题: 今天在做后台和极光整合的过程中,将极光部分代码整合到Dao层,在启动项目的过程中总是报错,classNotFund cn/jpush/api/push/xxxx 极光官方文档: http:// ...

  3. ACM训练计划step 2 [非原创]

    (Step2-500题)POJ训练计划+SGU 经过Step1-500题训练,接下来可以开始Step2-500题,包括POJ训练计划的298题和SGU前两章200题.需要1-1年半时间继续提高解决问题 ...

  4. VLSI和ASIC的区别(转)

    VLSI和ASIC是不同的两个概念 VLSI(Very Large Scale Integrate circuit)是指集成电路的规模,有时也指制造集成电路所使用的工艺,VLSI工艺一般都在1um以下 ...

  5. ET 与RETI 基于51单片机中断跳出指令“RETI”浅议

    最近在基于51单片机编程的过程中出现了个很奇怪的问题“程序执行中在寄存器EA=1,ET0=1,TR0=1条件下,单TF0=1时并没有执行中断”.在有过单片机中断编程经历者都知道当EA=1,ET0=1的 ...

  6. shell下有操作json对象的库

    http://kernelpanic.im/blog/2012/03/08/shell-manipulate-json/ Json.org推荐了两个:Jshon和JSON.sh 其中JSON.sh是完 ...

  7. 通过java类文件识别JDK编译版本

    类文件中第5,6,7,8四个字节是jDK版本号信息,其中5,6为小版本号:7,8为大版本号. 大版本号对应JDK版本如下: JDK版本号 7,8字节 JDK8 52(0x34) JDK7 51(0x3 ...

  8. MapReduce源代码浅析

    Thanks @读程序的手艺人 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVvemhhbmZlbmc=/font/5a6L5L2T/fontsize ...

  9. ORACLE 视图的 with check option

    ORACLE 视图的 with check option 我们来看下面的例子: create or replace view testview as select empno,ename from e ...

  10. 虚拟化之docker安装篇

    1,docker pull centos     下载centos镜像 docker search centos  搜索镜像 2,docker images           查看本地镜像 3,do ...