Web常用工具 二维码美化 在线压缩 JavaScript AI工具汇总网站 ASP.NET控件源码查询 W3CHTML W3SCHOOL 开源中国 51aspx github codeproject SQLBACKUP 几种排序算法比较 SQL中deny权限 MSDN下载 HttpWebRequest类 HTML5 stackoverflow ASP.NET 页生命周期概述 IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述 [SQL Server]视图sys.sysprocesses brnshop学习 SQL视频 Fiddler帮助文档 Sprint.Net SQLServer牛人博客 codeplex IIS官网 IE11 Developer Jquery源码视频上 Jquery源码视频下 Jquery Bugs jquery.miaov.com 正则表达式 Jquery API 1.9 Service Broker Javascript Object中的方法讲解 Microsoft webcast 微信开发接口 ECMAScript5 Underscore Jquery Bugs SQL存储过程事务嵌套 官网SQL事务锁 2345天气插件 Json数据查看 C++ jquery-plugin-validate 博学谷(传智播客) Swift视频 IOS代码论坛 SWIFT设计模式 操作系统下载 AngularJS VueJS ASPNETCORE 前端题库 Node.js ASPNETCORE 腾讯课堂 SwiftUI SwiftUI疑问解答 ADO.NET SMO 数字化企业网 Unicode码查询 Redis使用文档 .NET 微服务:适用于容器化 .NET 应用程序的体系结构 .NETCore5.0微软官方文档 CSS3.0 在 ASP.NET Core 中配置 Windows 身份验证 Maven使用教程 Maven Repository Thymeleaf Thymeleaf中文CSDN Spring官方文档 Spring中文文档 SpringBoot SpringData SVG在线设计工具 SVG教程01 SVG教程02 fontawesome图标库 mybatis官网 mybatis-spring中文 mysql教程 python教程 python的scrapy教程01 python的scrapy教程02 VS开发python xpath教程 腾讯向量数据库教程 JSZip浏览器内存中创建文件与文件夹 axios的使用文档 SheetJS(JS操作excel)的使用文档

huaan011

 

SQL SERVER 2000数据库置疑处理

SQL SERVER 2000数据库置疑处理

 
    由于服务器意外的断电,导致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
到此数据库置疑问题解决。
 

posted on 2021-02-22 11:42  华安  阅读(542)  评论(0编辑  收藏  举报

导航