最近在我們線上庫(kù)物理備份的時(shí)候出現(xiàn)一個(gè)奇怪的現(xiàn)象:
   我們備份都在從庫(kù)上備份的,在業(yè)務(wù)低一般是在晚上2點(diǎn)鐘開(kāi)始備份.有天發(fā)現(xiàn)從庫(kù)的延遲一直在增加,登錄上實(shí)例,通過(guò)show processlist 發(fā)現(xiàn),sql 線程在等待 binlog lock。同時(shí)看到我們從2點(diǎn)鐘開(kāi)始的壓縮遠(yuǎn)程備份并沒(méi)有完成,備份日志還在掃面ibd文件。
   那么這個(gè)binlog lock 是誰(shuí)持有的呢?仔細(xì)想想我們的業(yè)務(wù)場(chǎng)景,這是一個(gè)只讀從庫(kù),且?guī)焐媳銢](méi)有提供任何讀的服務(wù),唯一的一個(gè)疑點(diǎn)就是我們的備份導(dǎo)致的,通過(guò)show processlist 可以看到,Time列的數(shù)值 均是18510,兩個(gè)時(shí)間上邊吻合,那么問(wèn)題可以初步確認(rèn)是由于備份引起的。
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 |
 
   進(jìn)一步的,我們?nèi)フ艺夜傥?,看看什么時(shí)候xt