當使用SQL Server高可用×××的時候,例如,XenDesktop站點數據庫使用完整的事務日誌記錄模式下運行的數據庫鏡像。 經過完整的事務日誌記錄模式下運行的事務日誌會增加過大,直到數據庫空間被填滿或事務日誌空間大小被填滿。若是事務日誌文件不會被監視的,默認狀況下,SQL Server的配置日誌文件會自動增加。這將致使2個問題: 數據庫
1、事務日誌文件會佔用大量的磁盤空間 ide
2、事物日誌增加填滿數據庫空間,致使數據庫不可用。spa
所以Citrix建議按期備份日誌文件。這能夠經過調度做業或維護計劃來完成。另外,可使用SQLServer代理來監視日誌使用的大小超過規定的閾值和運行備份做業。 代理
咱們能夠這樣作,在建立一個站點數據庫鏡像的時候,能夠設定數據庫日誌的大小,好比設定日誌的最大爲4GB。新建一個警報,設置爲日誌備份到另外一個文件時,該日誌文件達到80%。就中止日誌增加,利用腳本進行消耗空會話等垃圾信息,而且還中止它歸零磁盤空間和拖延數據庫。以達到截斷事務日誌的目的。日誌
所以,對Mirror事務日誌的維護,咱們能夠這樣作:orm
根據Citrix的最佳實踐,Citrix建議更改DDC以前的心跳設置來減小事務日誌的增加過快。DDC之間的心跳默認是30秒通訊一次,這一次的通訊會被記錄進事務日誌裏面,並且會產生大約6060字節的大小。對象
Citrix建議您使用數據庫鏡像時,更改默認的心跳超時。您能夠經過更改註冊表設置作到這一點。 事件
這兩個設置必須更改存儲在HKEY_LOCAL_MACHINE \SOFTWARE\Citrix\ DesktopServer事務
這些設置是: ip
HeartbeatPeriodMs - 控制心跳的時間間隔。即多久通訊一次。Citrix建議設置爲10分鐘。
MaxHeartbeatIntervalMs – 指定心跳最長時間能夠不用通訊,默認狀況下,這是沒有配置。
Citrix建議,若是使用完整恢復模式。那麼建議設定一個固定大小的事務日誌和一個怎對事務日誌的SQL警告,這樣,當事務日誌達到50%或者80%時,事務日誌自動備份並將之前的空數據釋放掉。
使用固定大小的事務日誌
給事務日誌設定大小,這將阻止它填滿磁盤空間。它還具備的優勢就是在事務日誌是預zero'd並不會自動增加。
新建警報
登陸數據庫,選擇「SQL Server代理 -> 新建 ->警報」。創建一個事件報警,本例中咱們按數據庫日誌使用率超過80%就激活警報。
類型: SQL Server Performance Condition Alert
對象: MSSQL$CTXDB01:Databases
計數器: Percent Log Used
實例: XD
記數:高於80
選擇左邊的Response,勾選右側的「Execute Job」,點擊「New Job」。在「New Job」對話框中填入Job名稱:XD-Log-Alert-Response-Job。點擊左側的「Steps」,點擊右側的「New…」
在彈出對話框裏輸入以下信息並點擊OK。
Step Name: XD-Log-Alert-Response-Job-Step1
Type: Tnsact-SQLScript (T-SQL)
Database: XD
Command: Backup log [XD]to Disk = 'C:\CitrixXenDesktopDB-Transactionlog.bak' with NOFORMAT,NOINIT,COMPRESSION, NAME = N'Transcation Log backup', SKIP, NOREWIND, NOUNLOAD, STATS=10;
注:***的爲XD數據庫的名稱。
完成以後運行一下有無報錯,無報錯就證實設置成功,去C盤下看看是否建立了備份。若是備份出現,那麼證實能夠進行自動的數據庫日誌截斷了,咱們點擊數據庫進行切換,將備數據庫換成主數據庫,新建一樣的警報,成功以後切回便可。