MySQL 資料庫備份及還原

MySQL 的備份可以透過直接複製 MySQL 資料庫目錄(冷備份),或者用 mysqldump 匯出資料庫的完整 SQL 語句實現(熱備份),以下是兩種方法的優/缺點,以及實現方法:

冷備份
這種方法最大的好處是簡單,備份只要直接複製資料庫目錄,還原則只要將備份目錄抄回原來位置便可以,而且速度會較快。但缺點是冷備份時必須要關閉 MySQL,如果 MySQL 在執行時進行冷備份,備份檔可能會有不完整及損毀的情況,以下是冷備份步驟:

1. 關閉 MySQL:

# /etc/rc.d/init.d/mysqld stop

2. 把 MySQL 的資料目錄(包括 ibdata1, ib_logfile0, ib_logfile1 等)完整複製到另一個硬碟裡面。

3. 開啟 MySQL:

# /etc/rc.d/initd/mysql start


這樣就完成了,至於還原的過程同樣簡單,關閉 MySQL 後直接將資料目錄替換原來的目錄,並重啟 MySQL 即可。

熱備份
熱備份的好處是不需要中斷 MySQL 的服務,但速度較慢,以下是實現方法:

執行以下指令匯出所以資料庫:

# mysqldump -u root -p –all-databases > backup.sql;

以上指令的意思為,”-u root” 指定執行的 MySQL 用戶,”-p” 會彈出輸入 MySQL root 密碼提示,”–all-databases” 是備份所有資料庫,”> backup.sql” 是指定匯出的備份檔案為 backup.sql

這樣就完成了,但如果資料庫很大,那麼可能需要等一段時間,我的經驗備份大約 1GB 的資料庫,需時大約 2 分鐘。

而還原的指令如下:

# mysql -u root -p


Leave a Reply