国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫(kù) > MySQL > 正文

mysql innodb 異常修復(fù)經(jīng)驗(yàn)分享

2024-07-24 13:13:11
字體:
供稿:網(wǎng)友

一套測(cè)試用的mysql庫(kù),之前用的centos6默認(rèn)源里的mysql 5.1.71的版本 。后來想試用下Percona server 5.7,由于這套庫(kù)里沒有什么重要數(shù)據(jù) 。所以操作前也未進(jìn)行備份,配置好源后,直接就進(jìn)行了安裝。數(shù)據(jù)文件也存放在默認(rèn)位置,安裝完成后,直接啟動(dòng)mysql,發(fā)現(xiàn)啟動(dòng)失敗,發(fā)現(xiàn)無法啟動(dòng)正常啟動(dòng)。

一、回退重新裝mysql

為避免再?gòu)钠渌胤綄?dǎo)入這個(gè)數(shù)據(jù)的麻煩,先對(duì)當(dāng)前庫(kù)的數(shù)據(jù)庫(kù)文件做了個(gè)備份(/var/lib/mysql/位置)。接下來將Percona server 5.7包進(jìn)行了卸載,重新安裝原先老的5.1.71的包,啟動(dòng)mysql服務(wù),提示Unknown/unsupported table type: innodb,無法正常啟動(dòng)。

110509 12:04:27 InnoDB: Initializing buffer pool, size = 384.0M110509 12:04:27 InnoDB: Completed initialization of buffer poolInnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytesInnoDB: than specified in the .cnf file 0 157286400 bytes!110509 12:04:27 [ERROR] Plugin 'InnoDB' init function returned error.110509 12:04:27 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.110509 12:04:27 [ERROR] Unknown/unsupported table type: innodb110509 12:04:27 [ERROR] Aborting110509 12:04:27 [Note] /usr/sbin/mysqld: Shutdown complete

刪除/var/lib/mysql/目錄,重新啟動(dòng)數(shù)據(jù)庫(kù)服務(wù),并初始化,發(fā)現(xiàn)正常,show engines能發(fā)現(xiàn)有innodb引擎。再將數(shù)據(jù)庫(kù)停掉,將之前備份的/var/lib/mysql/目錄的內(nèi)容覆蓋當(dāng)前位置的內(nèi)容,重啟。又發(fā)現(xiàn)不能進(jìn)行啟動(dòng),報(bào)錯(cuò)內(nèi)容和剛剛一樣。

/var/lib/mysql目錄內(nèi)容的結(jié)構(gòu)如下:

-rw-rw---- 1 mysql mysql 10485760 2月  26 18:10 ibdata1-rw-rw---- 1 mysql mysql 5242880 2月  26 18:10 ib_logfile0-rw-rw---- 1 mysql mysql 5242880 2月  26 17:20 ib_logfile1drwx------ 2 mysql mysql   4096 2月  26 17:20 mysqldrwx------ 2 mysql mysql   4096 2月 26 17:24 wiki

wiki目錄是測(cè)試數(shù)據(jù)的庫(kù),ibdata1文件為數(shù)據(jù)文件,ib開頭的兩個(gè)文件為日志文件,mysql 目錄下為系統(tǒng)庫(kù)相關(guān)的東西 。再次使用初始化的數(shù)據(jù),并將wiki目錄和ibdata1文件覆蓋到/var/lib/mysql 目錄下,可以正常啟動(dòng),也可以正常登錄。

二、innodb模塊重裝

不過在通過mysqldump備份時(shí),又提示unknow table engine "Innodb" 。登錄后,查看當(dāng)前所有的引擎類型,發(fā)現(xiàn)其中果然不存在innodb類型:

mysql,innodb,異常修復(fù)

通過alter命令修改其中一個(gè)表的類型為MyISAM ,發(fā)現(xiàn)仍然報(bào)錯(cuò)。

mysql,innodb,異常修復(fù)

通過 find 查找發(fā)現(xiàn)/usr/lib64/mysql/plugin/目錄下有ha_innodb_plugin.so文件。印象中mysql5以后的版本支持在線插件安裝 。通過下面查看確認(rèn),果然支持:

mysql,innodb,異常修復(fù)

使用如下命令加載時(shí),發(fā)現(xiàn)不成功:

install plugin innodb soname 'ha_innodb.so';

三、備份

在/etc/my.cnf中增加如下配置:

plugin-load=innodb=ha_innodb_plugin.soplugin_dir=/usr/lib64/mysql/plugin/default-storage-engine=InnoDB 

發(fā)現(xiàn)仍啟動(dòng)失敗。查看mysql-error.log發(fā)現(xiàn)有如下內(nèi)容:

InnoDB: Database page corruption on disk or a failedInnoDB: file read of page 7.InnoDB: You may have to recover from a backup.InnoDB: It is also possible that your operatingInnoDB: system has corrupted its own file cacheInnoDB: and rebooting your computer removes theInnoDB: error.InnoDB: If the corrupt page is an index pageInnoDB: you can also try to fix the corruptionInnoDB: by dumping, dropping, and reimportingInnoDB: the corrupt table. You can use CHECKInnoDB: TABLE to scan your table for corruption.InnoDB: See also http://dev.mysql.com/doc/refman/5.1/en/forcing-innodb-recovery.html

打開forcing-innodb-recovery官方頁面,發(fā)現(xiàn)可以通過指定innodb_force_recovery參數(shù),進(jìn)行強(qiáng)制啟動(dòng)和恢復(fù)。在/etc/my.cnf中增加如下內(nèi)容:

innodb_force_recovery=6

重新啟動(dòng)成功了。通過mysqldump備份也沒有問題,將備份數(shù)據(jù)導(dǎo)入其他主機(jī)發(fā)現(xiàn)也正常可以測(cè)試。

這下就好搞了,將mysql徹底刪除,重新安裝Percona server 5.7,安裝完后,建庫(kù),還原數(shù)據(jù),程序重新連接,一切OK。

總結(jié):

由于mysql innodb數(shù)據(jù)文件的特性,可以在出現(xiàn)問題,無法正常啟動(dòng)時(shí),先將./ib_logfile0 和 ./ib_logfile1 兩個(gè)日志文件先移走,再啟動(dòng),如果還不成功,可以用innodb_force_recovery參數(shù)進(jìn)行強(qiáng)制恢復(fù)。除此之外,日志也很重啟,有問題先看日志。

 

注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MYSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 辽阳市| 桓台县| 宜良县| 自治县| 平罗县| 金秀| 安仁县| 卓资县| 万源市| 长春市| 泰来县| 民权县| 定安县| 丹棱县| 惠水县| 钦州市| 新津县| 紫金县| 上栗县| 九江市| 韩城市| 武城县| 呼图壁县| 东莞市| 博罗县| 灵山县| 富民县| 盐城市| 神农架林区| 德格县| 青州市| 五河县| 吉安市| 缙云县| 依安县| 黄石市| 印江| 古交市| 饶河县| 乌鲁木齐县| 湖南省|