SQL Server置疑資料庫解決方法

2021-09-08 07:45:45 字數 4077 閱讀 7674

方法一:

現象:資料庫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 啟...