2008年11月18日 星期二

MSSQL 資料庫存取錯誤被標示有疑問解決方法

系統 windows server 2003 資料庫 MS SQL 2005 9.0.2047

資料庫員都正常運作,結果忽然資料庫電腦主機重新自己開機,重新開機後卻發現其中有一個資料庫無法開啟,資料庫名稱變成 「tomwork(有疑問)」

我嘗試的要將資料庫卸離,出現以下訊息
資料庫卸離失敗
無法卸離被質疑的資料庫,必須先將其修復或卸除,錯誤 3707

我嘗試將資料庫做離線工作,在做線上工作 ,出現以下訊息
無法重做資料庫 tomwork(資料庫識別碼7)中的頁面(1:19162)上的交易識別碼(0:207785)的
紀錄(261:2049:2)。頁面LSN(261:1215:29),類型=1。紀錄PCode = 6,內容2,請重資料
庫的備份還原或修復資料庫
ALTER DATABASE 陳述式失敗。(錯誤3456)

LOG
日期 2007/8/11 下午 12:52:33
記錄檔 SQL Server (目前的 - 2007/8/11 下午 12:54:00)
來源 spid57
訊息
Could not redo log record (261:2049:2), for transaction ID (0:207785), on page (1:19162), database 'tomwork' (database ID 7). Page: LSN = (261:1215:29), type = 1. Log: OpCode = 6, context 2, PrevPageLSN: (261:1927:28). Restore from a backup of the database, or repair the database.

解決方法
資料庫會因為作業系統拒絕存取資料庫資源、一或多個資料庫檔案無法使用或損毀等原因而變成被質疑的狀態。 可以嘗試使用下面的陳述式:
ALTER DATABASE tomwork SET EMERGENCY;
DBCC checkdb('tomwork');
ALTER DATABASE tomwork SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CheckDB ('tomwork', REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE tomwork SET MULTI_USER;

其中的 tomwork 是你資料庫的名稱

如果有先前的備份資料,請將備份的資料還原
如果沒有先前的備份資料,就用 DBCC CheckDB 來進行修復:
ALTER DATABASE tomwork SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CheckDB ('tomwork', REPAIR_REBUILD);
ALTER DATABASE tomwork SET MULTI_USER;

沒有留言:

張貼留言