当前好多项目都在逐渐的采用SQL Server AlwaysOn架构来作为数据库的高可用集群技术。
并且当前微软的大多数产品、Citrix XenDesktop、XenApp、PVS、XenMobile也都支持该技术,AlwaysOn兼具了Mirror和Cluster的双重优势,既能实现唯一的主机名、IP地址访问,由不需要像集群那样必须使用共享存储,而是可以像Mirror一样,将数据保存为多个副本,同时AlwaysOn还具有多读多写的架构,可以非常有效地提高数据库性能,单个AlwaysOn组最大可支持8个次要副本,并且还可以支持异地不同站点的AlwaysOn架构,实现数据库的异地灾备与数据库就近访问。
言归正传,下面讲一下我们使用SQL Server中经常遇到的数据库日志爆满问题,尤其是部署较多的Citrix XenDesktop虚拟桌面项目,在上千点规模中,数据库日志增长是非常快的,在传统Mirror环境中,我们采用脚本方式做了相应修剪,下面我们说一下在AlwaysOn中最简单的收缩方法。
SQL Server的日志只要备份后就会自动释放原有占用的空间,例如每周产生的日志为10GB,每周做一次备份,在磁盘上的日志永远都会保持在10GB左右。
因此有效的收缩办法为,针对SQL Server做事务日志的定期备份,此操作直接在SQL Server管理工具中制定维护备份计划即可。
在一般部署中,我们制定两个备份计划,一个完整备份、一个事务日志备份,并将备份按照安全要求保留一个月或更长时间,自动删除旧的备份。