日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库完整性检查

發布時間:2025/3/8 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库完整性检查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為了主動發現數據庫側頁損壞,保證數據庫邏輯和物理完整性,計劃每周六上午6點,針對生產主庫上的所有系統和用戶數據庫執行DBCC CHECKDB,將結果記錄到表中。


以下為理論依據:


SQL Server數據庫可以檢測出頁損壞,此時,具體的表現形式可能為下述三種錯誤的一種:

  • 823錯誤,也就是所謂的硬IO錯誤,可以理解為SQL Server希望讀取頁,而Windows告訴SQL Server,無法讀取到該頁。

  • 824錯誤,也就是所謂的軟IO錯誤,可以理解為SQL Server已經讀取到該頁,但通過計算CheckSum等值發現不匹配,因此SQL Server認為該頁已經被損壞。

  • 825錯誤,也就是所謂Retry錯誤。


SQL Server發現錯誤的方法有兩種,分別為在讀取頁時和在備份時(本質上也是讀取頁)。但如果我們希望對于數據一致性的檢查更加的全面,那我們應該定期使用CheckDB來檢查數據的一致性,而不至于在生產時間數據被讀取時才能發現錯誤。


CheckDB命令在企業版中會使用多線程來進行,會對整個數據庫進行一致性檢查,在該過程中,使用了內建數據庫快照的方式進行,因此不會造成阻塞,但CheckDB會消耗大量的CPU、內存和IO。因此CheckDB要選擇在維護窗口時間或是系統閑時進行。


實際上,CheckDB是一套命令的匯總,通過執行下列操作檢查指定數據庫中所有對象的邏輯和物理完整性:

  • 初次檢查系統表

  • 分配單元檢查(DBCC CHECKALLOC

  • 完整檢查系統表

  • 對所有表進行一致性邏輯檢查(DBCC CHECKTABLE

  • 元數據檢查(DBCC CHECKCATALOG

  • SSB檢查

  • 索引視圖、XML索引等檢查


微軟最佳實踐建議


“建議您使用?PHYSICAL_ONLY?選項,以便可以頻繁檢查生產系統。?使用?PHYSICAL_ONLY?可以極大地縮短對大型數據庫運行?DBCC CHECKDB?的運行時間。?同時建議您定期運行沒有選項的?DBCC CHECKDB?應當以什么頻率執行這些運行任務將取決于各個企業及其生產環境。

”引用自:

https://docs.microsoft.com/zh-cn/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql


成熟的方案


可以使用 https://ola.hallengren.com/

實現備份、完整性檢查、索引和統計信息維護整套方案。


轉載于:https://blog.51cto.com/ultrasql/2050157

總結

以上是生活随笔為你收集整理的数据库完整性检查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。