故障案例:定時備份可能引起的問題,故障案例備份
情境1:db記憶體1.5G,業務很少,平時qps不到10,每天淩晨5點到9點記憶體使用量飆升到100%,記憶體100%時qps有個激增到20,cpu使用率也有激增
解決方案
1 查看緩衝池大小是900M
mysql> show variables like '%innodb_buffer_pool_size%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| innodb_buffer_pool_size | 943718400 |
+-------------------------+-----------+
1 row in set (0.00 sec)
2 查看緩衝池使用率 show engine innodb status,查看還剩41226*16/1024=644M
Buffer pool size 57599
Free buffers 41226
Database pages 16326
Old database pages 6040
Modified db pages 13
3 因為周期性的原因,查看當時的定時備份時間,發現開始時間正好是晚上5點,確認是db備份引起的
backup_count: 7
backup_begintime: 5
backup_duration: 24
manual_backup_count: 3
4 因為mysqldump前會有一個flush tables with read lock的操作來記錄下目前狀態show master status,如果當前有查詢,這個操作會等待所有當前查詢完成後才執行。記憶體較少,建議客戶升級記憶體,最佳化慢查詢。
情境2:主庫在每天淩晨3點,串連數突然從600激增到1200以上,並堆積許多慢查詢,持續幾個小時,其他監控參數都比較正常
解決方案
1 查看到當時的慢查詢均是些簡單SQL,SQL語句本身不存在問題
2 查看到主庫備份時間為淩晨3點,確定是定時備份引起的
3 因為正好存在從庫,後續將定時備份移到從庫解決,mysqldump --dump-slave=2
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。