sql2000 数据库置疑解决

解决由于sql2000日志文件引起的“置疑”。

日志有错误--------重新附加提示日志有错误。

日志文件丢失-----丢失了.ldf文件,只有.mdf文件的数据库重建。

步骤:

一、备份“置疑”数据库的数据文件,因为日志文件.ldf出错,可以只备份.mdf文件。

二、打开企业管理器(SQL Server Enterprise Manager),删除“置疑”数据库,如果提示删除错误,可以重启数据库服务器,然后再试。

三、在企业管理器中,新建同名数据库(假如数据库为test),注意建立的数据库名称,还有数据文件名要保持和原数据库一致。

四、停止数据库服务器。

五、将刚才新建数据库生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库.mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。

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

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

use master  
  go  
  sp_configure  ‘allow updates‘,1  
  go    
  reconfigure with override  
  go

八、设置test为紧急修复模式 。 
  update sysdatabases set status=-32768 where dbid=DB_ID(‘test‘)   
此时可以在企业管理器(SQL Server Enterprise Manager)里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表。

九、下面执行真正的恢复操作,用dbcc rebuild_log命令来重建数据库日志文件(重建路径根据你实际的数据库路径来)。   
  dbcc rebuild_log(‘test‘,‘C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf‘)

执行过程中,如果遇到下列提示信息:  
  服务器: 消息 5030,级别 16,状态 1,行 1  
  未能排它地锁定数据库以执行该操作。  
  DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

说明您的其他程序正在使用该数据库,如果刚才您在八步骤中使用企业管理器打开了test库的系统表,那么退出企业管理器就可以了。  
  正确执行完成的提示应该类似于:  
  警告: 数据库 ‘test‘ 的日志已重建。已失去事务的一致性。应运行   DBCC   CHECKDB   以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。  
  DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。  
  此时打开在企业管理器里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。

十、验证数据库一致性。(次步骤可省略)
  dbcc checkdb(‘test‘)  
  一般执行结果如下:  
  CHECKDB  发现了 0 个分配错误和 0 个一致性错误(在数据库 ‘test‘中)。  
  DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

十一、设置数据库为正常状态  
  sp_dboption ‘test‘,‘dbo use only‘,‘false‘
  如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。

十二、最后一步,我们要将步骤七中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在企业管理器里面恢复,也可以使用如下语句完成  
  sp_configure ‘allow updates‘,0  
  go    
  reconfigure with override  
  go

对于只有.mdf文件的sql2000数据库恢复,从第三步开始做就行了。

原文来自:http://blog.sina.com.cn/s/blog_5814f4470100d1cy.html

原文地址:https://www.cnblogs.com/hjes/p/11133527.html

时间: 2024-08-03 20:28:55

sql2000 数据库置疑解决的相关文章

mssql2000数据库置疑解决

1.新建一个同名的数据库2.再停掉sql server(注意不要分离数据库)3.用原数据库的数据文件覆盖掉这个新建的数据库4.再重启sql server5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了. USE MASTERGO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH

数据库置疑解决办法

方法一:数据库恢复 日志文件错误处理数据库 : MSSQL SERVER 2000   企业版 问题描述: 数据库置疑.数据库备份文件损坏.将数据库物理文件(*.MDF)拷贝出来 ,使用数据库附加功能,附加失败. 提示错误: 服务器: 消息 1813,级别 16,状态 2,行 1 未能打开新数据库 'test'.CREATE DATABASE 将终止. 设备激活错误.物理文件名 'd:\test_log.LDF' 可能有误. 进查找相关资料 解决方案如下: A.我们使用默认方式建立一个供恢复使用

思迅/泰格/科脉/收银软件/商超软件数据库修复解决断电造成损坏的mdb\dat文件SQL数据库 置疑 修复 恢复

拥有专业管理软件数据库修复技术工程师,专业提供管家婆.美萍.思迅.科脉等管理软件技术服务,电脑维修\重装系统技 术服务.无法登陆打不开等出错问题处理(连接失败,请输入正确的服务器名,SQL Server不存在或拒绝访问,用户sa登陆失败等等),数据损坏修复 .软件外网远程访问,年结存.软件版本升级,解决升级数据库失败错误.美萍软件到期升级.断电数据库修复(不可识别的数据库格式.连接数据库失败)等技术服务.各类管理软件.电脑技术服务等.  案例分析 [单位名称] 山东某连锁超市泰格收银软件 [数据

SQL SERVER 2000数据库置疑处理

由于服务器意外的断电,导致SQL SERVER服务器上数据库出现“置疑”而无法使用,通过网上搜索,找到以下方法解决问题,这里记录一下: 产生数据库置疑的时侯,数据库文件和日志文件都是存在的,如果数据库文件都不存在了,则要另当处理. 1.停止数据库服务器,将数据库MDF文件和LDF文件复制备份一份 2.启动数据库服务器,删除置疑的数据库 3.仅用备份的数据库MDF文件附加数据库,sp_attach_db或者sp_attach_single_file_db可以附加数据库,出现类似下面的提示信息: 设

数据库置疑问题解决

资料一 1.停止数据库server,将数据库MDF文件和LDF文件复制备份一份2.启动数据库server,删除置疑的数据库3.仅用备份的数据库MDF文件附加数据库,sp_attach_db或者sp_attach_single_file_db能够附加数据库,出现相似以下的提示信息:设备激活错误.物理文件名称 'C:/Program Files/Microsoft SQL Server/MSSQL/data/myDb_Log.LDF' 可能有误.已创建名为 'C:/Program Files/Mic

SQL2005数据库置疑处理

2005中遇到置疑.丢失日志时按照网上常见的MSSQL2000修复方法来做, 结果发现行不通,甚至连一步都做不下去.其实,在MSSQL2005在处理置疑问题的思 路与MSSQL2000是一致的,但具体到一些语句上MSSQL2005 有了很大的变动.我们以 一个被误删日志文件的数据库为例: 1.MSSQL2000在日志被误删除后会提示置疑(suspect),而在MSSQL2005中却没有特 殊标志,但图标前的”+”不见了当你查询数据库属性时会有Error:945提示: 2.顺着老思路,首先我们想到

数据库置疑处理文档

数据库置疑处理文档 修订记录 日期 Date 修订版本 Revision Version 修改描述 Change Description 作者 Author 2010-04-26 1.0 格式化 UltraSQL 目 录     一. 知识点简介     1.    DBCC 中的 CHECKDB 命令     2.    重置置疑状态     3.    sp_add_log_file_recover_suspect_db    4.    DBCC 中的 DBRECOVER 命令     二

win7系统安装sql2000数据库时没有反应,不出来安装界面?

今天一个客户反馈软件连不上数据库,经检查发现SQL服务启动不了,懒得查原因就把SQL2000卸载了,他们电脑是win7的系统,本来正常来说安装SQL2000数据库是没啥问题的,可是特别奇怪的是,这台win7电脑在安装sql2000数据库时侯就是没有反应,不出来安装界面?在任务管理器的进程里是有SQL安装进程的,但是没有安装界面出来 ,没办法点下一步继续运行,怎么办呢?问度娘,主要都是下面这个方案1: 1.先确定你的安装包在英文目录下,如下图所示我存放的路径在:E:\baiduyundownloa

SqlServer定时备份数据库和定时杀死数据库死锁解决

PS:Sqlserver 2008 R2,windows 8 64位 1.备份数据库 因为要备份,我们就要用到Sqlserver的代理,默认数据库的代理是不开启的.需要我们手动开启的. 执行备份数据库脚本,现在将脚本公布,其实将这一段代码中需要保存的文件路径和数据库名称替换一下就可以实现备份了.但是还没有达到定时备份的目的 ? 1 2 3 4 5 6 7 8 9 10 11 --自动备份并保存最近5天的SQL数据库作业脚本 宋彪 20130310 DECLARE @filename VARCHA