sql2000数据库置疑造成的原因以及如何解决置疑
造成数据库置疑一般有以下几点:
1)电脑非法关机或者意外停电;
2)磁盘有坏道或者损坏;
3)数据库感染病毒,日志文件损坏;
4)非正常情况下移动数据库文件
5)系统,硬盘,经常强制性关机(如断电)类似情况都会
建议:电网不稳定的地区配备UPS电源,电脑禁止非法关机,做数据库维护计划定期自动备份,电脑定期做好病毒查杀。
解决步骤:
解决由于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数据库恢复,从第三步开始做就行了。
sql2000数据库置疑造成的原因以及如何解决置疑的更多相关文章
- win7系统安装sql2000数据库时没有反应,不出来安装界面?
今天一个客户反馈软件连不上数据库,经检查发现SQL服务启动不了,懒得查原因就把SQL2000卸载了,他们电脑是win7的系统,本来正常来说安装SQL2000数据库是没啥问题的,可是特别奇怪的是,这台w ...
- sql2000数据库误删除后自行恢复二次覆盖成功恢复
sql2000数据库误删除后自行恢复二次覆盖成功恢复 [数据恢复故障描述] 今天接到一个客户电话,他的速达sql2000数据库,数据库误删除了,关键之前还没有备份过.他就想自己尝试恢复,使用网上下载的 ...
- 全易通人事考勤工资验厂管理系统软件创建连接SQL2000数据库的操作方法和说明
全易通人事考勤工资验厂管理系统软件创建连接SQL2000数据库的操作方法和说明.全易通人事考勤工资验厂管理系统软件,有2种数据库,一个是ACCESS,另一个是SQL.不过由于ACCESS数据库比较小, ...
- mysql数据库死锁的产生原因及解决办法
这篇文章主要介绍了mysql数据库锁的产生原因及解决办法,需要的朋友可以参考下 数据库和操作系统一样,是一个多用户使用的共享资源.当多个用户并发地存取数据 时,在数据库中就会产生多个事务同时存取同 ...
- SQL2000数据库定期自动备份与修改
SQL2000数据库定期自动备份与修改 http://www.veryhuo.com 2009-11-19 烈火网 投递稿件 我有话说 在SQL server企业管理器中,可以设置数据库的定期自动 ...
- (转)MySQL出现同步延迟有哪些原因?如何解决?
http://oldboy.blog.51cto.com/2561410/1682147----MySQL出现同步延迟有哪些原因?如何解决? 原文:http://www.zjian.me/mysql/ ...
- 常见WEB开发安全漏洞 原因分析及解决
目 录 1 会话标识未更新 3 1.1 原因 3 1.2 解决 3 2 SQL注入 3 2.1 原因 3 2.2 解决 5 3 XSS跨站脚本编制 5 3.1 原因 5 3.2 解决 5 4 XSRF ...
- sql server 还原数据库后,删除用户,提示数据库主体在该数据库中拥有架构,无法删除解决方法
将另一台服务器上的数据库备份文件,在现在用的这台服务器上还原之后,再创建相同的用户名,提示用户已存在 想将之前的用户先删除掉,却提示“数据库主体在该数据库中拥有架构,无法删除解决方法” 在网上找到方法 ...
- golang github.com/go-sql-driver/mysql 遇到的数据库,设置库设计不合理的解决方法
golang github.com/go-sql-driver/mysql 遇到的数据库,设置库设计不合理的解决方法,查询中报了以下这个错 Scan error on column index 2: ...
随机推荐
- HUAS Summer Contest#4 D题 DP
Description Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了.要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的 ...
- 集训第四周(高效算法设计)P题 (构造题)
Description There are N<tex2html_verbatim_mark> marbles, which are labeled 1, 2,..., N<te ...
- BNUOJ 1589 Closest Common Ancestors
Closest Common Ancestors Time Limit: 2000ms Memory Limit: 10000KB This problem will be judged on PKU ...
- hihoCoder#1048 状态压缩·二
原题地址 位运算的状态压缩太操蛋了,很容易出错...又是数组没开够导致诡异现象(明明某个值是1,莫名其妙就变成0了),害我debug一整天!fuck 代码: #include <iostream ...
- eclipse安装Aptana 插件,并设置使之能提示css,js,html,帮助编写代码
在Eclipse 4.2 上安装 Aptana 3.2遇到的错误 就是找不到什么文件来着,我在装maven的时候也遇到了. 烦人... (这文章是我还在用eclipse的时候,为了编写js代码的时候提 ...
- POJ 3255_Roadblocks
题意: 无向图,求单源次短路,每条边可以走多次. 分析: 对于每个点记录最短路和次短路,次短路可以是由最短路+边或者是次短路+边更新而来.在更新每个点的最短路时,相应更新次短路,如果最短路更新了,就令 ...
- JSTL-XML标签库
主页:http://www.cnblogs.com/EasonJim/p/6958992.html的分支页. 一.<x:out> <x:out>标签显示XPath表达式的结果, ...
- SAS编程基础 - 数据获取与数据集操作(1)
1. 数据来源 SAS数据来源主要有两种:一是通过input语句创建,另外一种方式是通过外部数据文件获取. 1.1 libname 1.2 odbc 1.3 passthrough 1.4 impor ...
- Port forwarding with xinetd Ask
https://stackoverflow.com/questions/21716673/port-forwarding-with-xinetd --------------------------- ...
- vuex 存值 及 取值 的操作
1.传值 // 定义参数 let params = { workItemId: workItemId, flowInstId: flowInstId, itemStatus: itemStatus, ...