方法一:
現象:資料庫log日誌太大了,shrink不掉。於是想把資料庫檔案卸下來,刪除log,再附加上。附加失敗。
提示錯誤:
伺服器: 訊息 1813,級別 16,狀態 2,行 1
未能開啟新資料庫 'metadb'。create database 將終止。
裝置啟用錯誤。物理檔名 'd:\metadb.ldf' 可能有誤。
環境:mssql server 2000 企業版
解決過程:
1.建乙個新庫newdb
2.停掉資料庫。刪除新庫的log檔案,講metadb.mdf覆蓋newdb.mdf。
3.啟動資料庫伺服器。資料庫newdb的狀態為「置疑」。
4. 允許對系統目錄直接修改
use master
go sp_configure 'allow updates',1
go reconfigure with override
go update sysdatabases set status=-32768 where dbid=db_id('newdb')
5.重建log
dbcc rebuild_log('newdb','c:\program files\microsoft sql server\mssql\data\newdb_log.ldf')
6.dbcc檢查
dbcc checkdb('newdb')
7.設定資料庫為正常狀態
sp_dboption 'newdb','dbo use only','false'
8 不允許對系統目錄直接修改
sp_configure 'allow updates',0
go reconfigure with override go
方法二:
解決辦法:
這是最簡單的辦法是有資料庫的全備份,然後恢復即可。
步驟:
1. 刪除原始的資料庫:
use master
go
drop database db_suepect
2.建立同名的資料庫:
use master
go
create database db_suspect
on
( name = dbname_dat,
filename = 'c:',
size = 10,
filegrowth = 5 )
log on
( name = 'dbname_log',
filename = 'g:',
size = 5mb,
filegrowth = 5mb )
go
3.恢復資料庫:
restore database db_suspect
from dbname_backup.dat
4.資料庫完整性檢測:
dbcc checkdb('db_suspect')
5.重新啟動mssqlserver服務.
如果沒有全備份,那就要用一些特殊的方法:
1.設定資料庫為緊急模式
use master
go
sp_configure 'allow updates', 1
reconfigure with override
go
update sysdatabases set status = 32768 where name = 'db_suspect'
go
2.停掉sql server服務:
net stop mssqlserver
3.把原始資料庫的資料檔案dbname_dat.mdf,dbname_log.ldf移走:
4.啟動sql server服務:
net start mssqlserver
5.重新建立乙個同名的資料庫db_suspect;
use master
go
create database db_suspect
on
( name = dbname_dat,
filename = 'c:',
size = 10,
filegrowth = 5 )
log on
( name = 'dbname_log',
filename = 'g:',
size = 5mb,
filegrowth = 5mb )
go
6.設定資料庫執行在單使用者的模式:
use master
go
alter database db_suspect set single_user
go
7.停掉sql服務:
net stop mssqlserver
8.把原來的資料檔案再覆蓋回來:
9.啟動sql server服務:
net start mssqlserver
10.重新設定sqlserver的狀態:
use master
go
exec sp_resetstatus "db_suspect"
11.資料庫完整性檢測:
dbcc checkdb('db_suspect')
12.恢復資料庫為多使用者模式:
use master
go
alter database db_suspect set multi_user
go
13.恢復sqlserver原始的配置:
use mater
go
update sysdatabases set status = 4194320 where name = 'db_suspect'
go
14.配置sqlserver不允許更新系統表:
use master
go
sp_configure 'allow updates', 0
reconfigure with override
go
15.重新啟動mssqlserver服務:
最好重新啟動作業系統
16.備份資料庫:
可以通過sqlserver企業管理器或t-sql.需要備份master和db_suspect
原文出處:
SQL Server 資料庫置疑的處理方法
備份資料檔案,然後按下面的步驟處理 1.新建乙個同名的資料庫 資料檔案與原來的要一致 2.再停掉sql server 注意不要分離資料庫 3.用原資料庫的資料檔案覆蓋掉這個新建的資料庫 4.再重啟sql server 5.此時開啟企業管理器時會出現置疑,先不管,執行下面的語句 注意修改其中的資料庫名...
Sql Server置疑資料庫解決方法
sql server置疑資料庫解決方法2007 12 27 09 34 方法一 現象 資料庫log日誌太大了,shrink不掉。於是想把資料庫檔案卸下來,刪除log,再附加上。附加失敗。提示錯誤 伺服器 訊息 1813,級別 16,狀態 2,行 1 未能開啟新資料庫 metadb create da...
SQL SERVER 2000資料庫置疑處理
由於伺服器意外的斷電,導致sql server伺服器上資料庫出現 置疑 而無法使用,通過網上搜尋,找到以下方法解決問題,這裡記錄一下 產生資料庫置疑的時侯,資料庫檔案和日誌檔案都是存在的,如果資料庫檔案都不存在了,則要另當處理。1 停止資料庫伺服器,將資料庫mdf檔案和ldf檔案複製備份乙份 2 啟...