为了账号安全,请及时绑定邮箱和手机立即绑定

SQL Server中的Indirect CheckPoint

标签:
SQL Server

简介

    SQL Server2012新增的Indirect CheckPoint允许CheckPoint的恢复间隔设置到数据库级别,而不是以前那样实例级别。

    在数据库级别设置的恢复时间以秒为单位,而不是在实例级别的以分钟为单位。这可以更精确的保证数据库Recovery的最大时间。

 

配置Indirect CheckPoint

    Indirect Checkpoint是数据库级别的。在SQL SERVER中,包括Contained Database,SQL Server把一些设置从实例级别转到了数据库级别。

    按照MSDN上对Indirect CheckPoint的描述,我对Indirect CheckPoint的理解是独立于实例级别CheckPoint的的额外线程。仅仅负责其所在的数据库。因此带来的好处可以归结如下。

    1.更少的数据库恢复时间(CheckPoint间隔小了,自然恢复时间就少了)

    2.更精确的恢复时间。现在不仅仅CheckPoint的范围缩小了,并且最大恢复时间是以秒为单位。

    3.由于这个Indirect CheckPoint线程将其所负责数据库范围内的Dirty Page写入磁盘,所以实例级别的CheckPoint可以减少对磁盘的一次性写入量。从而减少了实例级别CheckPoint的负载

   

   

    但是,设置Indirect CheckPoint保证数据库Recovery时间尽可能短的同时,由于恢复间隔可能变短,在OLTP环境下造成更多的磁盘写入,有可能给I/O造成额外的负担

 

    下面来看配置Indirect CheckPoint,我们可以通过SSMS或是T-SQL进行配置

     使用SSMS配置Indirect CheckPoint如图1所示。

    https://img1.sycdn.imooc.com//5af2cd3f000132e108280733.jpg

 

    也可以通过设置数据库的TARGET_RECOVERY_TIME选项来设置恢复时间,如代码所示。  
   

ALTER DATABASE Test SET TARGET_RECOVERY_TIME = 32 SECONDS;

  

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消