一.錯(cuò)誤修正 檢測(cè) MySQL 內(nèi) phpBB 的 DB 後發(fā)現(xiàn),有個(gè) users 的 table 是有問(wèn)題的, 使用 myisamchk 嘗試去修護(hù),發(fā)現(xiàn)還不行用預(yù)設(shè)方式修護(hù),還要多加個(gè) "-o" 的參數(shù)才行,在使用myisamchk 時(shí),為避免還有用戶來(lái)存取 DB ,最好是能夠?qū)?MySQL 服務(wù)停止,不然最少也要
一.錯(cuò)誤修正
檢測(cè) MySQL 內(nèi) phpBB 的 DB 後發(fā)現(xiàn),有個(gè) users 的 table 是有問(wèn)題的, 使用 myisamchk 嘗試去修護(hù),發(fā)現(xiàn)還不行用預(yù)設(shè)方式修護(hù),還要多加個(gè) "-o" 的參數(shù)才行,在使用myisamchk 時(shí),為避免還有用戶來(lái)存取 DB ,最好是能夠?qū)?MySQL 服務(wù)停止,不然最少也要下個(gè) "mysqladmin flush-tables" 後, 再作 myisamchk 指令,像:
myisamchk -o phpbb2_users.MYI
這個(gè)動(dòng)作,可能要作個(gè)2~3次,直到?jīng)]有錯(cuò)誤的訊息出現(xiàn)!
修護(hù)完,重新啟動(dòng) MySQL 服務(wù)後,就可以用 mysql 這個(gè) client 的指令, 去 Query 一下 DB 內(nèi)容,測(cè)試看是否正常.很幸運(yùn)的,DB的部份在此時(shí), 運(yùn)作是正常的.
當(dāng)然,在你要備份之前,假如能先檢測(cè)資料是否正確,那是最好不過(guò)了, 假如有需要,可以把檢測(cè)的工作,排定在備份工作之前,但是記得,這個(gè)檢測(cè)DB 的動(dòng)作不要排定在 DB 高用量的那段時(shí)間,深夜無(wú)人上線的時(shí)段是個(gè)不錯(cuò)的選擇!
二.開始備份
phpBB 討論區(qū)的資料檔,主要有兩個(gè)部份,就是 php 主程式和 DB 內(nèi)容, php 主程式的備份就比較簡(jiǎn)單,只要把全部檔案 tar 起來(lái)就行了,就像:
tar cvfz phpbb2_20020601.tgz phpbb (上面的 phpbb 是指 phpBB 的 php 網(wǎng)頁(yè)程式存放目錄.)
以後有改到 phpBB 網(wǎng)頁(yè)程式部份再重新備份一次就行,它的內(nèi)容資料都寫在DB 內(nèi),所以 php 程式檔部份異動(dòng)性應(yīng)該不大.
再來(lái)就是 MySQL DB 部份了,預(yù)設(shè) MySQL 的 DB 檔案是存在 /var/lib/mysql 內(nèi), 以 DB 名稱為目錄,目錄內(nèi)就是該 DB 的所有資料,像 phpbb2 這個(gè) DB, 就是存在 /var/lib/mysql/phpbb2 內(nèi),在備份前,因?yàn)榕沦Y料尚未完全寫入磁碟, 而且 MySQL 會(huì) Lock 在使用的 DB 檔案,所以應(yīng)該是要先把 MySQL 先 Shutdown 一下, 整個(gè)備份的程序可以下像下面的指令去完成:
/etc/rc.d/init.d/mysqld stop
tar cvfz phpbb2_db_20020601.tgz phpbb2
/etc/rc.d/init.d/mysqld start
(上面的 phpbb2 是指存放 phpbb2 這個(gè) DB 的目錄.)
對(duì)!這樣就可以了! 不過(guò)要注意的是,怕 DB 內(nèi)每個(gè) Tables 間的資料有關(guān)關(guān)聯(lián)性, 所以最好是把整個(gè) DB 一次備起來(lái),單獨(dú)只備哪個(gè) Tables 的檔案,以後回存時(shí), 怕會(huì)有資料關(guān)聯(lián)不一致的問(wèn)題!
三.如何回存
phpBB 討論區(qū)的回存,只需把檔案解回原來(lái)存放網(wǎng)頁(yè)的路徑就可以,用以下指令解開:
tar xvfz phpbb2_20020601.tgz
DB 發(fā)生錯(cuò)誤而要回存時(shí),其實(shí)也不難,先找出最近一次完整正常的備份,先把現(xiàn)在錯(cuò)誤的網(wǎng)頁(yè)或 DB 先更名或 tar 起來(lái),再把好的備份給解開回原來(lái)目錄位置就行了,需要注意的是, MySQL 服務(wù)最好也是要先停止,回存完成後再啟動(dòng)服務(wù),回存 DB 的整個(gè)程序可能像下面:
/etc/rc.d/init.d/mysqld.stop
mv phpbb2 phpbb2_error
tar xvfz phpbb2_db_20020601.tgz
/etc/rc.d/init.d/mysqld.start
然後再去測(cè)試一下網(wǎng)頁(yè)及資料庫(kù)! 看使用上是否正常就行了...
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com