A. SQL2000資料庫突然置疑 這是什麼原因造成的 我先介紹下現象。
在MS SQLSERVER中一直有這樣的問題,SQLSERVER的狀態"置疑",原因約有以下幾條:
1.錯誤的刪除日誌;
2.硬體(HD)損壞,造成日誌和數據文件寫錯誤;
3.硬碟的空間不夠,比如日誌文件過大;
解決辦法:
最簡單的辦法是有資料庫的全備份,然後恢復即可.
步驟:
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
補充一點,如果用DOMAIN\USER時,要注意對.MDF.LDF的所在目錄的許可權.
靈驗腳本
遇到這種資料庫置疑情況,就運行下面這個腳本,屢試不爽:
======================================================
--before running any script, run the following to set the
master database to allow updates
USE master
GO
sp_configure 'allow updates', 1
GO
RECONFIGURE 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 procere is created, immediately disable
updates to the system tables:
exec sp_configure 'allow updates', 0
GO
RECONFIGURE WITH OVERRIDE
GO
B. sql server 2000 資料庫質疑後重新開機後恢復正常是怎麼回事
SQL
Server2000資料庫出現質疑有以下原因:
(1)
資料庫文件
被刪除
(2)轉移了資料庫文件
(3)重新命名了數神資料庫文件
(4)由於文件夾設置了安全訪問,歲喚導致程序無法訪問
(5)由於
電腦系統
的原因,導致SQL
Server無法正常訪問資料庫文件
從你的情況看,有可能是系統的某種原因導致第一次沒有正常與資料庫文件通信
但重啟後通信乎瞎凱成功,這是比較正常的事情
C. 資料庫的數據提示質疑是怎麼回事能修復嗎
資料庫置疑一般是由於SQL被重裝,但是數據目錄被設置在另外一個盤並且沒有被刪除,而導致的,或者是由於資料庫的.log文件不存在了,這時你可以使用以下的方法來取消置疑!USE MASTER GO SP_CONFIGURE \'ALLOW UPDATES\',1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME=\'置疑的資料庫名\' Go sp_dboption \'置疑的資料庫名\', \'single user\', \'true\' Go DBCC CHECKDB(\'置疑的資料庫名\') Go update sysdatabases set status =28 where name=\'置疑的資料庫名\' Go sp_configure \'allow updates\', 0 reconfigure with override Go sp_dboption \'置疑的資料庫名\', \'single user\', \'false\' Go
D. 如何修復SQL資料庫置疑 修復SQL資料庫置疑方法
1、在實際的操作中由於突然斷電或者突然斷網造成資料庫置疑(在企業管理器中資料庫後面出現置疑兩個字),下面我們通過以下方法來進行修復置疑的資料庫。
2、我們使用默認方式建立一個供恢復使用的資料庫(如test)。可以在SQL Server Enterprise Manager裡面建立。
3、停掉資料庫伺服器。
4、將剛才生成的資料庫的日誌文件test_log.ldf刪除,用要恢復的資料庫mdf文件覆蓋剛才生成的資料庫數據文件test_data.mdf。
5、啟動資料庫伺服器。此時會看到資料庫test的狀態為「置疑」。這時候不能對此資料庫進行任何操作。
6、設置資料庫允許直接操作系統表。此操作可以在SQL Server Enterprise Manager裡面選擇資料庫伺服器,按右鍵,選擇「屬性」,在「伺服器設置」頁面中將「允許對系統目錄直接修改」一項選中。也可以使用如下語句來實現。
E. 用友U8提示賬套所對應的年度資料庫不存在,有沒有什麼辦法能恢復
可以搜索一下安裝目錄下面有沒有ZT***文件夾,再看看裡面有瞎高哪沒念尺有UFDATA.LDF和UFDATA.MDF這兩個文件,如果有的話,可以用資料庫置疑修復工具修復或進磨碼資料庫,重新附加。
F. SQL2000資料庫msdb質疑怎麼處理
原因:非正常程序中斷或錯誤結束SQL服務,都會導致MSDB資料庫被「置疑」。
Msdb 資料庫供SQLServer 代理程序調度警報和作業以及記錄操作員時使用。比如,我們備份了一個資料庫,會在表backupfile中插入一條記錄,以記錄相關的備份信息。
但因為Msdb資料庫並未存儲特別重要的信息,因此可以從別的機器拷貝一份相同的msdbdata.mdf和msdblog.ldf覆蓋掉即可。
解決步驟
A伺服器為被「置疑」的伺服器;B伺服器上裝有和A伺服器相同版本的資料庫軟體。版本是SQL SERVER 2000。
步驟1、停止B伺服器上的SQL SERVER 服務,拷貝「msdbdata.mdf」培賀和「msdblog.ldf」文件。
步驟2、停止A伺服器上的SQL SERVER 服務,將從B伺服器上拷貝「msdbdata.mdf」和「msdblog.ldf」文件覆蓋掉A伺服器上的這兩個文件。
步驟3、重新啟動A伺服器如談上的SQL SERVER服務。
步驟4、如果MSDB資料庫仍然是置疑狀態,可以執行下面的SQL。
USEMASTER
GO
SP_CONFIGURE配橡派'ALLOWUPDATES',1RECONFIGUREWITHOVERRIDE
GO
UPDATESYSDATABASESSETSTATUS=32768WHERENAME='msdb'
Go
sp_dboption'msdb','singleuser','true'
Go
DBCCCHECKDB('msdb')
Go
updatesysdatabasessetstatus=28wherename='msdb'
Go
sp_configure'allowupdates',0reconfigurewithoverride
Go
sp_dboption'msdb','singleuser','false'
Go
G. sql資料庫質疑的原因及解決辦法
sql資料庫質疑是設置錯誤造成的,解決方法為:
1、通過DBCC CHECKCB('DBName') 來檢測資料庫異常的原因,如果可以檢測到資料庫的異常,其中紅色部分即時數據目前存在的問題,我們也在檢測結果最後看到數據的總體的錯誤情況的匯總。