999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

處理MySQL 訪問異常故障

2019-12-16 02:54:30河南劉建臣
網絡安全和信息化 2019年12期
關鍵詞:引擎數據庫故障

河南 劉建臣

某單位使用Java 開發的數據分析系統,后臺使用的是MySQL 數據庫,最近出現了無法查詢和寫入數據的情況,MySQL 服務器使用的是CentOS 6.X 系統,使用了八核的CPU,內存為64GB,按照這樣的配置,運行MySQL 是沒有任何問題的。筆者進入MySQL 安裝路徑,發現似乎缺少了某些文件,果然其中的“ibdata1”“ib_logfile0”“ib_logfile1”等文件“不翼而飛”了。

故障分析

MySQL 默認采用InnoDB引擎,上述文件是MySQL 的表空間文件和日志文件,Innodb 存儲類型的表的數據都放在該共享表空間中。看來是有人誤刪除了這些文件,是不是這些文件丟失的原因呢?因為MySQL服務并沒有重啟,是可以從內存文件系統中找回這些文件的。執行“netstat-nltp|grep mysqld”命令,可以查到MySQL 的進程號,這里為“6831”。執行“ll/proc/6831/fd|grep -e ibdata -e ib_”命令,果然在內存文件系統中找到了這些文件,狀態為“deleted”,說明實際文件已被刪除。因為數據庫處于運行狀態,在InnoDB 引擎緩存池中有很多數據已發生變動,但沒有寫入到磁盤文件中,如果直接恢復肯定會造成數據丟失。

在MySQL 中執行“flush tables with read lock;”命令,禁止針對數據庫的修改操作。執行“show engine innodb statusG;”命令,在返回信息中的“Pages flushed up to”行顯示當前最舊的臟頁數據對應的位置,在“Log sequence number”行中顯示當前最新數據產生的日志序列號信息。這里兩者數據一致,說明內存中的Dirty Page 數據已寫入磁盤。在“Modified db pages”欄中顯示臟數據庫頁數,該值應為0,說明Dirty Page 已刷新到磁盤。

否則,執行“set global innodb_max_dirty_pages_pct=0;”命令,設置Dirty Page 刷新比例。當確定Dirty Page 已全部寫入磁盤后,執行:

執行文件復制操作,之后執行“chown mysql:mysql/data1/mysql/ib*”命令,為上述文件指定用戶權限,因為運行MySQL 的用戶名為“mysql”。執行“/etc/init.d/mysqld restart”命令,重啟MySQL 服務。

進入MySQL 運行路徑,發現上述文件已找回,原本以為問題解決了,但在對某個數據表進行查詢和寫入操作時,依然出現失敗。

在MySQL 中執行“show processlist;”命令,發現有線程正對“tb_anlydat”的表進行檢測操作,而其他線程在進行插入等操作時,出現“Waiting for table level lock”提示,說明MySQL 正在對該表進行檢查,因此其他的寫入操作處于阻塞狀態。

執行“show create table tb_anlydat;”命令,發現該表使用的是MyISAM引擎,因為同InnoDB 引擎相比,MyISAM 引擎具有較快的查詢速度,在實際中經常會出現混合使用上述引擎的現象,即大部分表使用InnoDB引擎,少量對查詢性能要求較高的表使用MyISAM 引擎。MyISAM 引擎只支持表級鎖,如果當數據庫出現執行時間較長的查詢或檢測時,對目標數據表進行更新操作,就很容易出現“Waiting for table level lock”之類的錯誤提示,造成無法插入數據的問題。

前端程序就會因連接失效造成訪問請求失敗,連續執 行“show processlist;”命令,可以發現相關線程正在對該表進行修復,說明MySQL 已發現該表存在問題,在進行修復操作。

根據以上分析,可以發現上述問題的原因,就在于某些數據表存儲問題。既然數據表無法插入數據,那么就需要進行修復。在修復之前需要將內容導出來。例如執行“select * into outfile '/tmp/export.txt' from tb_anlydat;”命令,將該表中數據導出,在備用MySQL服務器上執行“LOAD DATA local INFILE '/tmp/export.txt' IGNORE INTO TABLE tb_anlydat;”之類的命令,將數據導入進來,便于對該數據表進行修復。

MyISAM 引擎提供了Check Table、Repair Table和Myisanchk 等工具,可以對數據表進行檢測和修復操作。例如在MySQL 中執行“check table tb_anlydat;”和“repair table tb_anlydat;”命令,對該表進行修復操作,但很花時間卻沒有什么效果。打開MySQL 配置文件“my.cnf”,發現其中存在“myisamrecover=BACKUP,FORCE”行,這表明如果重啟MySQL,就會自動針對使用MyISAM 的表進行備份和檢測修復操作。因為該表體積達到幾百兆,讀寫比較頻繁,往往會因為各種原因(例如斷電、硬件故障等),造成使用MyISAM 引擎的數據表出現故障。

故障排查

筆者注意到該MySQL 數據庫使用了獨立的磁盤來存儲數據,執行“df -lh”命令,顯示還有約30%的可用空間,不存在磁盤空間不足問題。執行“dmesg”命令,在返回信息中發現和MySQL 對應的磁盤出現“Medium Error”、“uncovered read erroe”、“critical medium error”等錯誤信息,表明該硬盤分區出現了壞道等才引發了以上問題。

表面看來,可以在硬盤上進行讀寫操作,似乎硬盤沒有問題,其實該盤的某些扇區已經損壞,且該數據表恰恰使用了這些問題扇區。問題找到了,只能更換新的硬盤,當然,需要將所有MySQL數據導出保存到備用機。因為MyISAM 引擎容易出問題,最好還是使用InnoDB 引擎操作數據表。

猜你喜歡
引擎數據庫故障
故障一點通
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
奔馳R320車ABS、ESP故障燈異常點亮
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
故障一點通
基于Cocos2d引擎的PuzzleGame開發
主站蜘蛛池模板: 亚洲综合极品香蕉久久网| 免费看黄片一区二区三区| 在线播放真实国产乱子伦| 漂亮人妻被中出中文字幕久久| 99久久国产综合精品女同| 九色视频一区| 久久无码免费束人妻| 久爱午夜精品免费视频| 日本高清视频在线www色| 成人一级黄色毛片| 午夜电影在线观看国产1区| 日本人妻一区二区三区不卡影院| 欲色天天综合网| 99久久精品国产麻豆婷婷| 色精品视频| 日韩精品无码免费一区二区三区| 久久www视频| 伊人久热这里只有精品视频99| 亚洲色图综合在线| 日本高清在线看免费观看| 激情综合婷婷丁香五月尤物| 欧美特级AAAAAA视频免费观看| 欧美无遮挡国产欧美另类| 国产一级视频在线观看网站| 成人国产精品2021| 99国产在线视频| 为你提供最新久久精品久久综合| 午夜国产大片免费观看| 久久精品国产精品国产一区| 欧美伊人色综合久久天天| 免费国产一级 片内射老| 日韩精品无码免费专网站| 精品久久久久成人码免费动漫| 亚洲浓毛av| 乱系列中文字幕在线视频| 免费播放毛片| 黄色网站在线观看无码| 又黄又湿又爽的视频| 成人中文字幕在线| 午夜限制老子影院888| 亚洲熟女中文字幕男人总站| 免费亚洲成人| 黄色福利在线| 五月激激激综合网色播免费| 国产成人毛片| 久久综合丝袜日本网| 日韩精品亚洲人旧成在线| 91丨九色丨首页在线播放| 91免费国产高清观看| 国产91九色在线播放| 国产微拍精品| 日韩国产精品无码一区二区三区| 精品福利一区二区免费视频| 精品人妻AV区| 久久久精品无码一区二区三区| 亚洲第一成年人网站| 在线观看网站国产| 香蕉视频在线精品| 热久久这里是精品6免费观看| 国产Av无码精品色午夜| 欧美另类精品一区二区三区| 国产a在视频线精品视频下载| 亚洲国产无码有码| 亚洲va欧美ⅴa国产va影院| 国产极品美女在线播放| 成人永久免费A∨一级在线播放| 国产欧美综合在线观看第七页| igao国产精品| 亚洲视屏在线观看| 精品少妇人妻无码久久| 国产黑丝一区| 亚洲中文字幕23页在线| 久久国产精品无码hdav| 成人字幕网视频在线观看| 午夜日本永久乱码免费播放片| 色老二精品视频在线观看| 国产在线观看一区精品| 91成人在线免费视频| 国产美女无遮挡免费视频| 全免费a级毛片免费看不卡| 国产探花在线视频| 午夜a级毛片|