SQL SERVER的检查点checkpoint
1 什么是检查点
数据修改操作 都是在 内存中的数据页进行修改,每次修改后并没有立即把这些页面写入磁盘,而是等到一定时期,数据库引擎对数据库发起 检查点命令,这时,该命令就会创建一个已知的正常点,把当前所有在内存中已修改的页面(脏页)即事务日志信息从内存中写入到磁盘,并且记录下有关事务日志的信息。之后如果数据库意外关闭或者崩溃,那么在恢复的过程中,数据库引擎就不需要恢复所有事务日志,而是从 该检查点 开始应用日志中所做的修改。
2 检查点类型

3 检查点的参数影响

3.1 自动检查点
3.1.1 什么是自动检查点
- 并非说设置了 recovery_interval 后,数据库的恢复时间就一定是在 recovery_interval 时间内,这个值只是给数据库判断 检查点命令的执行时间使用,而非 明确为 数据库的恢复时间。因为在系统崩溃后,恢复数据库所需的时间,主要取决于重做崩溃时的脏页所需的 IO 量。
- 简单恢复模式下,在没有延迟日志截断的亲开沟下,自动检查点都会阶段日志中没有使用的部分。
- Also, under the simple recovery model, an automatic checkpoint is also queued if the log becomes 70 percent full. 这句话有歧义?是否是理解为,在简单模式下,如果数据库的日志填充不足70%,那么及时到了checkpoint的自动执行时间,也不会执行,而是等到 日志填充大于 70%才执行该指令?
3.1.2 recovery interval 设置
- 在长时间运行的大事务没有回滚时,数据库恢复所耗费的时间通常都超过了1分钟;
- 检查点过于频繁,内存数据页写入到磁盘影响了数据库的IO性能
#查看数据库 recovery interval配置值
select * from sys.sysconfigures where comment like'%recovery%interval%' #开启高级选项
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE ;
GO #配置 recovery interval 为两分钟
EXEC sp_configure 'recovery interval', 2 ;
GO
RECONFIGURE;
GO #关闭高级选项
EXEC sp_configure 'show advanced options', 0;
GO
RECONFIGURE ;
GO
3.2 间接检查点
- 间接检查点可以减少整体数据库恢复时间。
- 间接检查点使您可以通过控制 REDO 期间随机 I/O 的开销来可靠控制数据库恢复时间。 这使服务器实例不超过给定数据库的恢复时间上限(长时间运行的事务导致过多 UNDO 时间时除外)。
- 间接检查点通过在后台不断地将脏页写入磁盘来减小与检查点有关的 I/O 蜂值。
它的缺点:
- 对于OLTP系统,配置间接检查点后,会使用后台的写入线程,从而增加服务器实例的总写入负荷,可能造成性能下降
3.3 手动检查点
3.4 内部检查点(摘自MSDN)
内部检查点由各种服务器组件生成,以确保磁盘映像与日志的当前状态匹配。 生成内部检查点以响应下列事件:
- 已经使用 ALTER DATABASE 添加或删除了数据库文件。
- 进行了数据库备份。
- 创建了数据库快照,不管 DBCC CHECK 是显式还是内部执行。
- 执行了需要关闭数据库的活动。 例如,AUTO_CLOSE 设置为 ON 并且关闭了数据库的最后一个用户连接,或者执行了需要重新启动数据库的数据库选项更改。
- 通过停止 SQL Server (MSSQLSERVER) 服务停止了 SQL Server 实例。 任一操作都会在 SQL Server 实例的每个数据库中生成一个检查点。
使 SQL Server 故障转移群集实例 (FCI) 脱机。
SQL SERVER的检查点checkpoint的更多相关文章
- SQL Server MYSQL 检查点的好处
执行检查点时: 如果一个事务不没有提交.日志缓存还是会被更新到磁盘上的物理文件. 这样做就使得大事务commit 时也特别快!
- SQL Server CheckPoint的几个误区
有关CheckPoint的概念对大多数SQL Server开发或DBA人员都不陌生.但是包括我自己在内,大家对于CheckPoint都或多或少存在某些误区,最近和高文佳同学(感谢高同学的探讨) ...
- 人人都是 DBA(IV)SQL Server 内存管理
SQL Server 的内存管理是一个庞大的主题,涉及特别多的概念和技术,例如常见的 Plan Cache.Buffer Pool.Memory Clerks 等.本文仅是管中窥豹,描述常见的内存管理 ...
- SQL Server的实例恢复解析
同Oracle一样,SQL Server在非一致性关闭的时候也会进行实例恢复(Instance Recovery),本文根据stack overflow的文章介绍一些SQL Server实例恢复的知识 ...
- 转 SQL Server中关于的checkpoint使用说明
在SQL Server中有一个非常重要的命令就是CheckPoint,它主要作用是把缓存中的数据写入mdf文件中. 其实在我们进行insert, update, delete时,数据并没有直接写入数据 ...
- SQL Server中的database checkpoint
基于性能方面的考虑, 数据库引擎会在内存(buffer cache)中执行数据库数据页(pages)的修改, 不会再每次做完修改之后都把修改了的page写回到磁盘上. 更准确的说, 数据库引擎定期在每 ...
- Change the Target Recovery Time of a Database (SQL Server) 间接-checkpoints flushcache flushcache-message
Change the Target Recovery Time of a Database (SQL Server) 间接checkpoints flushcache flushcache-mes ...
- SQL Server差异备份的备份/还原原理
SQL Server差异备份的备份/还原原理 记住一点:差异备份是基于最后一次完整备份的差异,而不是基于最后一次差异的差异 备份过程: 1-完整备份之后有无对数据库做过修改,如果有,记录数据库的最 ...
- SQL Server中的事务日志管理(7/9):处理日志过度增长
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
随机推荐
- jsp分页的不同实现方法
一.代码实现分页 定义四个分页变量 pageNow 表示第几页 该变量是由用户来决定的,因此是变化的 pageCount 表示总共有多少页,该变量是计算出来的, ---考虑算法 pag ...
- SQL SERVER 2000 数据恢复(分离数据库+附加数据库)
一.分离数据库 SQL Server 2000允许分离数据库的数据和事务日志文件,然后将其重新附加到同一台或另一台服务器上.分离数据库将从SQL Server 删除数据库,所以当点击“分离数据 ...
- 7.广播和多播,IGMP协议
1.单播,多播,广播的介绍 1.1.单播(unicast) 单播是说,对特定的主机进行数据传送.例如给某一个主机发送IP数据包.这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来 说 ...
- APPcache
<!DOCTYPE html> <html manifest="example.appcache"> <head> <title>& ...
- Python3基础 global关键字 使函数的局部变量升格为全局变量
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- 2.1. 托管对象模型是什么(Core Data 应用程序实践指南)
托管对象模型是一种数据结构.在这里,数据结构.纲要.对象图.数据模型.托管对象模型这些术语是一个意思.它们是对同一个东西不同场景的描述.比如,对Core Data 而言是托管对象模型,对设计器来说是对 ...
- 2.5. Integer 16 、Integer 32、Integer 64(Core Data 应用程序实践指南)
Core Data 使用 “带符号的整数”,通常我们会选择Integer 32,如果不够,可以升级为Integer 64 (第3章),通过升级托管对象模型. 这三种类型对应的特性(Property)类 ...
- HDU-4371-Alice and Bob
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4371 这题在比赛的时候看错了题意,卡了很久都没做出来,也没有再回头仔细去看题,所以没做出来,之后再看别 ...
- 采用FirePHP调试PHP程序
采用FirePHP调试PHP程序 FirePHP是什么? FirePHP是一个利用Firebug console栏输出调试信息方便程序调试.这一切只需要调用几个简单的函数. 他看起来是怎么个样子? 1 ...
- TypeScript入门指南(JavaScript的超集)
TypeScript入门指南(JavaScript的超集) 你是否听过 TypeScript? TypeScript 是 JavaScript 的超集,TypeScript结合了类型检查和静态分析 ...