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 格式檔案。大致意思是服務是關閉的狀態下你雙擊它就會啟動,若是啟動狀態下你雙擊...