Sql-Server
正確設置 tempdb 以避免可用空間發生重大變化
每隔兩到三天,我們就會收到以下 SCOM 錯誤:
電腦sqlserver上的 SQL 實例 MSSQLSERVER 中的數據庫 tempdb 的 可用空間發生了顯著變化
這種情況自安裝 SharePoint 2007 SP2 以來一直在發生,並且發生在半夜,可能是在 SharePoint 執行搜尋索引任務時。
目前 tempdb 的大小為 313.88 MB,可用空間為 49.72 MB。我被告知警報的門檻值是 45%。我們使用的是 SQL Server 2005 64 位。
如何解決此問題,是否應以不同方式配置 tempdb?我在這個上扮演了一個意外的 DBA!謝謝…
一個快速的解決方案是使 tempdb 足夠大以避免波動。
- 將臨時數據庫的大小調整為 1GB 數據、500 MB 日誌(或 2GB/1GB)
- 停止 SQL Server
- 刪除 tempdb LDF 和 LDF 文件
- 重新啟動 SQL Server
不用太深,磁碟空間很便宜,擁有更大的 tempdb 也沒有什麼壞處。
隨著數據的增長,您也將開始使用更多的 tempdb。
此解決方案將有助於避免物理文件碎片和自動文件增長問題。
tempdb 用於很多事情,僅舉幾例:
- Tempdb 表、表變數
- 雜湊匹配
- 排序操作
- 行版本
- DBCC CHECKDB
- 重建索引,如果使用了 SORT_IN_TEMPDB 選項
預計可用空間會發生變化,您可以相應地調整 tempdb 的大小,使其至少具有繞過警報可能需要的最大值的兩倍。我也會保留自動增長以防萬一,您不希望處於 tempdb 空間不足的情況。