当使用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盘下看看是否建立了备份。若是备份出现,那么证实能够进行自动的数据库日志截断了,咱们点击数据库进行切换,将备数据库换成主数据库,新建一样的警报,成功以后切回便可。