資料庫完整性檢查

2021-09-21 19:50:28 字數 955 閱讀 4868

為了主動發現資料庫側頁損壞,保證資料庫邏輯和物理完整性,計畫每週六上午

6點,針對生產主庫上的所有系統和使用者資料庫執行

dbcc checkdb

,將結果記錄到表中。

以下為理論依據:

sql server

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

sql server

發現錯誤的方法有兩種,分別為在讀取頁時和在備份時(本質上也是讀取頁)。但如果我們希望對於資料一致性的檢查更加的全面,那我們應該定期使用

checkdb

來檢查資料的一致性,而不至於在生產時間資料被讀取時才能發現錯誤。

checkdb

命令在企業版中會使用多執行緒來進行,會對整個資料庫進行一致性檢查,在該過程中,使用了內建資料庫快照的方式進行,因此不會造成阻塞,但

checkdb

會消耗大量的

cpu、記憶體和

io。因此

checkdb

要選擇在維護視窗時間或是系統閒時進行。

實際上,

checkdb

是一套命令的彙總,通過執行下列操作檢查指定資料庫中所有物件的邏輯和物理完整性:

微軟最佳實踐建議

「建議您使用

physical_only 

選項,以便可以頻繁檢查生產系統。

使用physical_only 

可以極大地縮短對大型資料庫執行

dbcc checkdb 

的執行時間。

同時建議您定期執行沒有選項的

dbcc checkdb

。應當以什麼頻率執行這些執行任務將取決於各個企業及其生產環境。

」引用自:

成熟的方案

可以使用 

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

資料庫完整性定義與檢查

在列級定義實體完整性 在表級定義實體完整性 create table sc sno char 9 cno char 4 grade smallint,primary key sno,cno foreign key sno references student sno foreign key cno ...

完整性檢查

當我們想窮舉乙個型別的所有可能值時,當可能值過多,不免會遺漏過多的東西。通常我們窮舉乙個值的所有可能,我們會採用switch或者if else,當然,這是可行的,下面看乙個if else例子 function test p 1 2 else if p 2 當p的型別為更多的聯合型別的時候,我們會寫更...

資料庫完整性

完整性約束條件 實體完整性給出了主鍵的取值的最低約束條件 規則是 主鍵的各個屬性都不能為空。參照完整性給出了在關係之間建立正確的聯絡的約束條件 規則是 外來鍵或者取空值 此時要求外來鍵的各個屬性均為空值 或者等於被參照關係中的主鍵的某個值。使用者自定義完整性 關係數控應用系統中的關係往往還應該滿足一...