DBCC CHECKDB期間分配BUF失敗
我寫信是想看看是否有人可以幫助我解決一個我似乎無法弄清楚的問題。這將是一個大問題,我將嘗試列出盡可能多的重要資訊,但如果我遺漏了什麼,請告訴我,我很樂意提供你可能需要的任何資訊如果您願意,可以提供幫助嗎?
我遇到的症狀是,在針對 VLDB(大約 1TB)作為維護計劃中的任務之一執行時,dbcc checkdb 被鎖定,並且錯誤日誌報告錯誤:無法分配 BUF:FAIL_BUFFER_ALLOCATION 7(有時8)然後錯誤日誌開始填滿有關物理和虛擬記憶體的記憶體圖表(我可以描述它的最佳方式,請參見隨附的螢幕截圖)。
所以這裡是場景。在我們從 OLDSERVER 遷移之前,我們目前正在開始測試我們的 NEWSERVER。一切都在我們的 OLDSERVER 上按預期工作。在我們的夜間維護計劃常式中,問題出現在我們的 PROD 實例中的 NEWSERVER 上。實例中有多個 db,但我們關心的是 DB1。DB1 由 2 個數據文件和 1 個日誌文件組成。在 OLDSERVER 上,.mdf (519 GB) 位於 H:,.ndf (200 GB) 位於 E:,.ldf (313 GB) 位於 D:。在 NEWSERVER 上,兩個數據文件都在 E: 上,日誌文件在 D: 上。注意:我沒有參與具有 2 個數據文件或其位置的數據庫的配置,或者任何一個伺服器的設置/配置。
在 OLDSERVER 上,維護計劃(包括檢查數據庫完整性任務、完整數據庫備份和維護清理任務並配置為僅針對 DB1 執行)每晚完成,沒有任何問題。在 NEWSERVER 上,維護計劃(以完全相同的方式設置)有時會完成,但主要是減慢蝸牛的爬行速度(或發現比蝸牛更慢的東西),最終會在檢查數據庫完整性任務期間失敗。
我可以手動執行 DBCC CHECKDB,有時它會以非常及時的方式完成,但有時即使手動執行也會表現出相同的行為。並不是說我知道這些設置中的任何一個是否直接適用,但是我嘗試過打開和關閉記憶體中的鎖定頁面,沒有區別,我嘗試過同時打開和關閉即時文件初始化,沒有區別。
下面是我們稱之為 NEWSERVER 的物理伺服器的詳細資訊。
- 作業系統: Windows Server 2016 標準版 - 6.3 (14393)
- 處理器數量: 32
- 記憶體: 384 GB(可用 382 GB)
- **驅動器(所有 SSD 配置):**作業系統 (C:) -181 GB 不含 243 GB | 日誌 (D:) - 117 GB 無 488 GB | 數據 (E:) - 2.86 TB 無 3.81 TB | 備份 (F:) - 1.44 TB 沒有 1.9 TB
- SQL Server 2016 標準版-SP2 CU3 (13.0.5216.0)
- 實例數: 4(PROD、DEV、TEST、TRAIN)
- 每個實例的最大記憶體配置: PROD (131072 MB) | 開發 (65536 MB) | 測試 (65536 MB) | 火車 (32768 MB)
以下是我們稱之為 OLDSERVER 的物理伺服器的詳細資訊
- 作業系統: Windows Server 2016 標準版 - 6.3 (14393)
- 處理器數量: 24
- 記憶體: 384 GB
- **驅動器(主軸和 SSD 混合):**作業系統(C:SSD)-163 GB 不含 249 GB | 原木(D:15k 主軸)- 197 GB 不含 557 GB | ProdData (E: SSD) - 604 GB 沒有 865 GB | 備份(F:10k 主軸)- 1.46 TB 不含 2.18 TB | NonProdData (G: SSD) - 591 GB 不含 1.08 TB | ProdData2 (H: SSD) - 231 GB 不含 743 GB
- SQL Server 2016 標準版-SP2 CU2 (13.0.5153.0)
- 實例數: 5(PROD、DEV、TEST、TRAIN、PROD2)
- 每個實例的最大記憶體配置: PROD (131072 MB) | 開發 (65536 MB) | 測試 (65536 MB) | 火車 (32768 MB) | 產品 2 (32768 MB)
附件是錯誤日誌的第一行(近 50 行)(如果需要,我可以提供更多。
非常感謝任何幫助或想法!
事實證明,在與 Microsoft 就這個問題進行了幾個月的合作後,他們已經確定它現在是 DBCC CHECKDB 和 VLDB 的“已知問題”,並且將在 SQL 2016 SP3 中提供修復程序。當我詢問 SQL 2017 中是否存在該問題時,他們說確實存在,並且他們很可能也會在那裡的服務包中發布。那個很有趣,因為我認為他們不再提供服務包,但她說這是一個足夠大的問題,他們可能不得不在服務包中進行……所以現在我等待……