sqlserver备份:压缩技术给SQL Server备份文件瘦身

可是其体积仍然很庞大所以在日常工作中如何给SQL Server备份文件瘦身就是很多数据库管理员所关心问题了
  也许微软数据库产品设计专家听到了众多数据库管理员呼声了吧在最新2008版本SQLServer数据库中提出了备份压缩概念其基本原理跟利用RAR等压缩工具压缩文件可以让原有备份文件体积更小这直接带来好处就是可以节省服务器备份空间另外若SQLServer数据库配置了异地备份那么也可以节省网络带宽缩短异地备份时间等等
  笔者前不久刚把数据库升级到了2008并重新更改了备份配置让数据库支持备份压缩下面笔者就把备份压缩管理心得体会跟大家分享希望笔者这些经验能够帮助大家做好SQL Server数据库备份压缩管理简单来说如果要采用备份压缩技术那么数据库管理员要弄明白几个问题
  问题:备份压缩技术限制条件
  由于备份压缩技术是2008版本中才提出来所以其兼容性可能就会收到些限制根据官方说法是从2008以后数据库版本都会支持这个备份压缩技术故向后兼容应该问题不大数据库管理员关心应该是从低版本升级到高版本数据库时些限制条件掌握这些限制条件可能会让数据库升级少遇到些问题根据笔者了解这里至少有 2个限制条件
  是压缩备份和未压缩备份不能够共存于个媒体集中在SQL Server数据库中如果要对数据集进行备份则首先需要建立个媒体集笔者升级完成的后先对数据库进行了个完全备份这个备份没有采用压缩技术后来笔者在测试压缩备份时候却发现如何都不成功后来根据提示查询了相关资料并进行亲自测试才发现压缩备份和未压缩备份不能够共存于个媒体集中笔者后来重新建立了个媒体集后备份压缩技术就可以起作用了
   2是早期版本SQL Server数据库无法读取压缩备份为了测试备份压缩技术向前兼容性笔者特意利用备份压缩后数据库文件去恢复2005版本数据库注意这个数据库文件是升级到2008后马上备份也就是说除了这个压缩技术外没有采用2008新技术和新对象但是却发现2005版本数据库根本不认账不认识这个压缩后备份文件可见早期版本SQL Server数据根本无法读取压缩后备份文件
  这是笔者测试后发现两个限制条件不过笔者查询了些官方资料后发现还有个重要限制如NTBACKUP工具无法共享含压缩数据库备份磁带不过由于笔者用不到这方面内容所以也没有测试是否如此
  问题 2:压缩效果到底如何?
  如果采用了压缩备份技术那么备份文件到底可以瘦下来多少呢?这主要跟数据库有关根据笔者了解如下些原因会直接影响到最终压缩效果
  首先是跟数据类型有关如果数据库中大部分是数据则其压缩效果会比较好而如果数字类型比较多那么采用压缩备份技术后备份文件并不能够小多少这也给数据库管理元是否要采用压缩备份技术提供了个判断标准
  其次是数据是否加密正常情况下如果数据库中数据未加密则其压缩效果会比较明显相反如果数据库数据加密了则其压缩程度就会小很多如数据库管理员利用透明数据加密思路方法来加密整个数据库则采用压缩备份技术的后压缩备份并不会将数据库减小多少甚至根本不会减小
  再者跟数据表设计也有关系般情况下如果表设计比较合理则其压缩效果就会好许多如某页中包含多个行而其中某个字段包含相同则该值就可以获得比较大压缩率和的相反如果字段中数据大部分是随机数据(即使只有稍微差别)则其压缩备份大小几乎和未压缩备份相同这也就是说要想取得比较好压缩效果则在数据库设计时就需要考虑如可以采用些列表字段供用户选择就可以提高最终备份文件压缩效果
  问题 3:压缩备份对于性能影响如何?
  数据库采用压缩备份的后对于数据库影响是双方面即有利也有害
  利是直接跟上面所说数据库压缩效果相关个数据库压缩备份文件要比原来备份文件要小所以压缩备份所需要设备输入输出通常比较少所以可以大大提高备份速度而且数据库进行异地备份还可以大大缩短网路传输时间所以当数据库压缩效果越好则对于数据库性能也会有很大改善
不利的处就在于资源消耗方面如果采用了压缩备份技术则压缩会显著增加CPU使用率而压缩进程所占用额外CPU可能会对兵法操作产生消极影响为了尽量减少这个不利影响可以采取措施就是调整SQL Server数据库备份策略如把备份时间放在午夜时分那时候基本上没有用户使用数据库或者数据库使用几率会大大降低此时就是多些额外CPU消耗用户也很难察觉到
  另外在数据库中也可以通过降低优先级方式来降低压缩备份对数据库不利影响如当发生CPU争用时此备份CPU使用就会受到资源控制其限制通过将特定用户会话映射到限制CPU使用资源调控器工作负荷来实现不过这个实现起来比较复杂以后若有机会笔者将会专题讲述对于大部分企业来说数据库使用都有很明显高发期和低潮期只需要稍微调整下备份策略在数据库使用低潮期进行压缩备份就可以很轻松避免压缩备份所带来负面影响而完全不需要吃力不讨好采用这么复杂解决方案即使像银行类这些金融机构在晚上12点的后用户也会大量减少此时他们释放出来CPU给压缩备份使用已经足够了
  还好笔者以前采取备份策略就是在晚上12点的后让数据库进行自动备份所以这次采用了压缩备份的后对于性能影响可以忽略
  问题 4:如何启用压缩备份?
  默认情况下数据库在执行备份时候是不采用压缩备份如果数据库管理员出于特定需要要启用压缩备份就需要管理员去手工启动压缩备份默认行为是数据库系统中备份压缩默认选项服务器级配置来决定
  如需要启用压缩备份策略只需要经过简单 3个步骤即可
  第步:打开数据库对象资源管理器右键单击需要启用压缩备份策略那个服务器然后打开属性对话框
  第 2步:单击数据库设置节点找到备份和还原选项卡在压缩备份页签中显示了备份压缩默认设置当前配置这个“压缩备份”选项决定了数据库在备份时候是否要才用压缩备份策略如果选中默认情况下数据库将启用压缩备份
  第 3步:建立新备份媒体笔者在上面提到过压缩备份和未压缩备份不能够存储在同个媒体集中如果数据库管理员是中途启用这个压缩备份策略即在原先备份媒体中已经有未压缩备份文件那么数据库管理员要么需要删除原有备份文件要么就是重新建个备份媒体笔者意见是重新建立别分媒体而保留原有备份文件这主要是出于安全考虑压缩备份某些原因不成功则仍然可以有补救措施
  压缩备份是SQLServer数据库推出个新技术笔者以为如果企业数据库容量比较小没有必要采用这个压缩备份只有数据库容量比较大或者要进行异地备份情况下采用压缩备份效果才会显现出来由于压缩备份有比较大限制条件和管理难点数据库管理员还是需要在性能、压缩效果等方面评估压缩备份可能会给企业带来效果评估的后再进行取舍是否要采用压缩备份
Tags:  sqlserver异地备份 sqlserver2000备份 sqlserver备份 sqlserver备份

延伸阅读

最新评论

发表评论