您的位置:首页 > 博客中心 > 数据库 >

SQL 2014新特性- Delayed durability

时间:2022-03-10 17:35

原文:SQL 2014新特性- Delayed durability

ACID 是数据库的基本属性。其中的D是指"持久性":只要事务已经提交,对应的数据修改就会被保存下来,即使出现断电等情况,当系统重启后之前已经提交的数据依然能够反映到数据库中。

   

那么D特性是如何在SQL Server中实现的呢?SQL Server使用write-ahead logging的方式,保证日志记录会先于数据记录固化到磁盘中。当事务提交后,只有当日志记录固化到磁盘时,才会向客户端返回提交成功的消息,至于相应的数据记录,会通过异步的方式后续写入到磁盘中。如果在此期间发生断电等故障,那么就会出现以下两种情况:

  1. 日志已经写入到磁盘(committed),但数据没有写入:

       

       

    下面比较一下使用delayed durability的情况

    declare @N int=0

    while @n<1000

    begin

    begin tran

       

       

    注意事项

    1. 当系统不忙时,也会主动将delayed durability的日志记录固化到磁盘。但目前不知道如何判断"不忙"这个标准。
    2. checkpoint不会将delayed durability的日志记录固化到磁盘。
    3. SQL Server正常关闭不会将delayed durability的日志记录固化到磁盘,也就说正常关闭也可能会导致数据丢失,建议之前先执行sp_flush_log

    SQL 2014新特性- Delayed durability,布布扣,bubuko.com

热门排行

今日推荐

热门手游