当前位置:首页 > 日记 > 正文

MySQL数据表损坏原因分析及修复方法(推荐)

MySQL数据表损坏原因分析及修复方法(推荐)
1者损害原因分析。米
以下原因是MySQL表被破坏的常见原因:
1。服务器突然断电导致数据文件被损坏。
2。强制关机,不关闭MySQL服务。
3、在mysqld进程时被桌子上写。
4。而用myisamchk,mysqld也操作表。
5,磁盘故障。
6。服务器已死。
7,MySQL本身的错误。

2。症状损害
受损表的典型症状如下:
1。从表中选择数据时,会得到以下错误:
表的错误密钥文件:尝试修复它。
2,查询无法查找表中的行或返回不完整的数据。
3、错误:table'p'is标记为坠毁,必须修复。
4。打开表失败:无法打开文件:X x.myi(错误:145)。
5,
三.防止MySQL表损坏
以下方法可用于防止MySQL表损坏:
1、定期用myisamchk检查MyISAM表(注意关闭mysqld),并推荐使用检查表检查表(不关闭mysqld)。
2,在进行大量的更新或删除操作之后,建议使用优化表优化表,不仅减少了文件碎片,而且减少了表损坏的概率。
三.在关闭服务器,关闭mysqld(关闭服务通常不使用杀9杀进程)。
4。使用ups电源避免突然停电。
5,使用MySQL的最新稳定版本,减少MySQL本身的错误会导致表损坏。
6。对于InnoDB引擎,你可以使用innodb_tablespace_monitor检查在表空间文件空间管理的完整性。
7,对磁盘进行磁盘扫描,减少磁盘错误,提高性能。
8、数据库服务器应只运行mysqld和其他必要的服务,并没有运行其他业务服务,从而降低对这次空难造成的表损坏的可能性。
9、不怕万一,怕出事,平时做好备份是防止表损的有效手段。
对4.mysql表损伤修复
MyISAM表可以用以下步骤修复:
1、使用修复表或myisamchk修复它。
2。如果上述方法无效,则使用备份恢复表。
它可以被称为如下:
第1阶段:检查你的手表
如果你有很多时间,运行myisamchk *。我或myisamchk - E *。myi.use的S(沉默)选项来禁止不必要的信息。
如果mysqld服务器已关闭,你应该使用更新状态的选项来告诉myisamchk表标记检查。
你必须只包含有错myisamchk报告。对于这样一个桌子,继续2期。
如果你检查,你得到奇怪的错误(如内存不足错误),或如果myisamchk崩溃,到3期。
第2阶段:简单安全的修复
注意:如果你想修得更快,当你运行myisamchk,你应该设置sort_buffer_size价值和key_buffer_size变量约25%的可用内存。
First, try myisamchk -r -q tbl_name (-r -q means fast recovery mode).This will try to repair the index file without contact with the data file.If the data file contains all the content it should have and the deletion connection to the correct location in the data file, it should be used and the table can be repaired.Start to fix the next table.Otherwise, the following process is carried out:
继续之前备份数据文件。
对myisamchk -使用R tbl_name(R意味着复苏模式)。这将删除不正确的记录和删除记录的数据文件并重建索引文件。
如果以前的步骤失败,用myisamchk --安全恢复tbl_name.the安全恢复模式使用一个老的回收方法处理几例(但更慢),传统的回收模式是不好的。
如果你是在一个固定的,你得到一个奇怪的错误(如内存不足错误),或如果myisamchk崩溃,到3期。
第3阶段:难修复
唯一索引文件的第一16k块被破坏,或包含不正确的信息,或如果索引文件丢失,你应该到这个阶段。在这种情况下,你需要创建一个新的索引文件,执行以下步骤:
将数据文件移动到安全的地方。
使用表描述文件创建新的(空的)数据文件和索引文件:
复制代码代码如下所示:
MySQL db_name壳>
MySQL >设置自动提交= 1;
TRUNCATETABLE tbl_name MySQL >;
MySQL >退出

如果你的MySQL版本没有截断表,使用删除tbl_name。
将旧数据文件复制到新创建的数据文件中。(不要将旧文件移回新文件;如果出现错误,您必须保留一个副本)。
回到阶段2。如今myisamchk - R Q应该工作。(这不应该是一个无限循环)。
你也可以用修表tbl_name use_frm自动执行整个计划。
第4阶段:非常困难的修复
只有。FRM描述文件也损坏了,你应该到达这个阶段。这应该不会发生因为描述文件不再变化时创建表。
从备份中恢复并返回到3阶段的描述文件,也可以恢复索引文件和回2期。对于后者,你应该开始用myisamchk - R.
如果你没有备份,但是你知道如何创建表,在另一个数据库中创建表的副本。删除新的数据文件并将描述文件和从其他数据库索引文件损坏的数据库。这提供了一个新的描述和索引文件,但它的叶子the.myd数据文件单独。回到2期并试图重建索引文件。
InnoDB表可以用下面的方法修复:
如果数据库页被打破,你可能想使用SELECT INTO outfile存储从数据库表。大部分通过这种方式得到的数据是完整的。即使如此,损伤可能导致选择*从tbl_name或InnoDB后台操作崩溃或断言,甚至使InnoDB回滚崩溃。尽管如此,你可以用它来强制InnoDB存储引擎来启动和停止后台运行以便你能转储你的表。例如,你可以在启动服务器的选项文件{ mysqld }部分添加以下行:
{他} innodb_force_recovery = 4innodb_force_recovery不得为非零值。大量包含所有较小的数的措施。如果你能把你的表与大多数4期权的价值,你会更安全。只有一些损坏的个人页面上的数据将丢失,其中一个更夸张的值为6,因为数据库页处于旧状态,这反过来又可能对B树和其他数据库结构造成更大的损害。
1(srv_force_ignore_corrupt)
即使服务器检测到损坏的页面,这也让服务器运行;尽量选择*从tbl_name跳过损坏的索引记录的页面,这有助于保存表。
2(srv_force_no_background)
如果在净化过程中可能发生碰撞,则防止主线程运行,这将防止它。
3(srv_force_no_trx_undo)
恢复后不要运行事务回滚。
4(srv_force_no_ibuf_merge)
还可以防止插入缓冲区合并操作。如果可能导致崩溃。最好不要执行这些操作,也不计算表统计信息。
5(srv_force_no_undo_log_scan)
当你启动数据库,你别看未完成的日志:InnoDB把未完成的交易提交。
6(srv_force_no_log_redo)
不要在恢复连接中滚动日志。
该数据库将无法使用,此外,在这些选项允许选择。作为一种安全措施,可以防止用户执行插入、更新或删除操作时,innodb_force_recovery设置为大于0的值。
即使强制回收使用,您也可以删除或创建表。如果你知道一个给定的表是导致回滚崩溃,你可以删除它,你还可以使用该停止失败的批量导入或失败的ALTER TABLE造成失控的回滚。你可以杀掉mysqld进程,然后3集innodb_force_recovery,这样数据库挂了没有回滚,然后丢弃,导致失控的回滚表。

相关文章

oracle加密MD5加密详细解决方案

oracle加密MD5加密详细解决方案

加密,解决方案,详细,电脑软件,oracle,1。技术要点 1、dbms_obfuscation_toolkit.md5 dbms_obfuscation_toolkit.md5是MD5编码数据包的功能,但在选择使用dbms_obfuscation_toolkit.md5(input_string = > ABC)一双,但错误,似乎功能只能在程序中…

Windows8笔记本无损分区不破坏原分

Windows8笔记本无损分区不破坏原分

系统,电脑软件,评论:大多数笔记本都是C,这让很多人担心!然后重装系统分区,稍微麻烦一点,不然可能会带来其他问题!可能会带来其他问题,这里没有损坏原来的分区系统,甚至连注册激活,绘制D盘,E盘,F盘什么的直接在C 很多学生打算买笔记本电脑,预装的Windows…

excel表格怎么划线 excel表格怎么

excel表格怎么划线 excel表格怎么

excel表格怎么划线 excel表格怎么划线分格,步骤,文字,格式,调整,单击,表格,教程,方法,怎么在excel表格中进行划线?想学习的朋友快来跟小编一起来看看excel表格划线的方法吧。excel表格划线的教程:表格划线步骤1:将需要加斜线的表格“长”和“高”调整…

Oracle声明游标(无字段)规则的应用

Oracle声明游标(无字段)规则的应用

字段,声明,游标,规则,电脑软件,在开发过程中,我们可以声明一个游标,其中包含一些没有字段来解决特殊问题的字段。本文将详细介绍这些问题,我们需要了解更多的朋友。 在这方面,数据。*是一个表,然后在其他表中的字段添加到sal_data光标 SQL代码 …

spyagent4是spyagent4.exe-过程

spyagent4是spyagent4.exe-过程

过程,电脑软件,exe,点评:spyagent4.exe是spytech spyagent监控软件相关程序。该软件监视你的计算机的相关操作 进程文件:spyagent4或spyagent4.exe 进程名称:spytech spyagent监控软件 过程类别:安全风险的过程 英文描述: spyagent4.exe是一个…

折叠手机不会非常容易坏么?苏宁推出

折叠手机不会非常容易坏么?苏宁推出

折叠手机不会非常容易坏么?苏宁推出折坏险,折叠,苏宁手机,免费,推出,小米,研发,损坏,井喷,2月26日,苏宁手机宣布推出了针对折叠屏产品的“折坏险”。具体来说,苏宁云商副总裁苏宁通讯公司总裁顾伟在微博表示:“花上一两万购买最新折叠屏手机是宝贵的科…

在Win8系统hosts文件的修改方案

在Win8系统hosts文件的修改方案

修改,系统,文件,方案,电脑软件,点评:家里的电脑使用Windows8,从网络接入公司回到家里,需要修改的主机,但发现得救,这里介绍一个好的解决方案,有需求的朋友可以参考下,希望对大家有帮助 Windows8发布,我相信很多人都用尝鲜。我还安装了家用电脑的Win…

详细分析MySQL删除语法。

详细分析MySQL删除语法。

语法,删除,详细,电脑软件,MySQL,下面的文章主要是通过对mysql语法的详细分析说明,我们从单表和多表文法语法入手,如果你对mysql相关语法内容的删除很感兴趣,可以浏览下面的文章,对它有更好的了解。 单表语法: 复制代码代码如下所示: 删除{ } { }…

win7任务栏禁用交互式服务检测对话

win7任务栏禁用交互式服务检测对话

任务栏,交互式,检测,服务,对话框,注释:任务栏总是弹出交互式服务检测对话框,并通过搜索找到一个好的解决方案。只要在系统服务中禁用了交互服务检测服务,我就有截图的详细操作步骤,和有类似问题的朋友可以参考一下。 最近安装的电信天翼笔记本…

删除win7系统老年人动态文件不会导

删除win7系统老年人动态文件不会导

动态,系统,删除,文件,方法,点评:有一个Windows.old文件夹,C原来是伟大的,当你安装Windows7在以前的操作系统的备份目录,这里教你如何删除Windows.old文件夹 发现C的空间安装Windows7只占了几十个G,它是如何仔细检查,发现一个Windows.old文件夹在…

对qclean.exe-使用qclean是什么

对qclean.exe-使用qclean是什么

电脑软件,qclean,exe,点评:qclean.exe是迈克菲网络安全网络安全套件相关的程序,用于清理无用的文件在您的计算机上 进程文件:qclean或qclean.exe 进程名称:McAfee quickclean 过程类别:安全风险的过程 英文描述: qclean.exe是一个过程,属于McAfe…

给未来写封信app的使用方法介绍

给未来写封信app的使用方法介绍

给未来写封信app的使用方法介绍,给未来写封信app,使用方法介绍,  近期有不少小伙伴咨询怎么使用给未来写封信app,今天小编介绍给未来写封信app的使用方法,希望可以帮助到你哦。  给未来写封信app的使用方法介绍  1、大家想要给未来写信…