天天看點

SQL server 2000及SQL server 2005 資料庫置疑解決辦法

以資料庫mpcyerp為例,做對資料庫置疑的處理方法說明:

一、将mpcyerp_Data.MDF檔案拷貝出來并備份 在企業管理器中建立一個同名的新資料庫mpcyerp

二、停止SQL Server服務,删除新資料庫的兩個檔案(mpcyerp_Data.MDF和mpcyerp_Log.ldf檔案),把備份中的mpcyerp_Data.MDF拷貝到建立新資料庫檔案夾内

三、在查詢分析器中逐漸執行以下sql(SqlServer2000)

USE MASTER 

GO 

--允許對系統目錄直接修改

SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE 

GO 

--設定為緊急修複模式 mpcyerp為資料庫名

UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='mpcyerp'  

Go 

--mpcyerp為資料庫名

sp_dboption 'mpcyerp', 'single user', 'true' 

Go 

--重建資料庫日志檔案 mpcyerp為資料庫名 

--D:\Program Files\Microsoft SQL Server\MSSQL$SQL2000\Data為資料庫檔案存放位址

dbcc rebuild_log('mpcyerp','D:\Program Files\Microsoft SQL Server\MSSQL$SQL2000\Data\mpcyerp_Log.ldf')

Go

--驗證資料庫一緻性 mpcyerp為資料庫名

DBCC CHECKDB('mpcyerp') 

Go 

--mpcyerp為資料庫名

update sysdatabases set status=28 where name='mpcyerp'

Go 

sp_configure 'allow updates', 0 reconfigure with override 

Go 

--mpcyerp為資料庫名

sp_dboption 'mpcyerp', 'single user', 'false' 

三、SqlServer2005及以上版本處理辦法:

USE MASTER 

GO 

1.修改資料庫為緊急模式

ALTER DATABASE mpcyerp SET EMERGENCY

Go

2.使資料庫變為單使用者模式

ALTER DATABASE Sharepoint_Config SET SINGLE_USER

Go

3.重建資料庫日志檔案 mpcyerp為資料庫名 

alter database mpcyerp rebuild log on (name=mpcyerp_log,filename='D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\mpcyerp_log') 

Go

4.驗證資料庫一緻性 mpcyerp為資料庫名

DBCC CHECKDB('mpcyerp') 

Go

5.使資料庫變回為多使用者模式

ALTER DATABASE mpcyerp SET MULTI_USER 

Go

6.将資料庫從緊急模式恢複為正常模式

ALTER DATABASE mpcyerp SET ONLINE

Go