好了,我们已经度过了圣诞假期,如果你和我一样,那么在新的一年里你需要一些严肃的锻炼策略。很快我们就会下定新年决心,加入健身俱乐部,或者购买Wii Fit来补充我们在假期里玩的足球、足球、超级马里奥或吉他英雄游戏。哎呀!这是微软的博客,所以我应该谈谈XBox 360。实际上,《吉他英雄》在两个平台上都可以使用,并且根据你的演奏方式将其作为一个健身项目。一些吉他独奏可以给你相当大的锻炼!有点夸张,我知道。这里还有另一个延伸:由于我们将寻找一些严肃的个人“压缩”策略为2009年,让我们看看SQL Server 2008备份压缩。
我们看数据压缩在之前为我们节省空间和提高性能的博客中。同样在SQL Server 2008中,还有另一种压缩技术:备份压缩。重要的是要认识到,这是数据压缩的一种独立技术,但两者可以一起使用,从而产生更多的存储空间和性能节省。由于数据压缩减少了所需的数据页的数量,备份自然也将占用更少的空间和时间。但事情远不止这些。
在SQL通过上个月在西雅图的一次会议上,我们听取了ServiceU.com的人员关于SQL Server 2008备份压缩的证词。他们在田纳西州孟菲斯市从事活动管理和票务软件业务。一个例子是将300GB的数据库备份为45GB的备份文件。这是压缩85%。不仅如此,备份花费的时间只有正常时间的一半。不坏。那么权衡的是什么呢?在备份期间,它确实会占用更多的CPU周期,因此在其他进程并发运行时需要考虑这一点。当然,你需要企业版来创建一个压缩备份;但是,任何版本都可以用于恢复压缩备份,只要它是SQL Server 2008。 Since the backups are smaller, the restore times are reduced too.
您可以使用sp_configure或使用SQL Server Management Studio在服务器级别设置默认的备份压缩选项。对于新安装,默认设置为0 (OFF)。将默认值设置为1 (ON)将确保所有备份都使用压缩,除非另有指定。在逐个备份的基础上,您总是可以使用T-SQL备份语句上的WITH COMPRESSION或WITH NO_COMPRESSION选项,或者使用SSMS中的BACKUP Options选项卡上的新下拉菜单覆盖默认值。我用AdventureWorks2008进行的测试显示,完整备份从185MB压缩到45MB。有趣的是,如果我在数据库上使用新的透明数据库加密选项,我没有看到压缩,所以这是值得注意的。我想,安全是有代价的。
要确定准确的压缩比(我认为这是一个汽车引擎的东西?)你可以使用以下T-SQL语句:
选择backup_size/compressed_backup_size FROM msdb..
这表明我的AdventureWorks2008备份的压缩比为4.15。
另一件有趣的事情是,你不能在相同的备份介质集上混合和匹配压缩和未压缩的备份。即使你在磁盘备份上使用了overwrite选项(INIT),如果之前的备份不是相同的压缩选项,它也会失败。我必须使用FORMAT选项来完全重新格式化备份集。在我的原始测试中,备份时间从20秒减少到12秒。恢复时间也从19秒减少到14秒。好消息到处都是。
在优化性能方面,微软建议使用多个备份设备进行测试。例如,SQLCAT.com团队在使用8、16、26和32个备份设备的12个lun上测试了具有12个数据库文件的1.27TB数据库,发现最佳数量实际上是16个。在他们的8 x 1GB以太网上进行备份花费了24分钟,吞吐量为826MB/秒。非常令人印象深刻。改变BUFFERCOUNT参数也可以产生一些改进的结果,尽管缓冲区的数量越多,需要的内存就越多。以上Microsoft测试使用BUFFERCOUNT=512。如果希望在不浪费磁盘空间的情况下进行自己的性能测试,可以在backup语句上使用disk = ' NUL '选项。这告诉SQL Server在备份完成后就扔掉备份,但是性能和压缩数字仍然有效。
但这有点像坐在沙发上弹吉他英雄。你需要真正的锻炼来获得压缩的好处。新年快乐!
干杯
布莱恩
最近的帖子: