<b>mysql数据库下破坏数据的恢复操作分享</b>[MySQL防范]
本文“<b>mysql数据库下破坏数据的恢复操作分享</b>[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
MySQL数据库下破坏数据的恢复操作分享,供各位参考,以备各位同事今后若有近似问题,可以少走些弯路,尽快办理问题.
数据库:mysql
破坏数据文件名:function_products
将数据库内容物理文件直接导入到mysql\data下,每只表各3个文件,顺次辨别为:.frm .MYD .MYI
首先我第一想到的是去网上搜索,探求近似的工具,试图通过工具来恢复已破坏的文件,于是我在GOOGLE上查找,找到一款名为MySQLRecovery的工具,安装后我用其举行恢复,只惋惜效果太不睬想,几十M大的数据文件,恢复之后它提醒我竟然只有几十K.
我又想到了mysql下应有自己本身的修复程序等,于是想通过其来举行恢复,在网上查找了资料,提醒:由于暂时断电,利用kill -9中止MySQL服务进程,大概是mysql正在高速运转时举行强迫备份操作时等,全部的这些都大概会破坏MySQL的数据文件.假如在被干扰时,服务正在改变文件,文件大概会留下错误的或不一致的状况.因为这样的破坏有时是不简单被发现的,当你发现这个错误时大概是好久今后的事了.
于是,当你发现这个问题时,大概全部的备份都有一样的错误.
我想我目前碰到的问题大概是这个问题,因为备份的数据也是有部份破坏的数据,所以招致不能完好运行,意识到myisamchk程序对用来查抄和改正的MySQL数据文件的拜候应当是唯一的.假如MySQL服务正在利用某一文件,并对myisamchk正在查抄的文件举行改正,myisamchk会误认为发生了错误,并会试图举行修复–这将招致MySQL服务的崩溃!这样,要避免这种情形的发生,普通我们需求在工作时关闭MySQL服务.作为挑选,你也可以暂时关闭服务以制作一个文件的拷贝,然后在这个拷贝上工作.当你做完了今后,重新关闭服务并利用新的文件代替本来的文件(大概你还需求利用期间的变更日记).
MySQL数据目录不是太难理解的.每一个数据库对应一个子目录,每个子目录中包含了对应于这个数据库中的数据表的文件.每一个数据表对应三个文件,它们和表名相同,但是具有差别的扩大名.tblName.frm文件是表的定义,它保存了表中包含的数据列的内容和范例.tblName.MYD文件包含了表中的数据.tblName.MYI文件包含了表的索引(比方,它大概包含lookup表以帮忙提高对表的主键列的查询).
要查抄一个表的错误,只需求运行myisamchk(在MySQL的bin目录下)并供应文件的位置和表名,大概是表的索引文件名:
% myisamchk /usr/local/mysql/var/dbName/tblName
% myisamchk /usr/local/mysql/var/dbName/tblName.MYI
上面的两个号令都可以履行对指定表的查抄.要查抄数据库中全部的表,可以利用通配符:
% myisamchk /usr/local/mysql/var/dbName/*.MYI
要查抄全部数据库中的全部表,可以利用两个通配符:
% myisamchk /usr/local/mysql/var/*/*.MYI
假如不带任何选项,myisamchk将对表文件履行普通的查抄.假如你对一个表有猜疑,但是普通的查抄不能发现任何错误,你可以履行更完好的查抄(但是也更慢!),这需求利用–extend-check选项:
% myisamchk –extend-check /path/to/tblName
对错误的查抄是没有破坏性的,这意味着你没必要耽忧履行对你的数据文件的查抄会使已经存在的问题变得更糟.另一方面,修复选项,固然普通也是安全的,但是它对你的数据文件的更改是无法撤消的.因为这个缘由,我们激烈举荐你试图修复一个被破坏的表文件时首先做个备份,并确保在制作这个备份之前你的MySQL服务是关闭的.
我在win2003下通过号令提醒符,输入:
注:此为记录我当时操作的全部历程
D:\Documents and Settings\Administrator>c:
C:\>cd mysql
C:\mysql>cd data
C:\mysql\data>cd hw_enterprice
C:\mysql\data\hw_enterprice>myisamchk function_products.frm
‘myisamchk’ 不是内部或外部号令,也不是可运行的程序
或批处理文件.
C:\mysql\data\hw_enterprice>cd\
C:\>cd mysql
C:\mysql>cd bin
注:查看myisamchk的帮忙信息
以上是“<b>mysql数据库下破坏数据的恢复操作分享</b>[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |