[MySQLFAQ]系列–資料不算大,備份卻非常慢
環境
硬體:DELL 1950, 146G SAS 15K RPMS * 2, 8G Ram
軟體:2.6.9-55.ELsmp x86_64, mysql 5.1.x
硬體:DELL 1950, 146G SAS 15K RPMS * 2, 8G Ram
軟體:2.6.9-55.ELsmp x86_64, mysql 5.1.x
現象
2個庫,其中1個業務庫下有20多個表,表檔案大小總量不到2G。
另一個為日誌庫,下400多個表,大致是每天會產生5個表,其中有一個表較大,約400MB,總量約40多GB。
每次備份耗時較長,最嚴重的一次花了5個多小時才完成。
業務庫為當前活動庫,日誌庫則主要用作備份,每天日誌歸檔,過期資料表很少有讀寫請求。
InnoDB Buffer Pool總共分配了2G,從系統命令 top 結果來看,mysqld 只分配了 1.7G 記憶體,buffer pool 並沒有全部耗盡。
SHOW ENGINE INNODB STATUS 結果中也看到了,buffer pool 確實沒用完,還有不少空閒的。
備份時,觀察 vmstat 結果,發現 bi 和 bo 的量較大,而且兩個的值基本相當,備份其中一個表約 500MB,耗時 46 秒。
按照這個耗時計算,全部備份出來也不需要5個多小時,這是為什麼呢?
2個庫,其中1個業務庫下有20多個表,表檔案大小總量不到2G。
另一個為日誌庫,下400多個表,大致是每天會產生5個表,其中有一個表較大,約400MB,總量約40多GB。
每次備份耗時較長,最嚴重的一次花了5個多小時才完成。
業務庫為當前活動庫,日誌庫則主要用作備份,每天日誌歸檔,過期資料表很少有讀寫請求。
InnoDB Buffer Pool總共分配了2G,從系統命令 top 結果來看,mysqld 只分配了 1.7G 記憶體,buffer pool 並沒有全部耗盡。
SHOW ENGINE INNODB STATUS 結果中也看到了,buffer pool 確實沒用完,還有不少空閒的。
備份時,觀察 vmstat 結果,發現 bi 和 bo 的量較大,而且兩個的值基本相當,備份其中一個表約 500MB,耗時 46 秒。
按照這個耗時計算,全部備份出來也不需要5個多小時,這是為什麼呢?
分析
大家先分析下,看是什麼原因,稍後給出答案 ?
大家先分析下,看是什麼原因,稍後給出答案 ?
原因 其實問題原因很簡單,但一般人不容易想到。那就是,那些歷史的日誌表,由於長時間不讀取,大部分資料沒有在innodb buffer中。所以,每次備份時,大部分資料都要產生大量的物理讀,然後再產生物理寫,然而該伺服器只有2塊硬碟,I/O效能有限,所以備份非常慢。
這時候,我們可以有幾種解決辦法:
1. 刪除過期日誌表,或者放到線下的歸檔資料庫上
2. 如果innodb buffer還有大量空閒的話,可以不定期執行select * from table,將這部分資料load到buffer中,減少備份時的物理I/O,提高速度
1. 刪除過期日誌表,或者放到線下的歸檔資料庫上
2. 如果innodb buffer還有大量空閒的話,可以不定期執行select * from table,將這部分資料load到buffer中,減少備份時的物理I/O,提高速度
本文轉自葉金榮51CTO部落格,原文連結:http://blog.51cto.com/imysql/308978,如需轉載請自行聯絡原作者
相關文章
- 資料庫連線非常慢資料庫
- Mysql備份系列(3)--innobackupex備份mysql大資料(全量+增量)操作記錄MySql大資料
- Oracle學習系列—資料庫備份—熱備份Oracle資料庫
- 【原】Oracle學習系列—資料庫備份—RMAN備份Oracle資料庫
- 【原】Oracle學習系列—資料庫備份—離線備份Oracle資料庫
- [MySQLFAQ]系列–如何為一個資料表指定字符集MySql
- 資料備份≠容災備份
- Elasticsearch系列---生產資料備份恢復方案Elasticsearch
- [MySQLFAQ]系列–新年新思想:MySQL也能併發匯入資料MySql
- 初探MySQL資料備份及備份原理MySql
- mongo資料備份Go
- 資料備份策略
- oracle資料備份Oracle
- MySQL資料備份MySql
- 資料庫備份資料庫
- Mysql備份系列MySql
- RMAN備份恢復典型案例——RMAN備份&系統變慢
- 資料同步和資料備份
- oracle資料庫備份之exp增量備份Oracle資料庫
- Mysql備份系列(4)--lvm-snapshot備份mysql資料(全量+增量)操作記錄MySqlLVM
- 備份onetab資料
- mysql 資料庫 備份MySql資料庫
- Mysql資料安全備份MySql
- 資料庫備份策略資料庫
- MongoDB資料庫備份MongoDB資料庫
- mysql 資料庫備份MySql資料庫
- 資料庫備份方案資料庫
- tns連線非常慢
- 【備份恢復】從備份恢復資料庫資料庫
- 【RMAN】使用增量備份更新資料庫備份映象資料庫
- Oracle資料庫的備份方法-冷備份(轉)Oracle資料庫
- 檢視oracle資料庫表空間使用情況 非常慢!Oracle資料庫
- Dedecms備份的資料檔案位置及備份資料庫的方法資料庫
- innobackupex備份mysql大資料(全量+增量)操作記錄MySql大資料
- 資料庫備份策略需要考慮的幾大因素資料庫
- 楊廷琨大師總結:RMAN備份恢復--RAC環境資料庫的備份資料庫
- 非常全的大資料相關資源整理大資料
- Oracle資料庫冷備份與熱備份操作梳理Oracle資料庫