1) 執(zhí)行常規(guī)的數(shù)據(jù)庫(kù)備份并允許更新日志。
2) 安排定期的常規(guī)表檢查。通過(guò)檢查表,將減少使用備份的機(jī)會(huì)。這個(gè)工作使用cron 作業(yè)(一般從運(yùn)行服務(wù)器所使用的該賬號(hào)的crontab 文件中調(diào)用)并且很容易實(shí)現(xiàn)。例如,如果您作為mysqladm 用戶(hù)運(yùn)行服務(wù)器,則可以從mysqladm 的crontab 文件中建立定期檢查。如果您不知道如何使用c r o n,應(yīng)使用下列命令查看相關(guān)的UNIX 人工頁(yè):
% man cron
% man crontab
3) 在服務(wù)器啟動(dòng)前的系統(tǒng)引導(dǎo)期間檢查數(shù)據(jù)庫(kù)表。機(jī)器可能會(huì)因早期的崩潰重新啟動(dòng)。如果是這樣的話(huà),數(shù)據(jù)庫(kù)表可能已被毀壞,應(yīng)該對(duì)它進(jìn)行檢查。
為了運(yùn)行自動(dòng)的表檢查,可以編寫(xiě)一個(gè)腳本,將目錄改變?yōu)榉?wù)器數(shù)據(jù)目錄并對(duì)所有數(shù)據(jù)庫(kù)表運(yùn)行myisamchk 和i s a m c h k。我們將在下面討論的腳本中同時(shí)使用這兩個(gè)程序。如果您只有MyISAM 表或只有ISAM 表,則只需其中一個(gè)程序,可以將無(wú)關(guān)的那個(gè)程序從腳本中去除。
myisamchk 和isamchk 都根據(jù)表檢查的方式產(chǎn)生某些輸出結(jié)果以便了解正在檢查哪些表,甚至在沒(méi)有問(wèn)題時(shí)也是如此。對(duì)于crontab 的項(xiàng),除非表中有錯(cuò)誤,否則通常將禁止輸出結(jié)果(如果作業(yè)產(chǎn)生任何輸出, cron 作業(yè)通常生成一個(gè)郵件消息,很少會(huì)收到?jīng)]有任何問(wèn)題的表檢查作業(yè)的郵件)。如果用--silent 選項(xiàng)調(diào)用任一個(gè)實(shí)用程序,它僅當(dāng)發(fā)現(xiàn)問(wèn)題時(shí)才產(chǎn)生輸出。另外,myisamchk 支持--fast 選項(xiàng),該選項(xiàng)允許程序跳過(guò)自上次檢查以來(lái)沒(méi)有被修改過(guò)的任何表。
在服務(wù)器數(shù)據(jù)目錄中檢查所有表的一個(gè)簡(jiǎn)單的腳本如下( DATADIR 應(yīng)該修改成對(duì)應(yīng)您系統(tǒng)的值):
實(shí)用此腳本的一個(gè)潛在的問(wèn)題是:如果有許多表,通配符模式‘ * / * . M Y I’或‘* / * . I S M’可能會(huì)由于“ too many arg um e n t s(過(guò)多的參數(shù))”錯(cuò)誤使外殼程序爆炸。另一個(gè)可選擇的腳本如下(同樣,將DATADIR 改變?yōu)閷?duì)應(yīng)您系統(tǒng)的值):
不論您選擇哪種形式的腳本,筆者都假定您調(diào)用的是c h e c k _ mysql_ tables,應(yīng)確保及時(shí)改變?cè)摲绞绞顾蓤?zhí)行,然后您手工調(diào)用它以驗(yàn)證它工作是否正常:
% chmod +x check_mysql_tables
% chmod_mysql_tables
聲明:本網(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