MySQL MyISAM和InNodb備份與恢復技巧
在許多情況下,你會發現使用SQL語句實現MyISAM表的維護比執行myisamchk操作要容易地多:
· 要想檢查或維護MyISAM表,使用CHECK TABLE或REPAIR TABLE。
· 要想優化MyISAM表,使用OPTIMIZE TABLE。
· 要想分析MyISAM表,使用ANALYZE TABLE。
這些語句比myisamchk有利的地方是服務器可以做任何工作。使用myisamchk,你必須確保服務器在同一時間不使用表。否則,myisamchk和服務器之間會出現不期望的相互干涉。
一般建議在停止mysql服務時執行myisamchk,如果是在線執行則最好先flush tables(把所有更新寫入磁盤)。
7. 備份策略摘要
1、一定用--log-bin或甚至--log-bin=log_name選項運行MySQL服務器,其中日志文件名位于某個安全媒介上,不同于數據目錄所在驅動器。如果你有這樣的安全媒介,最好進行硬盤負載均衡(這樣能夠提高性能)。
2、定期進行完全備份,使用mysqldump命令進行在線非塊備份。
在負載比較低的時候進行,并且建議采用--single-transaction參數來保證事務數據的一致性,同時不影響其他用戶的正常讀寫。
3、完整備份時采用FLUSH LOGS,便于產生增量備份日志。
4、用FLUSH LOGS或mysqladmin flush-logs 刷新日志進行定期增量備份。
5、定期維護表,這樣既可以提高性能,并且可以減少數據丟失和出錯的可能性。
6、關鍵表可以另外再做備份,根據需要
評論