程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL簡易備份方法

MySQL簡易備份方法

編輯:關於MYSQL數據庫

適用對象: MySQL DB管理員.
適用條件: 對 Linux 環境有基礎的管理及操作能力.
文章附注: 本篇文章為自由文件,歡迎非商業性質轉載,並請注明出處!
商業性質轉載請來信告知!
特別注意: 1.本篇文章提供之程式及設定*不一定*符合您的環境,
請依您的系統環境適當地修改程式及設定.
2.在執行任何具破壞性的動作及行為前,
請確認您已作好完整可用的資料備份工作.

目錄內容
一.前言
二.錯誤修正
三.開始備份
四.如何回存
五.MySQL線上備份
六.MySQL線上回存
七.開始排定備份
八.結語
九.參考資料
十.附錄-備份Script原始檔

一.前言

前幾周,正當我在網上快樂的沖浪,在酷!學園快樂的灌口水時, 竟蹦出一頁 "phpBB critical error",查詢 Database 出現錯誤的訊息,中斷了各學員在各系版唇槍舌戰,熱烈的討論,雖然過了不久,系統管理工友把網頁修好,但開始連續幾個星期,phpBB 討論區有時還是很容易掛掉,頻率大約是 一至二周一次,通常都是在周末大家最閒的時侯發生的,幸好此時剛好世界杯足球賽正好開打,不能到學園灌水,最少還有足球賽可以看. 當時修護的方式,是將 MySQL 服務停止,再把前一次可用的DB檔案蓋回去, 然後再重新啟動 MySQL 服務來測試 PHPBB 是否正常,這樣子的作法通常都有效, 但總是會遺失某一段時間內的文章,這不是大家所希望的... 為了保存許多珍貴的資料和學園們惡心的口水,我開始著手准備 DB 的備份 工作,准備重建這個有問題 DB ,更為將來校園的遷址作 DB 移轉准備.

(DB: Database的簡稱,以下都以 DB 取代 Database,
PHPBB: 酷!學園討論區系統的軟體名稱)

二.錯誤修正

花了一些時間熟悉主機的環境後,我開始尋找錯誤在那裡... 檢測 MySQL 內 PHPBB 的 DB 後發現,有個 users 的 table 是有問題的,
使用 myisamchk 嘗試去修護,發現還不行用預設方式修護,還要多加個 "-o" 的參數才行,在使用myisamchk 時,為避免還有用戶來存取 DB ,最好是能夠將 MySQL 服務停止,不然最少也要下個 "MySQLadmin flush-tables" 後, 再作 myisamchk 指令,像:

myisamchk -o PHPbb2_users.MYI

這個動作,可能要作個2~3次,直到沒有錯誤的訊息出現! 修護完,重新啟動 MySQL 服務後,就可以用 MySQL 這個 clIEnt 的指令, 去 Query 一下 DB 內容,測試看是否正常.很幸運的,DB的部份在此時, 運作是正常的. 當然,在你要備份之前,假如能先檢測資料是否正確,那是最好不過了, 假如有需要,可以把檢測的工作,排定在備份工作之前,但是記得,這個檢測DB 的動作不要排定在 DB 高用量的那段時間,深夜無人上線的時段是個不錯的選擇!


三.開始備份

phpBB 討論區的資料檔,主要有兩個部份,就是 PHP 主程式和 DB 內容,
PHP 主程式的備份就比較簡單,只要把全部檔案 tar 起來就行了,就像:

tar cvfz phpbb2_20020601.tgz PHPbb

(上面的 phpbb 是指 phpBB 的 PHP 網頁程式存放目錄.)

以後有改到 phpBB 網頁程式部份再重新備份一次就行,它的內容資料都寫在DB 內,所以 PHP 程式檔部份異動性應該不大.

再來就是 MySQL DB 部份了,預設 MySQL 的 DB 檔案是存在 /var/lib/mysql 內, 以 DB 名稱為目錄,目錄內就是該 DB 的所有資料,像 phpbb2 這個 DB, 就是存在 /var/lib/MySQL/PHPbb2 內,在備份前,因為怕資料尚未完全寫入磁碟, 而且 MySQL 會 Lock 在使用的 DB 檔案,所以應該是要先把 MySQL 先 Shutdown 一下, 整個備份的程序可以下像下面的指令去完成:

/etc/rc.d/init.d/MySQLd stop
tar cvfz phpbb2_db_20020601.tgz PHPbb2
/etc/rc.d/init.d/MySQLd start

(上面的 phpbb2 是指存放 PHPbb2 這個 DB 的目錄.) Ok!這樣就完成了! (什麽?就這樣! 3行就結束了?!)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved