2000数据库置疑怎么处理_msdb数据库置疑的解决方法

2000数据库置疑怎么处理_msdb数据库置疑的解决方法由于服务器意外的断电,导致SQLSERVER服务器上数据库出现“置疑”而无法使用,通过网上搜索,找到以下方法解决问题,这里记录一下:产生数据库置疑的时侯,数据库文件和日志文件都是存在的,如果数据库文件都不存在了,则要另当处理。1、停止数据库服务器,将数据库MDF文件和LDF文件复制备份一份2、启动数据库服务器,删除置疑的数据库3、仅用备份的数据库MDF文件附加数据库,sp_attach_…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

    由于服务器意外的断电,导致SQL SERVER服务器上数据库出现“置疑”而无法使用,通过网上搜索,找到以下方法解决问题,这里记录一下:

产生数据库置疑的时侯,数据库文件和日志文件都是存在的,如果数据库文件都不存在了,则要另当处理。

1、停止数据库服务器,将数据库MDF文件和LDF文件复制备份一份

2、启动数据库服务器,删除置疑的数据库

3、仅用备份的数据库MDF文件附加数据库,sp_attach_db或者sp_attach_single_file_db可以附加数据库,出现类似下面的提示信息:

设备激活错误。物理文件名 ‘C:\Program Files\Microsoft SQL Server\MSSQL\data\myDb_Log.LDF’ 可能有误。

已创建名为 ‘C:\Program Files\Microsoft SQL Server\MSSQL\Data\myDb_log.LDF’ 的新日志文件。

这个表明数据库附加成功,问题解决了,如果成功则要恭喜你了,反正我是符加不成功,提示类似下面的错误信息

未能打开新数据库 ‘myDb’。CREATE DATABASE 将终止。

设备激活错误。物理文件名 ‘e:\www\myDb_log.LDF’ 可能有误。

此时我用了以下方法解决(参考了网上的方法)。

   A.我们SQL SERVER企业管理器新建立一个供恢复使用的同名数据库(注意:要跟问题数据库同名,本例中为myDb)。

   B.停掉数据库服务器。

   C.将刚才生成的数据库的日志文件myDb_log.ldf删除(本例中的示列数据库名,实际使用您自己的数据库名称),用刚才备份的数据库mdf文件覆盖新生成的数据库数据文件myDb_data.mdf。

   D.启动数据库服务器。此时会看到数据库myDb的状态为“置疑”。这时候不能对此数据库进行任何操作。

   E.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右–键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。

use
 master

go

sp_configure 


allow updates

,
1


go
 

reconfigure
 
with
 override

go

   F.设置myDb为紧急修复模式

      在查询管理器里设置如下命令:

update
 sysdatabases 
set
 status
=-
32768
 
where
 dbid
=
DB_ID
(
‘myDb

)

此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表

   G.下面执行真正的恢复操作,重建数据库日志文件

dbcc
 rebuild_log(

myDb

,

C:\Program Files\Microsoft SQL Server\MSSQL\Data\myDb_log.ldf

)

警告: 数据库 ‘myDb’ 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。

   H.验证数据库一致性(可省略)

dbcc
 checkdb(

myDb

)

一般执行结果如下:

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

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

   I.设置数据库为正常状态

sp_dboption 
‘myDb

,

dbo use only

,

false

   J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成

sp_configure 

allow updates

,
0


go
 

reconfigure
 
with
 override

go

到此数据库置疑问题解决。

转载于:https://www.cnblogs.com/baoposhou/archive/2009/10/09/1579502.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171371.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号