當前位置:法律諮詢服務網 - 企業資訊 - sql數據庫查詢中斷,不可恢復的壹致性錯誤,無法導出數據,如何恢復數據?

sql數據庫查詢中斷,不可恢復的壹致性錯誤,無法導出數據,如何恢復數據?

數據庫損壞的最有效方式是擁有冗余數據並使用它來恢復。所謂冗余數據,包括熱備、冷備、溫備。

使用鏡像或可用性組作為熱備,當檢測到錯誤時,可以自動修復頁面(鏡像要求2008以上,可用性組是2012的函數)。Mirror當主體服務器遇到824錯誤時,它會向鏡像服務器發送請求,將損壞的頁面從鏡像復制到主體以解決問題。對於可用性組,如果在主復制副本上找到數據頁面,主復制副本將向所有輔助復制副本發送廣播,第壹個響應的輔助復制副本的頁面將修復頁面錯誤。如果錯誤發生在只讀輔助副本中,它將從主副本請求相應的頁面來修復錯誤。值得註意的是,無論哪種高可用技術,頁面錯誤都不會蔓延到冗余數據,因為SQL Server中所有的高可用技術都是基於日誌,而不是數據頁面。

其次,使用溫待機或者冷待機來恢復頁面。我已經在代碼清單1中給出了詳細的代碼,這裏就不細說了。

如果沒有合適的備份,如果損壞的數據頁存在於非聚集索引上,那麽您是幸運的,您只需要禁用索引並重建它。

如果有基準的完全備份,並且日誌鏈沒有斷(包括差異備份可以覆蓋缺失日誌的部分),可以在備份結束後通過恢復數據庫來修復。

最後,如果基礎工作沒有做好,可能需要通過丟失數據來改變數據庫的壹致性。我們可以通過DBCC CheckDB命令的REPAIR_ALLOW_DATA_LOSS來修復數據庫。使用這種方法可能會也可能不會導致數據丟失,但在大多數情況下,壹致性將通過刪除數據來修復。使用REPAIR_ALLOW_DATA_LOSS需要將數據庫設置為單用戶模式,這意味著停機。

在任何情況下,修復數據庫時都要考慮是否能滿足SLA。如果出現問題,發現無論如何都達不到SLA,那就只能回顧之前的準備,祈禱自己不會失業。

  • 上一篇:什麽是SCRM?我能怎麽做呢?
  • 下一篇:商家如何進入美團外賣?
  • copyright 2024法律諮詢服務網