日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 修复模式_Mysql表修复

發(fā)布時間:2023/12/10 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 修复模式_Mysql表修复 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

mysqlcheck

mysqlcheck客戶端可以檢查和修復(fù)MyISAM表。它還可以優(yōu)化和分析表。mysqlcheck的功能類似myisamchk,但其工作不同。

主要差別是當(dāng)mysqld服務(wù)器在運(yùn)行時必須使用mysqlcheck,而myisamchk應(yīng)用于服務(wù)器沒有運(yùn)行時。使用mysqlcheck的好處是不需要停止服務(wù)器來檢查或修復(fù)表。

mysqlcheck為用戶提供了一種方便的使用SQL語句CHECK TABLE、REPAIR TABLE、ANALYZE TABLE和OPTIMIZE TABLE的方式。它確定在要執(zhí)行的操作中使用使用哪個語句,然后將語句發(fā)送到要執(zhí)行的服務(wù)器上。

示例

mysqlcheck -B 指定數(shù)據(jù)庫 -r -S /data/mysql2/mysql2.sock -u root -p'test' >> /var/log/mysqlcheck.log

常用選項(xiàng)

--optimize,-o 優(yōu)化表

-h 主機(jī)地

-P 端口號

-F 只檢查沒有正確關(guān)閉的表

-r 執(zhí)行可以修復(fù)大部分問題的修復(fù),只是唯一值不唯一時不能修復(fù)。

-a 分析表

-c 檢查表,默認(rèn)選項(xiàng)

-m 中等的檢查

-e 完全檢查,很慢

--database,-B 指定庫 如果沒指定,表示全部庫

--all--database,-A 所有庫

--fast,-F 只檢查沒有正確關(guān)閉的表。

--quick,-q 如果你正使用該選項(xiàng)在檢查表,它防止掃描行以檢查錯誤鏈接的檢查。這是最快的檢查方法。 如果你正使用該選項(xiàng)在修復(fù)表,它嘗試只修復(fù)索引樹。這是最快的修復(fù)方法。

--silent,-s 沉默模式。只打印錯誤消息

--tables 覆蓋---database或-B選項(xiàng)。選項(xiàng)后面的所有參量被視為表名。

--socket=/-S 指定套接字

myisamchk

myisamchk,只適用于myisam引擎,使用時需要關(guān)閉數(shù)據(jù)庫

myisamchk表損壞原因

服務(wù)器突然斷電導(dǎo)致數(shù)據(jù)文件損壞;強(qiáng)制關(guān)機(jī),沒有先關(guān)閉mysql 服務(wù);mysqld 進(jìn)程在寫表時被殺掉。因?yàn)榇藭rmysql可能正在刷新索引。

磁盤損壞。

服務(wù)器死機(jī)。

mysql 本身的bug 。

MySQL中MyISAM表損壞的癥狀

查詢數(shù)據(jù)時報出錯誤:Incorrect key file for table: '...'. Try to repair it

查詢不能在表中找到行或返回不完全的數(shù)據(jù)。

Error: Table '...' is marked as crashed and should be repaired 。

打開表失敗: Can't open file: '×××.MYI' (errno: 145) 。

常見選項(xiàng)

-q 快速修復(fù),一般和-r一起使用,快速修復(fù)

-r 修復(fù)模式

-o 能修復(fù)-r不能修復(fù)的問題。一般會有提示使用-o

-i 打印被檢測表的信息

-m 中等的檢查

-e 最徹底的檢查

-a 分析表

-s 安靜的

-B 將.MYD文件備份為file_name-time.BAK

--sort-index, -S 以從高到低的順序排序索引樹塊。這將優(yōu)化搜尋并且將使按鍵值的表掃描更快。

-f 強(qiáng)制修復(fù),一般不使用,可能會有數(shù)據(jù)丟失

myisamchk默認(rèn)只用3M的內(nèi)存來修復(fù),如果要修復(fù)大表的話,顯然速度會巨慢,我們可以通過為myisamchk設(shè)置更多的內(nèi)存,來使其運(yùn)行的更快,

myisamchk --sort_buffer_size=16M --key_buffer_size=16M --read_buffer_size=1M --write_buffer_size=1M

一般sort_buffer_size的大小16m就足夠用了。

myisamchk默認(rèn)使用選項(xiàng)“--tmpdir”作為臨時文件的,如果tmpdir指定內(nèi)存的話,恢復(fù)的表比較大,很容易報內(nèi)存的錯誤,所以我們可以用tmpdir指定一個比較大的文件系統(tǒng)

myisamchk --sort_buffer_size=16m --key_buffer_size=16m --read_buffer_size=2m --write_buffer_size=1m --tmpdir=/tmp

執(zhí)行myisam表的恢復(fù)只要是修復(fù)表的三個文件,最常發(fā)生問題的文件是數(shù)據(jù)文件和索引文件

tbl_name.frm:定義(格式)文件

tbl_name.MYD:數(shù)據(jù)文件

tbl_name.MYI:索引文件

示例

首先進(jìn)入到對應(yīng)的數(shù)據(jù)庫下:cd /data/mysql/game | 也可以直接指定表的路徑,從而不用進(jìn)入目錄

檢查表

#快速的檢查

myisamchk -im /usr/local/mysql/data/testx/t2

#只檢查沒有正常關(guān)閉的表

myisamchk -iFm /usr/local/mysql/data/testx/t2

#僅顯示表的最重要的信息

myisamchk -eim /usr/local/mysql/data/testx/t2

修復(fù)表

#常用的修復(fù)命令

myisamchk -rq tbl_name #快速修復(fù)表,只修復(fù)索引

myisamchk -Br tbl_name #備份并修復(fù)表

總結(jié)

以上是生活随笔為你收集整理的mysql 修复模式_Mysql表修复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。