MySQL備份資料庫的兩個主要實際操作方案是採用MySQL(與PHP搭配之最佳組合) dump程式或是直接複製相關的資料庫檔案(如用cp、cpio或tar等)。當然每種實際應用方法都有其優缺點:
MySQL(和PHP搭配之最佳組合)dump與MySQL(和PHP搭配之最佳組合)伺服器協同操作。
直接複製方法在伺服器外部進行,並且你必須採取措施保證沒有客戶正在修改你將複製的表。如果你想用檔案系統備份來備份資料庫,也會發生同樣的問題:
如果資料庫表在檔案系統備份過程中被修改,進入備份的表文件主語不一致的狀態,而對以後的恢復表將失去意義。檔案系統備份與直接複製檔案的區別是對後者你
完全控制了備份過程,這樣你能採取措施確保伺服器讓表不受干擾。
MySQL(和PHP搭配之最佳組合)dump比直接複製要慢些。
MySQL(和PHP搭配之最佳組合)dump生成能夠移植到其它機器的文字檔案,甚至那些有不同硬體結構的機器上。直接複製檔案不能移植到其它機器上,
除非你正在複製的表使用MyISAM儲存格式。ISAM表只能在相似的硬體結構的機器上複製。在MySQL(和PHP搭配之最佳組合)
3.23中引入的MyISAM表儲存格式解決了該問題,因為該格式是機器無關的,所以直接複製檔案可以移植到具有不同硬體結構的機器上。只要滿足兩個條
件:另一臺機器必須也執行MySQL(和PHP搭配之最佳組合) 3.23或以後版本,而且檔案必須以MyISAM格式表示,而不是ISAM格式。
不管你使用哪種備份方法,如果你需要恢復資料庫,有幾個原則應該遵守,以確保最好的結果:
定期實施備份。建立一個計劃並嚴格遵守。
讓伺服器執行更新日誌。當你在崩潰後需要恢復資料時,更新日誌將幫助你。在你用備份檔案恢復資料到備份時的狀態後,你可以透過執行更新日誌中的查詢再次運用備份後面的修改,這將資料庫中的表恢復到崩潰發生時的狀態。
以檔案系統備份的術語講,資料庫備份檔案代表完全傾倒(full dump),而更新日誌代表漸進傾倒(incremental dump)。
使用一種統一的和易理解的備份檔案命名機制。象backup1、buckup2等不是特別有意義。當實施你的恢復時,你將浪費時間找出檔案裡是什麼東西。你可能發覺用資料庫名和日期構成備份檔名會很有用。例如:
%MySQL(和PHP搭配之最佳組合)dump samp_db >/usr/archives/MySQL(和PHP搭配之最佳組合)/samp_db.1999-10-02
%MySQL(和PHP搭配之最佳組合)dump menagerie >/usr/archives/MySQL(和PHP搭配之最佳組合)/menagerie.1999-10-02
MySQL備份資料庫的兩個主要實際操作方案是採用MySQL(與PHP搭配之最佳組合) dump程式或是直接複製相關的資料庫檔案(如用cp、cpio或tar等)。當然每種實際應用方法都有其優缺點:
MySQL(和PHP搭配之最佳組合)dump與MySQL(和PHP搭配之最佳組合)伺服器協同操作。
直接複製方法在伺服器外部進行,並且你必須採取措施保證沒有客戶正在修改你將複製的表。如果你想用檔案系統備份來備份資料庫,也會發生同樣的問題:
如果資料庫表在檔案系統備份過程中被修改,進入備份的表文件主語不一致的狀態,而對以後的恢復表將失去意義。檔案系統備份與直接複製檔案的區別是對後者你
完全控制了備份過程,這樣你能採取措施確保伺服器讓表不受干擾。
MySQL(和PHP搭配之最佳組合)dump比直接複製要慢些。
MySQL(和PHP搭配之最佳組合)dump生成能夠移植到其它機器的文字檔案,甚至那些有不同硬體結構的機器上。直接複製檔案不能移植到其它機器上,
除非你正在複製的表使用MyISAM儲存格式。ISAM表只能在相似的硬體結構的機器上複製。在MySQL(和PHP搭配之最佳組合)
3.23中引入的MyISAM表儲存格式解決了該問題,因為該格式是機器無關的,所以直接複製檔案可以移植到具有不同硬體結構的機器上。只要滿足兩個條
件:另一臺機器必須也執行MySQL(和PHP搭配之最佳組合) 3.23或以後版本,而且檔案必須以MyISAM格式表示,而不是ISAM格式。
不管你使用哪種備份方法,如果你需要恢復資料庫,有幾個原則應該遵守,以確保最好的結果:
定期實施備份。建立一個計劃並嚴格遵守。
讓伺服器執行更新日誌。當你在崩潰後需要恢復資料時,更新日誌將幫助你。在你用備份檔案恢復資料到備份時的狀態後,你可以透過執行更新日誌中的查詢再次運用備份後面的修改,這將資料庫中的表恢復到崩潰發生時的狀態。
以檔案系統備份的術語講,資料庫備份檔案代表完全傾倒(full dump),而更新日誌代表漸進傾倒(incremental dump)。
使用一種統一的和易理解的備份檔案命名機制。象backup1、buckup2等不是特別有意義。當實施你的恢復時,你將浪費時間找出檔案裡是什麼東西。你可能發覺用資料庫名和日期構成備份檔名會很有用。例如:
%MySQL(和PHP搭配之最佳組合)dump samp_db >/usr/archives/MySQL(和PHP搭配之最佳組合)/samp_db.1999-10-02
%MySQL(和PHP搭配之最佳組合)dump menagerie >/usr/archives/MySQL(和PHP搭配之最佳組合)/menagerie.1999-10-02