2024年4月15日发(作者:)

sqlserver2000 数据库置疑的 4 种解决方法

方法一 :

1•停止SQL Server的服务撚后备份 MS SQL Server的安装目录下的data子目录.

注意 :整个目录 目录备 份或只 备份 data 目 录下置 疑数据 库的两 个文件 ,一个数 据文件 dbname_,

—个dbname_(也有可能非此命名),同时查看磁盘空间是否有足够的 空间;

2. 启用SQL Server的服务。打开查询分析器(Query Analyzer)的工具,以用户sa登录;

3.

F5),

输入如下指令后点工具栏上的绿色箭头运行 (快捷键

use master

go

sp_resetstatus dbname

go

4. 运行完毕后退出此工具 停止SQL Server的服务.

5. 在 MS SQL Server 的安装目录下, 有一个 data 子目录,其中存放数据文件, 包括 SQL Server 和

本系统的数据文件,删除置疑数据库的日志文件 dbname_( 也有可能非此命名 ).

6. 启动SQL Server的服务.

7. 打开企业管理器(Enterprise Manager)的工具,查看数据库(database)节点下的dbname是否恢 复。

注:请将 dbname 换成你的数据库名称 .

方法二

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

2. 打开 SQL Server 的查询分析器 (Query Analyzer),以用户 sa 登录;

3.

F5),运行完毕后退出此工具.

输入如下指令后点工具栏上的绿色箭头运行 (快捷键

use master

go

sp_resetstatus dbname

go

4. 停止 SQL Server 的服务,再重新启动 SQL Server 服务.

5. 打开 SQL Server 的查询分析器 (Query Analyzer),以用户 sa 登录。输入如下指令后点工具 栏上的

绿色箭头运行,运行完毕后退出此工具 :

use master

go

DBCC DBRECOVER (dbname)

go

6. 打开 SQL Server的企业管理器(Enterprise Manager),查看database下的dbname是否恢复。 注:请

将 dbname 替换为你的数据库名称 .

方法三

如上述两种方法都不能恢复 ,或出现故障后在 SQL Server 的企业管理器中的数据库节点下看 不到你的数据库 ,

表示你的数据库出现较大的错误或故障 ,请按下述步骤操作尝试恢复 .

1. 停止 SQL Server 服务 .

2. 备份数据库文件

在 MS SQL Server 的安装目录下, 有一个 data 子目录, 其中存放数据文件, 包括 SQL Server 和本系统

的数据文件,把数据文件 dbname_ 和日志文件 dbname_ 备份起来 .

3. 启动 SQL Server 服务 , 打开企业管理器 , 删除数据库 ,通常 data 子目录下 的数据文件

dbname_ 和日志文件 dbname_ 都会被删除 ,把备份好的数据文件和日志文件再 复制一份到

data 子目录下 .

4. 打开查询分析器 , 执行如下 SQL 语句

use master

go

EXEC sp_attach_db @dbname = dbname,

@filename1 = 'c:Program FilesMicrosoft SQL ServerMSSQLDatadbname_', @filename2

= 'c:Program FilesMicrosoft SQL ServerMSSQLDatadbname_' go

5. 再在企业管理器中查看你的数据库是否恢复 .

注 : 请把 dbname 换为你的数据库名称

@filename1 是数据文件的路径地址 .

@filename2 是日志文件的路径地址 .

方法四 :

如果还是不能恢复 :如方法三执行时 ,查询分析器返回错误信息 ,请尝试以下步聚恢复数据库 .

1•停止SQL Server的服务

,

备份SQL Server安装目录下的data子目录下故障数据库的两个文

件, 一个数据文件 dbname_, 一个 dbname_( 也有可能非此命名 ), 同时查看磁盘空 间是否有

足够的空间;

2•启动SQL Server服务(如已停止),创建一个新的数据库,命名为原来数据库的名字。

3.停止 SQL Server

4•把老数据库的 MDF文件(dbname_)替换新数据库的相应的 MDF文件,并把 LDF 文件

(dbname_)删除。

5. 重新启动SQL Server服务,然后运行如下命令:

Use Master

go

sp_configure 'allow updates', 1 reconfigure with override go begin tran

update sysdatabases set status = 32768 where name = 'db_name'

--Verify one row is updated before committing

commit tran

go

6.

服务,然后运行如下命令

停止SQL然后重新启动SQL Server

(更换日志文件路径地址): use

master

go

DBCC TRACEON(3604)

DBCC REBUILD_LOG('db_name','c:Program FilesMicrosoft

ServerMSSQLDatadb name_)

go

7. 停止 SQL 然后重新启动 SQL Server 服务,然后运行: use master go

update sysdatabases set status = 8 where name = 'db_name' go

sp_configure 'allow updates', 0 reconfigure with override go

8. 运行 dbcc checkdb(db_name) 检查数据库的完整性 修复数库

注:都要把 dbname 替换成真实的数据库名字。

SQL