数据库损坏怎么修复

数据库损坏怎么修复,第1张

aess提供了压缩和修复数据库功能,可尝试用该功能修复,以aess2010为例方法如下:

1、启动aess2010,点击数据库工具选项卡--压缩和修复数据库命令;

2、浏览窗口选定要修复的数据库,点击打开;

3、输入修复后数据库的名称,点击保存;

4、打开修复后的数据库,查看修复效果。

有的时候因为掉电或者其他原因导致数据库损坏,我们可以使用mysql自带的mysqlcheck命令来快速修复所有的数据库或者特定的数据库;例如

检查优化并修复所有的数据库用:

#mysqlcheck-A-o-r-p

Enterpassword:

database1OK

database2OK

----------

修复指定的数据库用

#mysqlcheck-A-o-rDatabase_NAME-p

即可

另外如果只是对某个表进行修复可以用:myisamchk或isamchk

其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:

myisamchktablenameMYI

进行检测,如果需要修复的话,可以使用:

myisamchk-oftablenameMYI

关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。

另外可以把下面的命令放在你的rclocal里面启动MySQL服务器前:

[-x/tmp/mysqlsock]&&/pathtochk/myisamchk-of/DATA_DIR//MYI

其中的/tmp/mysqlsock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/mysql/mysqlsock,对于使用源码安装则是/tmp/mysqlsock可以根据自己的实际情况进行变更,而pathtochk则是myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。

1,简单的修复模式

myisamchk-r-qpath/数据库/坏表MYI

注:-r----恢复模式-q----快速修复

2,使用安全修复模式

myisamchk--safe-recoverpath/数据库/坏表MYI

3,困难的修复模式

如果在索引文件的第一个16K块被破坏,或包含不正确的信息,或如果索引文件丢失,你只应该到这个阶段。在这种情况下,创建一个新的索引文件是必要的。按如下这样做:

把数据文件移更安全的地方。

使用表描述文件创建新的(空)数据和索引文件:

shell>mysqldb_name

mysql>DeleteFROMtbl_name;

mysql>quit

将老的数据文件拷贝到新创建的数据文件之中。(不要只是将老文件移回新文件之中;你要保留一个副本以防某些东西出错。)

回到阶段2。现在myisamchk-r-q应该工作了。(这不应该是一个无限循环)。

4,非常困难的修复模式

只有描述文件也破坏了,你才应该到达这个阶段。这应该从未发生过,因为在表被创建以后,描述文件就不再改变了。

从一个备份恢复描述文件并且回到阶段3。你也可以恢复索引文件并且回到阶段2。对后者,你应该用myisamchk-r启动。

如果你没有一个备份但是确切地知道表是怎样被创建的,在另一个数据库中创建表的一个拷贝。删除新的数据文件,然后从其他数据库将描述和索引文件移到破坏的数据库中。这给了你新的描述和索引文件,但是让数据文件独自留下来了。回到阶段2并且尝试重建索引文件。

5,优化表结构

myisamchk-r表

也可以使用sql语句来优化OPTIMIZETABLE

本方法参考自mouse博客

硬盘数据恢复的一般取决于丢失数据文件的大小,如果文件较大的话,那么恢复的时间也都比较长。但如果丢失文件较小的话,一般也都能快速找回。

丢失数据文件也是可以找回的,但是要保证你所丢失的数据文件没有被覆盖或者损坏,同时还需要借助相应的数据恢复软件进行扫描和修复。

以“嗨格式数据恢复大师”为例, *** 作步骤如下:

1、将丢失数据的移动硬盘插入电脑中

2、下载安装数据恢复软件进行扫描修复

3、文件恢复之前,针对丢失文件免费进行预览,查看是否是我们所丢失的文件。

点击微信朋友圈的时候系统会自动跳出提示,点击开始修复,自动修复完成后点击确认后重启,自动重启软件即可。

微信朋友圈数据有损坏尝试修复就是朋友圈里面的数据,会在本地形成缓存。可能是你不小心把本地缓存删除了,或是手机系统问题。之前缓存在本地的文件或照片,统统都没有了。

微信使用注意事项

在使用微信聊天的时候,会持续的往存储聊天记录的位置存储新的文件,如果你在删除了聊天记录后,还继续使用微信进行聊天,这些新的文件有可能会覆盖掉标记着“无人使用”的位置,从而导致记录无法完全恢复。

如果说你打算利用上面的原理说到的记录没有被真的删除这一点,然后使用iCloud或是iTunes来对手机数据进行备份,然后再恢复手机数据,从而恢复聊天记录的话。

如果只是恢复目录,只要几分钟就可以了。

如果是逐扇区恢复,那就看你的磁盘有多大与磁盘内文件有多少,如果磁盘小文件比较少,可能要一二个小时,如果磁盘大文件比较多,可能要四五个小时或更多。根据需要恢复文件数量多少和文件大小来决定的一般在恢复过程中都会显示剩余时间的。

目前在我国,有相当一部分正在运行应用程序是用Foxpro 编写的,由于突然断电、程序非法关闭等原因,经常会导致Foxpro数据库DBF文件被破坏,如果数据库被破坏了,用Foxpro打开数据库DBF时,会出现"notatable/dbf"错误提示,导致无法用Foxpro打开。

首先介绍一下Foxpro数据库DBF的文件结构:

Foxpro数据库DBF的文件结构由头记录和数据记录组成,头记录定义该DBF的结构并包含与该库相关的其它信息。头记录由文件位置0字节开始。

数据库头部几个关键字节含义如下:(注:库文件中存储整数时低位字节在前)

字节偏移说明

0 库文件的版本类型

1-3 最近更新的日期(YYMMDD)

4-7 库文件中记录的个数

8-9 第一条记录的起始位置

10-11 一条记录的长度(包括删除标记)

其它字节的具体描述不在此赘述,可以参考有关部门书籍或者程序开头注释部分。

在实际工作中发现,许多情况下数据库错误都是由于记录个数比实际记录个数大1个,以至于数据库无法用打开。

主要通过以下两种办法来对数据库进行修复。

一、用Pctools、NU的Diskedit等工具软件进行恢复:

运行Pctools,选中无法打开的数据库,按E文件进入我功能,按F1切换显示模式。

按F3进行我,将开始的第5个字节值减1,按F5存储,然后退出Pctools,启动Foxpro, 发现被破坏的数据库可以打开使用了。

由于许多 *** 作者并不一定熟悉如何使用Pctools,因此我建议大家可以用比较熟悉的Excel程序根据下面的步骤来进行数据库的恢复。

二、用Excel进行恢复。

启动Excel,选择"打开"按钮,出现打开对话框,在打开文件类型中选择Dbase/Foxpro(DBF)文件类型,再选中被破坏的数据库打开,这时不要做更改,只选择"保存"按钮,会出现"另存为"对话框,仍选择以原来文件名保存,会提示"文件已经存在,是否替换已有文件?",选择"是"。

然后选择"文件"菜单上的"关闭",会出现提示"数据库文件不是Excel格式,要保留修改吗?

要保存为Excel格式,单击’是’,然后在’保存类型’下拉列表框选’Excel工作簿’;

要用现有格式保存并替换原来的文件,单击’是’,然后单击’保存’;

要在关闭文件时维持现有格式并不作保存,单击’否’。"

由于我们并没有对数据库的记录进行改动,只是为了恢复数据库,所以选择最后一项"在关闭文件时维持现有格式并不作保存",因此单击"否",退出Excel。

启动Foxpro,再次打开数据库文件,发现数据库文件已可以被打开了,但是观察数据库的结构,会发现数据库结构中的索引不见了,不过数据库的索引文件还存在。我们只需要给数据库Add索引,并选择原来的索引文件Open即可。

添加索引文件后退出数据库结构设置,并对数据库重新索引一下,就可以继续使用原 来被破坏的数据库了。

以上就是关于数据库损坏怎么修复全部的内容,包括:数据库损坏怎么修复、数据库损坏了怎么办、硬盘数据恢复要多久时间丢失数据还能恢复吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10196992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存