執行個體出現too many connections
gdb修改max_connections後檢視processlist, 有waiting for backup lock,sql線程被阻塞,同時大量show slave status連接配接
檢視存在備份程序
pt-pmt 分析線程堆棧資訊,
show slave status等待lock_msr_map
stop slave持有lock_msr_map等待stop_cond io和sql退出
sql線程等待 worker線程執行完事務( slave_worker_hash_cond)
worker等待backup_tables_lock 鎖
而我們備份又持有backup_tables_lock鎖
以鎖等待依賴順序導緻大量的show slave status被阻塞,進而占滿root連接配接
可以通過kill備份的方式修複
1 盡量不要使用myisam,減少備份持有lock tables for backup的時間。本例中myisam有200多個
2 備份期間盡量不要執行stop slave操作。