標籤:Database Backup 資料庫表 資料庫檔案 伺服器 tables
第一步準備工作:
為了避免資料的不一致問題的發生,在備份資料庫檔案期間,不允許對該資料庫的資料進行更新操作。為了實現這個目的,最為簡單的方法就是停止MySQL服務。然後,將備份檔案複製到其他儲存空間中。
另一種方法無需停止MySQL服務,而是使用MySQL命令“flush tables with read lock”將伺服器記憶體中的資料重新整理到資料庫檔案中,同時鎖定所有的表,以保證備份期間不會有新的資料寫入,從而避免資料的不一致問題發生。備份檔案複製到其他儲存空間後,使用MySQL命令“unlock tables”進行鎖檔案,MySQL服務執行個體即可重新提供資料更新服務,執行結果操作。
備忘:MySQL命令“flush tables with read lock”禁止了所有資料庫表的更新操作,但無法禁止資料庫表的查詢操作。
第二步:
MySQL資料庫中的資料最終以檔案的形式存在。備份的準備工作做好後,需要將資料庫的那些檔案拷貝到磁碟中?
如果資料庫中全部是myISAM儲存引擎的表,最為簡單的Database Backup方法是“備份”整個資料庫目錄(例如,將choose資料庫對應的choose目錄拷貝到磁碟中即可)。
如果某個資料庫中還存在InnoDB儲存引擎的表,此時不僅需要“備份”整個資料庫目錄,還需要備份ibdata1資料表空間檔案以及重做記錄檔ib_logfile0和ib_logfile1.
備份資料庫時,建議將MySQL設定檔一併進行備份。
第三步:
首先停止MySQL服務,然後將整個資料庫目錄、MySQL設定檔、ibdata1資料表空間檔案以及重做記錄檔ib_logfile0和ib_logfile1複製到新MySQL伺服器對應目錄,這樣即可恢複資料庫中的資料。
如果“新MySQL伺服器”與“舊MySQL伺服器”的資料庫根目錄不同,則還需要修改my.ini設定檔中的【mysqld】選項組中的datadir參考資訊。