林老师漫画第1活:SQL2000及SQL2005数据库置疑(数据库损坏)的处理办法

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 03:28:40
数据库技术(3):SQL2000及SQL2005数据库置疑(数据库损坏)的处理办法2009年05月22日 星期五 12:30

SQL2000及SQL2005数据库挂起/数据库置疑的处理办法

(挽救SQL2000及SQL2005数据库损坏的方法)

当程序启动时,若提示数据库错误,可在SQL Server的“企业管理器”中察看数据库状态,如果数据库的图标显示为一个灰色的小桶状(在SQL 7.0中和英文版SQL 2000中标示为“Suspend”,在中文版中标示为“置疑”),则表示该数据库部分信息已损坏,数据库管理器不能正确识别,可以通过以下方式来尝试解决。

条件:原库的 .mdf 文件是完好的即可。

1) 首先进行数据备份,将SQL Server的服务(任务栏右下角的绿色箭头) Stop 停止,然后备份MS SQL Server的安装目录下的\data子目录,**注意要备份整个目录**

2) 查看磁盘空间,保证存放数据库的磁盘有足够的剩余空间;

3) 再将SQL Server的服务(任务栏右下角的绿色箭头) Start 启动。运行查询分析器(isqlw),以用户sa登录;

SQL Server的查询分析器中按以下步骤执行

假设数据库名为: [DATABASE NAME:数据库名称] (如果您的数据库名不是 [DATABASE NAME:数据库名称] ,需要更改以下语句中相应的 [DATABASE NAME:数据库名称] 为您的数据库名称)

1.把数据库设成紧急状态:

然后在SQL查询分析器中,选到master数据库,输入以下语句执行(一条一条执行)

   sp_configure 'allow',1

   reconfigure with override

   update sysdatabases set status=32768 where name=' [DATABASE NAME:数据库名称] '

2.重建日志文件(请将路径换成你的数据文件路径)

D:\MSSQL$PROD\Data\为存放数据库文件的路径

[DATABASE NAME:数据库名称] _log2.ldf为一个新的不存在的文件,在执行以下语句时将自动建立

dbcc rebuild_log(' [DATABASE NAME:数据库名称] ','D:\MSSQL$PROD\Data\ [DATABASE NAME:数据库名称] _log2.ldf')

3.取消紧急模式(一条一条执行)

update sysdatabases set status=0 where name=' [DATABASE NAME:数据库名称] '

restore database [DATABASE NAME:数据库名称] with recovery

sp_configure 'allow',0

reconfigure with override

4.重起sql server

5.ok

请在操作前务心备份,本博不对您的操作负任何责任。如有不解之处,可来信赐教交流.   

我的邮箱:ntdsoft@126.com

原文出自深圳科脉技术有限公司 http://www.kemai.com.cn/的技术文章,我作了改动。在此对深圳科脉的朋友们表示感谢。

注:

对于安装数据库时出现挂起的提示后不能安装的问题,请参见本博:

安装SQL2000及SQL2005数据库挂起的处理解决办法

http://hi.baidu.com/ntdsoft/blog/item/6555bbfb91f9496c034f561c.html