最近在我們線上庫物理備份的時候出現(xiàn)一個奇怪的現(xiàn)象:
我們備份都在從庫上備份的,在業(yè)務(wù)低一般是在晚上2點鐘開始備份.有天發(fā)現(xiàn)從庫的延遲一直在增加,登錄上實例,通過show processlist 發(fā)現(xiàn),sql 線程在等待 binlog lock。同時看到我們從2點鐘開始的壓縮遠程備份并沒有完成,備份日志還在掃面ibd文件。
那么這個binlog lock 是誰持有的呢?仔細想想我們的業(yè)務(wù)場景,這是一個只讀從庫,且?guī)焐媳銢]有提供任何讀的服務(wù),唯一的一個疑點就是我們的備份導(dǎo)致的,通過show processlist 可以看到,Time列的數(shù)值 均是18510,兩個時間上邊吻合,那么問題可以初步確認是由于備份引起的。
mysql> show processlist;
+---------+-------------+-----------+------------+---------+-------+-----------------+
| Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined |
+---------+-------------+-----------+------------+---------+-------+-----------------+
| 4613465 | system user | | NULL | Connect | 65348 | Waiting for master to send event | NULL | 0 | 0 |
| 4613466 | system user | | NULL | Connect | 18510 | Waiting for binlog lock | NULL | 0 | 0 |
| 4631056 | dbbackup | localhost | NULL | Sleep | 18510 | | NULL | 0 | 0 |
進一步的,我們?nèi)フ艺夜傥?,看看什么時候xt