sqlserver附加資料庫錯誤823的解決方案

來源:互聯網
上載者:User

一、SQL-Server附加資料庫時失敗。
1、異常情況:伺服器在正常啟動並執行情況下突然斷電,導致資料庫檔案損壞,具體表現是:資料庫名後面有“(置疑)”字樣。
2、異常分析:關於823錯誤的 SQL-SERVER 中的協助:
================================

錯誤 823
嚴重層級 24
訊息本文
在檔案 "%4!" 的位移量 %3! 處的 %2! 過程中,檢測到 I/O 錯誤 %1!。

解釋
Microsoft SQL Server 在對某裝置進行讀或寫請求時遇到 I/O 錯誤。該錯誤通常表明磁碟問題。但是,錯誤記錄檔中在錯誤 823 之前記錄的其它核心訊息應指出涉及了哪個裝置。
3、解決辦法:
在SQL-Server企業管理器中,建立同名資料庫(這裡假設為Test)後,停止資料庫,把損壞的資料庫檔案Data.mdf和Test_log.LDF覆蓋剛才建立資料庫目錄下的Data.mdf和Test_log.LDF,同時刪除Test_log.LDF檔案;啟動資料庫服務,探索資料庫名Test後面有“置疑”字樣。不要緊,開啟SQL內建查詢分析器,分別執行如下SQL語句:
第一、
exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 開啟修改系統資料表的開關 */
第二、
update sysdatabases set status=32768 where name='資料庫名' /* 設定資料庫狀態 */
第三、
DBCC REBUILD_LOG ('資料庫名','D:\database\Test_Log.LDF') /* 重建LDF檔案 */
第四、
update sysdatabases set status=0 where name='資料庫名' /* 重設資料庫狀態 */
第五、
restore database 資料庫名 WITH RECOVERY /* 恢複資料庫 */
第六、
exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 關閉開啟修改系統資料表的開關 */
按照此方法操作,應該能修複資料庫正常訪問了。如果問題依然存在,最笨的一個方法就是建立另一個資料庫,把原資料庫(Test)各個表的資料匯出到建立資料庫表中。
============================================================
 補充說明:用上面的六步把資料庫置疑的問題解決了,但是資料庫表裡還有損壞的表(inf_gdscode),把壞表匯出的時候也不成功。最後在查詢分析器裡運行:

USE nmgbt_hcxuexipos (資料庫名)
GO
DBCC CHECKTABLE  ('inf_gdscode',REPAIR_ALLOW_DATA_LOSS)
GO

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.