Mysql
在 Amazon RDS 上進行 mysqldump 還原的最快方法是什麼?
我們需要將數據庫從 7-Gb mysqldump 文件恢復到 RDS Amazon 實例。完全恢復需要 3 到 4 個小時(可能是由於網路延遲,因為轉儲必須駐留在 EC2 上),這對我們來說太長了。作為參考,還原到本地 mysqld 需要不到 30 分鐘。
是否有與亞馬遜相關的解決方案可以讓我們減少進口時間?
關於優化 mysqldump 恢復時間的問題之前有人問過,例如:
- 加快 mysqldump / reload
- MySQL 有什麼方法可以更快地導入一個巨大的(32 GB)sql 轉儲?
- mysqldump 恢復的合理時間?
- MySQL 設置對加速 mysqldump 導入很有用
但是,這個問題是不同的,因為涉及到 RDS 實例,所以:
- 應用了其他約束,例如某些 MySQL 變數(例如
innodb_doublewrite
)不能更改以提高性能- 可能有一些亞馬遜本地解決方案或產品可以輕鬆、很好地解決這個問題
您現在必須考慮 RDS 實例
- 提供更多的 IOP
- 使用 innodb_flush_log_at_trx_commit = 2 是否安全
- 設置 innodb_flush_log_at_trx_commit = 2
- 設置 sync_binlog=0
- 由於在 Amazon RDS 中預設 max_allowed_packet = 1M,這可能會導致 mysqldump 的多行插入(擴展插入)失敗。您可能希望使用 –skip-extended-insert 對數據庫進行 mysqldump。這將保證數據被一個一個地插入,但是轉儲會更大並且需要更長的時間來導入。
請閱讀我從 Percona 的部落格將客戶 MySQL 安裝遷移到 Amazon RDS 時學到的知識,以獲得更深入的見解。