時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(5)
數(shù)據(jù)庫(kù)在運(yùn)行中,會(huì)因?yàn)槿藶橐蛩鼗蛞恍┎豢煽沽σ蛩卦斐蓴?shù)據(jù)損壞。所以為了保護(hù)數(shù)據(jù)的安全和最小停機(jī)時(shí)間,我們需制定詳細(xì)的備份/恢復(fù)計(jì)劃,并定期對(duì)計(jì)劃的有效性進(jìn)行測(cè)試。
本章結(jié)合MySQL服務(wù)器的運(yùn)行機(jī)制和所提供的工具,介紹如何進(jìn)行數(shù)據(jù)庫(kù)的備份、維護(hù)和修復(fù)。
以下是幾點(diǎn)防范的措施:
制定一份數(shù)據(jù)庫(kù)備份/恢復(fù)計(jì)劃,并對(duì)計(jì)劃進(jìn)行仔細(xì)測(cè)試。
啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器的二進(jìn)制變更日志,該功能的系統(tǒng)開銷很小(約為1%),我們沒有理由不這樣做。
定期檢查數(shù)據(jù)表,防范于未燃。
定期對(duì)備份文件進(jìn)行備份,以防備份文件失效。
把MySQL的數(shù)據(jù)目錄和備份文件分別放到兩個(gè)不同的驅(qū)動(dòng)器中,以平衡磁盤I/O和增加數(shù)據(jù)的安全。
檢查/修復(fù)數(shù)據(jù)表
對(duì)數(shù)據(jù)表進(jìn)行維護(hù)最好通過發(fā)出CHECK TABLE(檢查數(shù)據(jù)表)或REPAIRE TABLE(修復(fù)數(shù)據(jù)表)命令來做,這樣MySQL服務(wù)器自動(dòng)進(jìn)行表鎖定以協(xié)調(diào)數(shù)據(jù)表中數(shù)據(jù)的讀寫一致性問題。
也可用myisamchk工具來做數(shù)據(jù)表的維護(hù),但它直接訪問有關(guān)的數(shù)據(jù)表文件,不通過服務(wù)器,所以需人為地協(xié)調(diào)數(shù)據(jù)表數(shù)據(jù)的讀寫一致性問題。使用myisamchk檢查數(shù)據(jù)表的具體操作步驟如下:
以mysql客戶端程序連接服務(wù)器,并發(fā)出LOCK TABLE命令,以只讀方式鎖住數(shù)據(jù)表。
% mysql
mysql> use db
mysql> LOCK TABLE table_name READ;???? #以只讀方式鎖定表
mysql> FLUSH TABLE table_name;? #關(guān)閉數(shù)據(jù)表文件,并把內(nèi)存中的信息寫入磁盤
保持上面的狀態(tài)不退出,另開一個(gè)shell窗口,用以下命令維護(hù)(檢查)數(shù)據(jù)表。
% myisamchk table_name
???
如果不保持上面狀態(tài),退出mysql會(huì)話,則表鎖定會(huì)自動(dòng)取消。
維護(hù)完成,切換回mysql狀態(tài)的shell窗口,發(fā)出以下命令解除表鎖定。
mysql> UNLOCK TABLES;
使用myisamchk修復(fù)數(shù)據(jù)表的具體操作步驟如下:
進(jìn)行修復(fù)操作需以讀/寫方式鎖定數(shù)據(jù)表,命令如下:
% mysql
mysql> use db
mysql> LOCK TABLE table_name WRITE;???? #以讀/寫方式鎖定數(shù)據(jù)表
mysql> FLUSH TABLE table_name;
保持mysql客戶端連接狀態(tài),切換到第二個(gè)shell窗口,運(yùn)行修復(fù)命令:
% myisamchk --recover table_name
???
運(yùn)行修復(fù)命令前最好先備份一下數(shù)據(jù)文件。
修復(fù)完成后,切換回mysql客戶端連接窗口,運(yùn)行以下命令解除數(shù)據(jù)表鎖定:
mysql> FLUSH TABLE table_name;???? #使服務(wù)器覺察新產(chǎn)生的索引文件
mysql> UNLOCK TABLE;
還可用以下命令鎖定所有表,鎖定后,所有用戶就只能讀不能寫數(shù)據(jù),這樣就可使我們能安全地拷貝數(shù)據(jù)文件。
mysql> FLUSH TABLES WITH READ LOCK;
下面是解除鎖語句:
mysql> UNLOCK TABLES;
關(guān)鍵詞標(biāo)簽:MYSQL,修復(fù)數(shù)據(jù)表
相關(guān)閱讀
熱門文章 Xbox Game Pass 10款MySQL數(shù)據(jù)庫(kù)客戶端圖形界面管理工具推薦 MySQL常用維護(hù)管理工具 MySQL數(shù)據(jù)庫(kù)啟動(dòng)失敗1067進(jìn)程意外終止的解決辦法總結(jié)
人氣排行 10款MySQL數(shù)據(jù)庫(kù)客戶端圖形界面管理工具推薦 MySQL數(shù)據(jù)庫(kù)啟動(dòng)失敗1067進(jìn)程意外終止的解決辦法總結(jié) Mysql 1045錯(cuò)誤解決辦法 MySQL服務(wù)器進(jìn)程CPU占用100%解決辦法 MySQL導(dǎo)出導(dǎo)入命令的用例 MySQL連接字符串的實(shí)際操作步驟匯總 MySQL無法啟動(dòng)、無法停止各種解決方法總結(jié) 三種常用的MySQL建表語句