sql2005数据库紧急模式怎么恢复

sql2005数据库紧急模式怎么恢复,第1张

1、使数据库变为单用户模式 ALTER DATABASE 数据库名 SET SINGLE_USER (当变成单用户的模式只能在同一个窗口执行语句) 2、修正数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象不正确

use master

go

exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE/* 打开修改系统表的开关 */

go

update sysdatabases set status=32768 where name='jiax' /* 设置数据库状态*/

go

update sysdatabases set status=0 where name='jiax' /* 重置数据库状态 */

go

exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 关闭打开修改系统表的开关 */

/*一条一条执行语句,起作用的是set status=0那句,其中jiax是数据库名字*/

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'


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

原文地址:https://54852.com/sjk/9865062.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存