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