錯誤訊息 823 可能表示硬體問題或在 SQL Server 的系統問題

文章翻譯 文章翻譯
文章編號: 828339 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

如果您收到下列的錯誤訊息時,可能表示它已讀取或寫入資料庫檔案時 Microsoft SQL Server 2000 有偵測硬體或系統的問題:
錯誤 823
I/O 錯誤 <error > 期間偵測到 <operation > 在位移 <offset > 在檔案 ' <file>'
附註錯誤訊息的格式不在 Microsoft SQL Server 2005 及 Microsoft SQL Server 7.0 中稍有不同。但是,相同的概念和討論區也適用於 SQL Server 2005 和 SQL Server 7.0。

如需有關這封郵件的不同部分的詳細資訊如 <error > 和 <operation >,並獲得有關使用 SQL Server 2000 所做的 Microsoft Windows API 呼叫的詳細資訊,請參閱本文 < 其他資訊 > 一節。

解決方案

SQL Server 2000 會引發錯誤本文 < 徵狀 > 一節中提到,如果下列情況成立:
  • 作業系統錯誤: A 讀取 Windows API 呼叫或寫入 Windows API 呼叫不成功,SQL Server 遇到作業系統錯誤與相關的 Windows API 呼叫。下列的錯誤訊息是適用的作業系統錯誤 823 的範例:
    2003-07-28 09:01:27.38 spid75 錯誤: 823,嚴重性: 24,
    狀態: 2
    2003-07-28 09:01:27.38 spid75 I/O 錯誤 1117年 (要求無法執行因為的) 期間偵測到讀取在位移 0x0000002d460000 在檔案 'e:\program files\Microsoft SQL Server\mssql\data\mydb.MDF' 一個 I/O 裝置錯誤。
    除了對於作業系統錯誤 6 (「 的控制代碼無效 」),823 錯誤都可能會報告作業系統錯誤與相關的基礎系統發生問題或硬體問題。 如果發生作業系統錯誤,即使 DBCC CHECKDB 陳述式不會報告問題,您可能必須向硬體廠商、 系統管理員或 Microsoft 產品支援服務,以解決這個問題。

    附註您可能會或不可能會看到來自 DBCC CHECKDB 陳述式的錯誤與錯誤訊息中檔案相關聯的資料庫上。當您看到 823 錯誤時,您可以執行 DBCC CHECKDB 陳述式。如果 DBCC CHECKDB 陳述式不會報告任何錯誤,您可能有一個間歇性的系統問題或磁碟的問題。
  • I/O 邏輯檢查失敗: 如果讀取的 Windows API 呼叫或資料庫檔案的寫入 Windows API 呼叫是成功,但在資料上的特定邏輯檢查都不成功 (一個損毀的頁,例如),引發 823 錯誤。下列的錯誤訊息是為邏輯 I/O 錯誤 823 的範例檢查失敗:
    2003-09-05 16:51:18.90 spid17 錯誤: 823,嚴重性: 24,
    狀態: 2
    2003-09-05 16:51:18.90 spid17 I/O 錯誤 (損毀頁) 在讀取期間偵測到位移 0x00000094004000 在檔案 'F:\SQLData\mydb.MDF'
    如果要解決這個問題,先執行 DBCC CHECKDB 陳述式與錯誤訊息中檔案相關聯的資料庫上。如果 DBCC CHECKDB 陳述式會報告錯誤,修正這些錯誤之前疑難排解這個問題。如果問題仍然存在,即使在更正 DBCC CHECKDB 錯誤之後,或如果 DBCC CHECKDB 陳述式不會報告任何錯誤,檢閱 Microsoft Windows NT 系統事件記錄檔以取得任何系統錯誤或磁碟相關的錯誤。您也可以連絡您的硬體廠商,來執行任何適當的診斷。

其他相關資訊

錯誤訊息的詳細資料

將下列的 823 的錯誤訊息的部分是這裡詳細說明:
錯誤 823
I/O 錯誤 <error > 期間偵測到 <operation > 在位移 <offset > 在檔案 ' <file>'
823 的錯誤訊息資訊可以進一步說明:
  • <error >: 這可以是作業系統錯誤或邏輯的 I/O 檢查失敗。作業系統錯誤的作業系統錯誤編號,請遵循 「 I/O 錯誤 」。作業系統錯誤文字包含在括號之後 「 I/O 錯誤error number 」。

    邏輯的 I/O 檢查失敗的失敗訊息會是括弧內,而且可能會下列其中一項:
    • (損毀的頁): 如需有關損毀頁的詳細資訊,請參閱 SQL Server 2000 線上叢書 》。
    • (錯誤的頁面 ID): 這個訊息表示頁面標題上的 pageID 不預期從磁碟讀取的頁面。比方說如果 SQL Server 2000 還提供檔案位移為邏輯頁面 100 的資料庫檔案 1,該 8 KB 頁面的頁面標題上 pageID 應該 1:100。如果不,壞頁面 ID 併入邏輯 I/O 檢查失敗的訊息。
    • (不足,無法轉移的位元組): 這個問題表示 Windows API 呼叫成功,但已傳輸的位元組是未預期。
  • <operation>: 這是讀取或寫入。
  • <offset>: 這是從檔案開頭實體的位元組位移。這個數字除以 8192 會提供您錯誤,會受到邏輯頁面編號。
  • <file>: 這是 I/O 的問題與相關聯的檔案,其中包括完整的實體路徑。

SQL Server I/O 與 Windows API

SQL Server 2000 使用如 ReadFile、 ReadFileScatter、 WriteFile 及 WriteFileGather 的標準 Windows API 呼叫來執行與它的資料庫檔案的 I/O。當 SQL Server 2000 使用 Windows API 呼叫時,已經成功地,開啟檔案或 SQL Server 2000 會不要試著從其讀取或寫入它。因此,如果 Windows API 呼叫不成功,與該錯誤是作業系統錯誤 6 ("不正確處理") 以外的其他,可能被或,就會引發錯誤 Windows 中由裝置驅動程式之類的較低層級軟體元件。因為作業系統錯誤 6 是無效的控制代碼,可能會發生這個問題如果 SQL Server,讓 Windows API 呼叫使用了無效的控制代碼。不過,這仍可能是系統發生問題。

比方說如果您遇到下列錯誤訊息在 SQL Server 錯誤記錄檔,SQL Server 作業系統時,發生錯誤 2 會使用 Windows API 呼叫來寫入 tempdb 主要資料庫檔案:
錯誤: 823,嚴重性: 24 狀態: 4
I/O 錯誤 2 (「 系統無法找到指定的檔案)。 在檔案中的位移 0x00000000284000 寫入期間偵測到 ' D:\Program Files\Microsoft SQL Server\MSSQL\data\tempdb.mdf '
因為 SQL Server 已已經順利開啟檔案,並沒有收到 「 無效控制代碼 」 錯誤,錯誤是很可能被在檔案系統或裝置驅動程式這類的較低層級核心軟體元件中引發。這個問題並不表示在 SQL Server 有問題,必須為檔案系統或裝置驅動程式與檔案相關聯的問題進行調查。

?考

當您使用追蹤旗標 818 SQL Server 錯誤記錄檔可能會寫入錯誤 823 的額外診斷資訊。 取得更多資訊有關這項資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
826433PRB: 偵測未回報的 I/O 問題加入額外的 SQL Server 診斷
SQL Server 會要求系統,以支援 ‘ 保證傳遞穩定媒體 ’ Microsoft SQL Server Always-On 存放裝置方案檢閱程式] 下所述。 Fo如 SQL Server 資料庫引擎的輸入與輸出需求的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
967576Microsoft SQL Server 資料庫引擎的輸入/輸出需求

屬性

文章編號: 828339 - 上次校閱: 2005年12月20日 - 版次: 2.4
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
關鍵字:?
kbmt kbprb KB828339 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:828339
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com