自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

檢查被破壞的MySQL數(shù)據(jù)文件的方法

數(shù)據(jù)庫(kù) MySQL
由于終止MySQL服務(wù)進(jìn)程等原因,MySQL數(shù)據(jù)文件有可能遭到破壞,下面就教您一個(gè)檢查被破壞的MySQL數(shù)據(jù)文件的方法,供您參考。

MySQL數(shù)據(jù)文件如果損壞,如何檢查呢?這可能是很多人都遇到過的難題。不要緊,下面就教您檢查被破壞的MySQL數(shù)據(jù)文件的方法。

由于臨時(shí)斷電,使用kill -9中止MySQL服務(wù)進(jìn)程,所有的這些都可能會(huì)毀壞MySQL數(shù)據(jù)文件。如果在被干擾時(shí),服務(wù)正在改變文件,文件可能會(huì)留下錯(cuò)誤的或不一致的狀態(tài)。因?yàn)檫@樣的毀壞有時(shí)是不容易被發(fā)現(xiàn)的,當(dāng)你發(fā)現(xiàn)這個(gè)錯(cuò)誤時(shí)可能是很久以后的事了。于是,當(dāng)你發(fā)現(xiàn)這個(gè)問題時(shí),也許所有的備份都有同樣的錯(cuò)誤。

MySQL參考手冊(cè)的第十五章講述了MySQL自帶的myisamchk的功能,以及如何使用它檢查和修復(fù)你的MySQL數(shù)據(jù)文件。雖然這一章對(duì)于每個(gè)想要搭建一個(gè)強(qiáng)壯的MySQL服務(wù)的人都是推薦閱讀的,我們還是有必要在這里對(duì)其中的要點(diǎn)進(jìn)行討論。

在我們繼續(xù)之前,你必須意識(shí)到myisamchk程序?qū)τ脕頇z查和修改的MySQL數(shù)據(jù)文件的訪問應(yīng)該是唯一的。如果MySQL服務(wù)正在使用某一文件,并對(duì)myisamchk正在檢查的文件進(jìn)行修改,myisamchk會(huì)誤以為發(fā)生了錯(cuò)誤,并會(huì)試圖進(jìn)行修復(fù)--這將導(dǎo)致MySQL服務(wù)的崩潰!這樣,要避免這種情況的發(fā)生,通常我們需要在工作時(shí)關(guān)閉MySQL服務(wù)。作為選擇,你也可以暫時(shí)關(guān)閉服務(wù)以制作一個(gè)文件的拷貝,然后在這個(gè)拷貝上工作。當(dāng)你做完了以后,重新關(guān)閉服務(wù)并使用新的文件取代原來的文件(也許你還需要使用期間的變更日志)。

MySQL數(shù)據(jù)目錄不是太難理解的。每一個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)一個(gè)子目錄,每個(gè)子目錄中包含了對(duì)應(yīng)于這個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)表的文件。每一個(gè)數(shù)據(jù)表對(duì)應(yīng)三個(gè)文件,它們和表名相同,但是具有不同的擴(kuò)展名。tblName.frm文件是表的定義,它保存了表中包含的數(shù)據(jù)列的內(nèi)容和類型。tblName.MYD文件包含了表中的數(shù)據(jù)。tblName.MYI文件包含了表的索引(例如,它可能包含lookup表以幫助提高對(duì)表的主鍵列的查詢)。

要檢查一個(gè)表的錯(cuò)誤,只需要運(yùn)行myisamchk(在MySQL的bin目錄下)并提供文件的位置和表名,或者是表的索引文件名:

myisamchk /usr/local/mysql/var/dbName/tblName

myisamchk /usr/local/mysql/var/dbName/tblName.MYI

上面的兩個(gè)命令都可以執(zhí)行對(duì)指定表的檢查。要檢查數(shù)據(jù)庫(kù)中所有的表,可以使用通配符:

myisamchk /usr/local/mysql/var/dbName/*.MYI

要檢查所有數(shù)據(jù)庫(kù)中的所有表,可以使用兩個(gè)通配符: myisamchk /usr/local/mysql/var/*/*.MYI

如果不帶任何選項(xiàng),myisamchk將對(duì)表文件執(zhí)行普通的檢查。如果你對(duì)一個(gè)表有懷疑,但是普通的檢查不能發(fā)現(xiàn)任何錯(cuò)誤,你可以執(zhí)行更徹底的檢查(但是也更慢!),這需要使用--extend-check選項(xiàng):

myisamchk --extend-check /path/to/tblName

對(duì)錯(cuò)誤的檢查是沒有破壞性的,這意味著你不必?fù)?dān)心執(zhí)行對(duì)你的數(shù)據(jù)文件的檢查會(huì)使已經(jīng)存在的問題變得更糟。另一方面,修復(fù)選項(xiàng),雖然通常也是安全的,但是它對(duì)你的數(shù)據(jù)文件的更改是無法撤消的。因?yàn)檫@個(gè)原因,我們強(qiáng)烈推薦你試圖修復(fù)一個(gè)被破壞的表文件時(shí)首先做個(gè)備份,并確保在制作這個(gè)備份之前你的MySQL服務(wù)是關(guān)閉的。


 

 

【編輯推薦】

10大常用MySQL命令行

7個(gè)常見的MySQL命令行

MySQL權(quán)限表的介紹

MySQL用戶權(quán)限的取消

MySQL修改表結(jié)構(gòu)語句介紹

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-10-29 14:03:39

Oracle移動(dòng)數(shù)據(jù)文

2010-10-13 14:02:01

MySQL數(shù)據(jù)文件

2010-10-13 11:19:11

MySQL數(shù)據(jù)文件

2010-09-13 16:06:48

sql server數(shù)

2022-12-01 14:02:02

MySQL數(shù)據(jù)文件

2010-07-13 14:09:07

SQL Server數(shù)

2010-06-10 14:14:18

個(gè)MySQL表索引

2010-04-30 16:01:17

2011-08-11 09:56:49

2017-08-25 17:41:17

Paradox數(shù)據(jù)文件格式

2013-08-07 10:04:37

MySQL數(shù)據(jù)恢復(fù)

2010-05-13 17:33:24

MySQL索引

2010-10-13 10:49:42

MySQL數(shù)據(jù)文件

2015-07-29 15:21:43

數(shù)字水印數(shù)據(jù)泄露數(shù)據(jù)安全

2012-01-05 10:03:23

2010-11-24 14:03:28

mysql表索引

2023-05-09 10:16:50

安全CIOIT

2010-04-27 14:18:56

Oracle控制文件

2014-11-27 13:59:34

OptimBluemixIBM

2010-04-27 17:38:43

Oracle數(shù)據(jù)文件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)