SQL Server 2014新特性——事务持久性控制

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
日志服务 SLS,月写入数据量 50GB 1个月
简介:

控制事务持久性

SQL Server 2014之后事务分为2种:完全持久, 默认或延迟的持久。

完全持久,当事务被提交之后,会把事务日志写入到磁盘,完成后返回给客户端。

延迟持久,事务提交是异步的,在事务写入到磁盘前,事务提交返回给客户端。

以前都是完全持久,现在多了个延迟持久,延迟持久只有当日志缓存刷新的时候才会被写入到磁盘保证事务完整性。

目录

控制事务持久性

完全持久事务和延迟持久事务持久性

完全持久事务

延迟持久性事务

如何控制事务的持久性

数据库级别

存储过程级别

语句级别

如何强制日志刷新

延迟持续性和其他 SQL Server 功能

 

完全持久事务和延迟持久事务持久性

说白了,完成持久事务完全保证事务的持久性,延迟持久事务延迟保证事务的持久性。

完全持久事务

只要存在以下情况,就应使用完全持久事务:

1.系统无法承受任何数据丢失

2.造成性能瓶颈的原因不是事务日志写入延迟

完全持久事务保证

1.事务提交后,修改对其他事务时可见的。

2.完全保证事务的持久性

延迟持久性事务

延迟持久性事务,通过异步的把事务日志写入到磁盘来实现,在写入到磁盘之前,日志被保存在缓存区中,当缓冲区满了或者刷新缓冲区了把日志写入磁盘,依次来减少磁盘资源争用:

1.事务提交不用等待写入到磁盘完成

2.减少磁盘争用从而提高,事务吞吐量。

使用场景:

1.可以忍受一定数据的丢失

2.在事务日志写入的时候发现瓶颈

3.磁盘资源争用率很高

延迟持久事务保证:

1.提交后,修改对其他事务可见

2.持久性只能靠缓存刷新来保证:

         事务日志缓存在以下情况下刷新:

         a.当同一个数据库的完全持久性事务提交,并成功

b.成功执行存储过程sp_flush_log

c.缓存区满了,自动刷新

如何控制事务的持久性

数据库级别

ALTER DATABASE … SET DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

DISABLE:默认设置,不管如何保持完全持久性

ALLOWD:允许延迟持久性执行,要看存储过程,或者TSQL级别的设置

FORCED:强制所有的事务都是延迟持久性的

存储过程级别

DELAYED_DURABILITY = { OFF | ON }

OFF:默认设置,不使用延迟持久事务

ON:启动延迟持久事务

CREATE PROCEDURE <procedureName> …

WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER

AS BEGIN ATOMIC WITH

(

    DELAYED_DURABILITY = ON,

    TRANSACTION ISOLATION LEVEL = SNAPSHOT,

    LANGUAGE = N'English'

    …

)

END

 

语句级别

COMMIT [ { TRAN | TRANSACTION } ] [ transaction_name | @tran_name_variable ] ] [ WITH ( DELAYED_DURABILITY = { OFF | ON } ) ]

OFF:默认设置,不使用延迟持久事务

ON:启动延迟持久事务

如何强制日志刷新

1.提交完全持久性事务

2.使用系统存储过程sp_flush_log

延迟持续性和其他 SQL Server 功能

更改跟踪和变更数据捕获

具有更改跟踪属性的所有事务都是完全持久事务。 如果一个事务的所有写入操作都对表进行,而这些表支持更改跟踪或变更数据捕获 (CDC),则该事务具有更改跟踪属性。

崩溃恢复

一致性可得到保证,但已提交的延迟持久事务的一些更改可能会丢失。

跨数据库和 DTC

如果事务跨数据库或是分布式事务,则无论数据库或事务提交设置如何,它都是完全持久事务。

AlwaysOn 可用性组和镜像

延迟持久事务并不能保证主数据库或任何辅助数据库的持续性。 此外,它们也不保证了解辅助数据库的事务。 提交后,在从同步辅助数据接收到 ACK 之前,控制权就会归还客户端。

故障转移群集

某些延迟持久事务写入可能会丢失。

事务复制

延迟持久事务并不保证其复制。 只有在事务成为持久事务后才会得到复制。

日志传送

传送的日志中仅包含已成为持久事务的事务。

日志备份

备份中仅包含已成为持久事务的事务。

参考:
http://msdn.microsoft.com/zh-cn/library/dn449490(v=sql.120).aspx





    本文转自 Fanr_Zh 博客园博客,原文链接:http://www.cnblogs.com/Amaranthus/p/3683076.html ,如需转载请自行联系原作者

相关文章
|
3月前
|
存储 SQL 关系型数据库
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
|
SQL 数据库 数据安全/隐私保护
SQL Server数据库Owner导致事务复制log reader job无法启动的解决办法
【8月更文挑战第14天】解决SQL Server事务复制Log Reader作业因数据库所有者问题无法启动的方法:首先验证数据库所有者是否有效并具足够权限;若非,使用`ALTER AUTHORIZATION`更改为有效登录名。其次,确认Log Reader使用的登录名拥有读取事务日志所需的角色权限。还需检查复制配置是否准确无误,并验证Log Reader代理的连接信息及参数。重启SQL Server Agent服务或手动启动Log Reader作业亦可能解决问题。最后,审查SQL Server错误日志及Windows事件查看器以获取更多线索。
178 0
|
SQL 存储 数据库
SQL学习一:ACID四个特性,CURD基本操作,常用关键字,常用聚合函数,五个约束,综合题
这篇文章是关于SQL基础知识的全面介绍,包括ACID特性、CURD操作、常用关键字、聚合函数、约束以及索引的创建和使用,并通过综合题目来巩固学习。
410 1
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
SQL 存储 监控
SQLServer事务复制延迟优化之并行(多线程)复制
【9月更文挑战第12天】在SQL Server中,事务复制延迟会影响数据同步性。并行复制可通过多线程处理优化这一问题,提高复制效率。主要优化方法包括:配置分发代理参数、优化网络带宽、调整系统资源、优化数据库设计及定期监控维护。合理实施这些措施可提升数据同步的及时性和可靠性。
382 0
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
592 0
|
SQL 监控 供应链
|
SQL 数据库连接 网络安全
SQLServer非默认端口下事务复制代理作业服务无法启动的处理
【8月更文挑战第14天】若SQL Server非默认端口下的事务复制代理作业无法启动,可按以下步骤解决:1) 确认服务器连接字符串正确无误,包括非默认端口号;2) 检查防火墙设置,确保允许非默认端口的连接;3) 核实SQL Server配置已启用非默认端口;4) 查阅代理作业日志寻找错误详情;5) 重启SQL Server与Agent服务;6) 使用工具测试非默认端口的连接性。如问题持续,请寻求专业支持。
204 0
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
478 13
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
292 9

热门文章

最新文章