SQL数据库msdb置疑(急)

SQL数据库msdb置疑(急),第1张

5.把数据库设成紧急状态:

在SQL查询分析器中逐条执行以下语句

sp_configure 'allow',1

reconfigure with override

update sysdatabases set status=32768 where name='kmjxc'

6.重建日志文件(请将路径换成你的数据文件路径)

其中“D:\MSSQL$PROD\Data\”为存放数据库文件的路径

“KMJXC_log.ldf”为一个新的不存在的文件,在执行以下语句时将自动建立

dbcc rebuild_log('kmjxc','D:\MSSQL$PROD\Data\KMJXC_log.ldf')

7.逐条执行以下语句,取消紧急模式

update sysdatabases set status=0 where name='kmjxc'

restore database kmjxc with recovery

sp_configure 'allow',0

reconfigure with override

8.重起sql server

先做上面的步骤了,不行再执行下面的步骤,

1、在SQL查询分析器中执行以下语句:(注以下所用的dbname为数据库名称,请客户手工改为自己的数据库名)

use dbname

dbcc checkdb

2、查看查询结果,有很多红色字体显示,最后结果有这样的提示:

CHECKDB 发现了x个分配错误和 x 个一致性错误(在数据库 'dbname' 中)。

一般情况下,引起分配错误的原因是磁盘损坏或突然停电;一致性错误可能是数据库中的表或索引坏,一般都可修复。

3、查看红色字体,并把有错误的数据库表名记录下来,或把索引损坏的表名记录下来。

4、把数据库设置为单用户模式,直接在查询分析器中执行以下语句即可:

EXEC sp_dboption 'dbname', 'single user', 'TRUE'.

5、进入查询分析器执行如下语句:

use kmjxcv3

dbcc checkdb(’dbname’,repair_allow_data_loss)-------修复数据库

dbcc checkdb ('dbname',REPAIR_REBUILD)----------------修复数据库索引

6、再执行:dbcc checkdb,检测数据库,出现结果为:

CHECKDB 发现了0个分配错误和 0个一致性错误(在数据库 'dbname' 中)。

数据库已经修复完毕。

7、取消单用户模式,即直接在查询分析器中执行以下语句即可:

EXEC sp_dboption 'dbname', 'single user','FALSE'

数据库置疑之后修复完,用 dbcc checkdb(数据库名) 检查数据的时候提示有一致性错误是设置错造成的,解决方法为:

1、使用 phpMyAdmin 自带的修复表,选中需要修复的表,然后点击修复表。

2、使用Navicat for MySQL修复打开数据库之后选择需要修复的表按右键 修复。

3、使用cmd修复,首先定位到数据库安装目录。

4、然后登录数据库。

5、然后repair table 需要修复的表就行了。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存