sql2019資料庫突然置疑這是什麼原因造成的我先介

2021-12-28 23:07:12 字數 3368 閱讀 1134

1樓:匿名使用者

在ms sqlserver中一直有這樣的問題,sqlserver的狀態"置疑",原因約有以下幾條:

1.錯誤的刪除日誌;

2.硬體(hd)損壞,造成日誌和資料檔案寫錯誤;

3.硬碟的空間不夠,比如日誌檔案過大;

解決辦法:

最簡單的辦法是有資料庫的全備份,然後恢復即可.

步驟:1. 刪除原始的資料庫:

use master

godrop database db_suepect

2.建立同名的資料庫:

use master

gocreate database db_suspect

on( name = dbname_dat,

filename = 'c:',

size = 10,

filegrowth = 5 )

log on

( name = 'dbname_log',

filename = 'g:',

size = 5mb,

filegrowth = 5mb )

go3.恢復資料庫:

restore database db_suspect

from dbname_backup.dat

4.資料庫完整性檢測:

dbcc checkdb('db_suspect')

5.重新啟動mssqlserver服務.

如果沒有全備份,那就要用一些特殊的方法:

1.設定資料庫為緊急模式

use master

gosp_configure 'allow updates', 1

reconfigure with override

goupdate sysdatabases set status = 32768 where name = 'db_suspect'

go2.停掉sql server服務:

.net stop mssqlserver

3.把原始資料庫的資料檔案dbname_dat.mdf,dbname_log.ldf移走:

4.啟動sql server服務:

.net start mssqlserver

5.重新建立一個同名的資料庫db_suspect;

use master

gocreate database db_suspect

on( name = dbname_dat,

filename = 'c:',

size = 10,

filegrowth = 5 )

log on

( name = 'dbname_log',

filename = 'g:',

size = 5mb,

filegrowth = 5mb )

go6.設定資料庫執行在單使用者的模式:

use master

goalter database db_suspect set single_user

go7.停掉sql服務:

.net stop mssqlserver

8.把原來的資料檔案再覆蓋回來:

9.啟動sql server服務:

.net start mssqlserver

10.重新設定sqlserver的狀態:

use master

goexec sp_resetstatus "db_suspect"

11.資料庫完整性檢測:

dbcc checkdb('db_suspect')

12.恢復資料庫為多使用者模式:

use master

goalter database db_suspect set multi_user

go13.恢復sqlserver原始的配置:

use mater

goupdate sysdatabases set status = 4194320 where name = 'db_suspect'

go14.配置sqlserver不允許更新系統表:

use master

gosp_configure 'allow updates', 0

reconfigure with override

go15.重新啟動mssqlserver服務:

最好重新啟動作業系統

16.備份資料庫:

可以通過sqlserver企業管理器或t-sql.需要備份master和db_suspect

補充一點,如果用domain\user時,要注意對.mdf.ldf的所在目錄的許可權.

靈驗指令碼

遇到這種資料庫置疑情況,就執行下面這個指令碼,屢試不爽:

--before running any script, run the following to set the

master database to allow updates

use master

gosp_configure 'allow updates', 1

goreconfigure with override

go--run the following script

update master..sysdatabases set status = status ^ 256

where name = 'database_name'

--run the following script

exec sp_resetstatus database_name

--stop and start the msdtc at this stage

--after the procedure is created, immediately disable

updates to the system tables:

exec sp_configure 'allow updates', 0

goreconfigure with overridego

2樓:匿名使用者

我也是做軟體的,我遇到資料庫質疑最多的情況就是突然停電或電壓不穩造成的。目前還沒有遇到其他原因的結果。目前接觸過的主句哭質疑約十幾例,一般都是日誌檔案錯誤,用有損修復一般不會出現資料丟失,遇到一次資料檔案質疑(且我採用的是檔案組),資料一點沒剩。

3樓:匿名使用者

sql2000資料庫版本太低!換個sql2005資料庫

4樓:匿名使用者

這個問題我也遇到,怎麼來的不知道,但是你可以先移除然後重新附加

sql2000資料庫在操作過程中突然斷電引起的置疑?

5樓:匿名使用者

只有重灌。

先要拷貝.dat和.log兩個檔案.

sql2019資料庫密碼怎麼修改

可以直接使用視覺化的sql server 資料庫管理工具進行修改,也可用用命令直接修改 exec sp password old password newpassword sa 下面是sql server 2005版本,但2008和2005介面差不多 登入sql server 2008 資料庫管理系...

關於sql 2019 中master資料庫檔案損壞資料恢

兄弟,這可能要麻煩 我分析是中病毒時間長了,破壞了很多.exe和資料檔案導致的.由於防毒時已經不能把病毒檔案分離出來,破壞了很多檔案,導致系統的崩潰和資料的丟失.建議 如果資料真的很重要的話.去專業的資料恢復公司找正規公司的技術人員做恢復.兄弟,我就這水平了,就這種辦法了.你最好別自己亂弄硬碟,如果...

平時不用資料庫,怎樣避免sql2019對電腦造成卡頓

下面是mysql的。如果你要控制sqlserver的。建議你到系統服務中找到sqlserver2005的服務名,然後修改下面相關欄位的服務名為你的sqlserver2005服務名就可以了。將下面內容儲存為批處理檔案 bat 格式檔案。大致意思是服務是關閉的狀態下你雙擊它就會啟動,若是啟動狀態下你雙擊...