[MS-SQL] 錯誤處理-MSSQLSERVER 錯誤 823

今天中午想要登入系統的時候,突然跳出錯誤823!!!然後就無法登入了!!!

查了一下Microsoft的SQL文件說明,推測可能是硬碟造成吧!!!

以下是微軟的官方說明

說明

SQL Server 使用 Windows API (例如,ReadFileWriteFileReadFileScatterWriteFileGather) 來執行檔案 I/O 作業。 執行這些 I/O 作業之後,SQL Server 會檢查是否有與這些 API 呼叫建立關聯的錯誤狀況。 如果 API 呼叫因作業系統錯誤而失敗,則 SQL Server 會報告錯誤823。

https://docs.microsoft.com/zh-tw/sql/relational-databases/errors-events/mssqlserver-823-database-engine-error?view=sql-server-ver16

接著我作了以下的處置

1.我先將資料庫重新啟動。

結果發現資料庫呈現(正在還原)的狀態

2.所以我下了restore database

restore database hsf
with recovery
go

消息 3153,级别 16,状态 2,第 1 行
数据库已完全恢复。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 正在异常终止。

3.接著我下了dbcc checkdb(dbname)

dbcc checkdb(hsf)

跑了1:54:35

CHECKDB 在数据库 'HSF' 中发现 0 个分配错误和 47 个一致性错误。
对于由 DBCC CHECKDB (HSF)发现的错误,repair_allow_data_loss 是最低的修复级别。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

4.接著我下了dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)

use master
declare @databasename Varchar(255)
set @databasename='HSF'
exec sp_dboption @databasename, N'single', N'true' --將目標資料庫置為單使用者狀態
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'--將目標資料庫置為多使用者狀態

跑了2:56:34

CHECKDB 在数据库 'HSF' 中发现 0 个分配错误和 0 个一致性错误。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

5.然後就可以正常登入應用程式了,真是阿彌陀佛,好哩家在啊!!!

看樣子資料庫是有救回來!!

6.不過擔心是硬碟有問題,所以目前掃描磁碟中,這看起來要跑到明天了!!!

7.果然!!最後硬碟檢測出來的結果真的是有壞軌了!Q__Q 看來荷包又要飛了!!!

期待您的留言

Comments

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *