小编Ale*_*vic的帖子

mysqldump --single-transaction,但更新查询正在等待备份

如果我使用 mysqldump --single-transaction,根据文档,它应该使用读锁刷新表以获得一致的状态,然后启动事务,并且不应该等待写入者。

但是,我昨晚发现了以下情况:

摘自显示完整的进程列表:

数百个……

   Command: Query
   Time: 291
   State: Waiting for table flush
   Info: insert into db_external_notification.....
Run Code Online (Sandbox Code Playgroud)

那么这个:

Command: Query
Time: 1204
State: Sending data
Info: SELECT /*!40001 SQL_NO_CACHE */ * FROM `db_external_notification`
Run Code Online (Sandbox Code Playgroud)

其余线程处于睡眠状态

有谁知道这些插入物在等什么?我没有看到任何 FLUSH 表或 DDL 或手册中提到的任何可能导致查询等待的内容。

完整的 mysqldump 命令

mysqldump --quick --add-drop-table --single-transaction --master-data=2 -uxx -pxx dbname
Run Code Online (Sandbox Code Playgroud)

我猜 --quick 在这里是多余的,可能是早期的遗留物,这个脚本很旧,但不应该伤害任何东西

mysql innodb mysqldump backup mysql-5.6

11
推荐指数
2
解决办法
5万
查看次数

标签 统计

backup ×1

innodb ×1

mysql ×1

mysql-5.6 ×1

mysqldump ×1