Mysqldump 在備庫進行備份時會阻塞備庫的sql_thread
情況描述:
-
讀寫分離環境,Mysql 主庫正常。
-
備庫存在大查詢持續了7個小時之久。
-
夜間10點備份啟動出現waiting for table flush 等待事件。
-
備份後面進來的會話出現積壓且前臺應用被阻塞。
處理過程:
-
收到報警後檢查主從延遲情況,show slave status\G;
有延遲。
-
select * from information_schema.processlist order by time desc; 檢查當前session 的執行情況。
看到有4個session 執行了28000s 未執行完成, 有會話處於waiting for table flush 狀態。此4個會話從堡壘機終端過來確定不是應用中的session。
-
將此4個session kill 掉, show processlist 檢視會話狀態, 恢復正常, 主從延遲追平。
故障處理過後回想什麼原因導致會話積壓,前臺應用被阻塞。
-
大查詢未結束。
-
mysqldump 在備份時會進行flush table 操作出現等待。
-
flush table 操作無法完成後面的session 被阻塞。
測試環境復現場景中發現的現象:
1. 使用mysqldump 在備庫進行備份,備份sql中不加--single-transaction 時,主庫中對錶進行update 操作從庫的sql_thread 執行緒會被mdl 鎖阻塞,出現主從延遲。
需要掌握的知識點:
mysqldump 備份的整個過程:
https://www.cnblogs.com/digdeep/p/12455757.html
MDL 鎖:
https://www.cnblogs.com/zengkefu/p/5690385.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21374452/viewspace-2853824/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用mysqldump進行mysql資料庫備份還原MySql資料庫
- mysqldump 進行資料備份MySql
- mysqldump 資料庫備份程式MySql資料庫
- mysql 備份資料庫 mysqldumpMySql資料庫
- RMAN備份到帶庫被阻塞
- mysqldump備份單庫、部分庫、全庫、及排除部分庫MySql
- BMMySQL定時備份資料庫(全庫備份)的實現meuMySql資料庫
- MySQLDump的備份方法MySql
- Mysqldump的備份流程MySql
- Mysql備份和還原資料庫-mysqldumpMySql資料庫
- mysqldump來備份MYSQL資料庫(指令碼)MySql資料庫指令碼
- 一個備份集同時恢出dataguard的主庫&備庫
- 使用mysqldump對mysql進行備份和恢復MySql
- Mysqldump備份說明及資料庫備份指令碼分享-運維筆記MySql資料庫指令碼運維筆記
- 使用MySQL Workbench進行資料庫備份MySql資料庫
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- Linux基礎命令---mysqldump資料庫備份LinuxMySql資料庫
- Backup And Recovery User's Guide-備份資料庫-RMAN備份概覽-進行壓縮備份GUIIDE資料庫
- mysqldump備份技巧分享MySql
- mysqldump 備份指令碼MySql指令碼
- mysqldump備份指令碼MySql指令碼
- 邏輯備份--mysqldumpMySql
- mysqldump備份不輸入密碼直接備份MySql密碼
- mysqldump備份時加single-transaction會不會加鎖MySql
- mysqldump備份時使用single-transaction會不會加鎖???MySql
- mysqldump全量備份+mysqlbinlog二進位制日誌增量備份MySql
- 使用OSB進行ORACLE rac資料庫的備份Oracle資料庫
- 使用 xtrabackup 進行MySQL資料庫物理備份MySql資料庫
- 【mysqldump】mysqldump及備份恢復示例MySql
- RMAN備份之備份多個備份集到帶庫(三)
- RMAN備份之備份多個備份集到帶庫(二)
- RMAN備份之備份多個備份集到帶庫(一)
- 簡單的mysqldump備份(windows)MySqlWindows
- RMAN備份恢復——備份到帶庫的效能
- Oracle資料庫的備份方法-冷備份(轉)Oracle資料庫
- windows mysqldump備份指令碼WindowsMySql指令碼
- mysqldump備份原理解析MySql
- mysql 邏輯備份 (mysqldump)MySql