對資料庫管理者來說,備份跟還原是很重要的,如果資料發生遺失,會造成很大的後果,甚至造成公司有很大的損失,在我們做備份排程之前,必須要考慮到備份的週期是不是系統能承受的恢復時間,也要避免在系統忙碌的時候做備份。
MySQL的備份又分成邏輯備份跟物理備份兩種。
邏輯備份會將資料庫中資料備份成文字檔,檔案比物理備份大,備份時間也會比較長,適合資料較小、想要更改資料或是重建資料在其他機器的資料,可以遠端備份,但必須要在MySQL運行下執行。
工具:mysqldump或select…into outfile語句。
由儲存資料內容的目錄和檔案組成,還可以備份log與設定檔,備份與還原速度快速,適合備份大型重要的資料庫。
工具:mysqlbackup(需要是Enterprise 版本)
Mysqlbackup是一個很好用的工具,可以備份所有儲存引擎的表,備份與還原的速度非常的快,也能夠壓縮或驗證備份檔。
MySQLbackup的備份分為三種類型,依照消耗CPU和硬碟空間不同,分為full backup(完整備份)、different backup(差異備份)、incremental backup(增量備份)。
完整備份:顧名思義就是備份完整的資料。
差異備份:會備份上一次完整備份到現在的資料變化,速度比較快,可以節省儲存空間,還原時必須先還原上一次完整備份。
增量備份:備份上一次備份(完整、差異、增量)到現在的資料變化,在還原時必須一系列的還原回來。
假設以下為備份排程:
若要還原到星期一(3 a.m)資料,必須依照以下順序還原。
禮拜日完整備份(12 a.m) > 禮拜一的差異備份與(1 a.m) > 禮拜一增量備份(2 a.m) > 禮拜一增量備份(3 a.m)