欢迎来到天天文库
浏览记录
ID:32751348
大小:81.31 KB
页数:7页
时间:2019-02-15
《浅谈sqlserver中的事务日志(三)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、在简单恢复模式下日志的角色简介在简单恢复模式下,日志文件的作用仅仅是保证了SQLServer事务的ACID属性。并不承担具体的恢复数据的角色。止如”简单”这个词的字面意思一样,数据的备份和恢复仅仅是依赖于手动备份和恢复.在开始文章之前,首先要了解SQLServer提供的儿种不同备份类型。SQLServer提供的几种备份类型SQLServer所提供的几种备份类型基本可以分为以下三种(文件和文件组备份以及部分备份不在本文讨论Z列):1•完整(Full)备份滇接将所备份的数据的所有区(Extent)进行复制。这里值得注意的有2占・•完整备份并不像其名字“完整”那样备份所有部分,而是仅备份数据库
2、木身,而不备份日志(虽然仅仅备份少量11志用于同步)•完整备份在备份期间,数据库是可用的。完整备份会记录开始备份时的MinLSN号,结束备份时的LSN号,将这个区间的H志进行备份,在恢复吋应用到被恢复的数据库(这里经过修改,感谢魔君六道指出)2.差^(Differential)备份:只备份上次完整备份后,做修改的部分。备份单位是区(Extent)oS味着某个区内即使只有一页做了变动,则在差异备份里会被体现.差异备份依靠一个BitMap进行维护,一个Bit对应一个区,自上次完整备份后,被修改的区会被置为1,而BitMap中被置为1对应的区会被差异备份所备份。而到卜•一次完整备份后,BitM
3、ap中所有的Bit都会被重置为0。3.U志(Log)备份:仅仅备份白上次完整备份或志备份之后的记录。在简单模式下,U志备份毫无意义(SQLServer不允许在简单恢复模式下备份日志),下文会说明在简单恢复模式下,为什么日志备份没有意义。简单恢复模式(SimpleRecoveryMode)在简单恢复模式下,F1志仅仅是为了保证SQLServer事务的ACID。并没有恢复数据的功能•比如,我们有一个备份计划,如下:--期星II(M异)(M异)」£JhtipT/www.cnblogs.co巴/cmeyson我们在每周一0点做一次完整备份,在周三0点和周五0点分别做差异备份。在简单恢复模式下,如
4、果周六数据库崩溃。我们的恢复计划只冇根据周一0点的做的完整备份恢复后,再利用周五0点的差异备份进行恢复.而周五0点Z后到服务器崩溃期间所冇的数据将会丢失。正如”简单”这个词所涵盖的意思,在简单恢复模式下,口志可以完全不用管理。而备份和恢复完全依赖于我们a己的完整和差异备份.恢复模式是一个数据库级别的参数,可以通过在SSMS里或通过SQL语句进行配置:豐数据库国性一db_personlaiiager迭择页siln5EK-rrk改限展像务更权扩漬事服务器:连接:CAREYSON"PCCareySon蓉杳看i车捋屋性进度就绪排序规则(C):饭复模式(M):兼容级别0-):可"IA4±1X®1
5、S其他选项(旳:设置__I—zlIChineseJRC^CI.AS曰ServiceBrokerBroker已启用TrueServiceBroker标识符8f0cbca5-7b90-4918-;[服从Broker优先级False曰恢复页验证TORN_FAGE_DETECTION日游标默认游标GWBAL提交时关闭游标功能已启用False日杂项ANSINULL默认值FalseA1TSINULLS已启用FalseANSI嚳告已启用FalseANSI填充已启用FalseVarDecimal存储格式已启用True羞数化简单串联的Null结果为NullFalse递归触发器已启用False可信False
6、跨数据库所有权站接已启用False日期相关性优化已启用False数值舍入中止False算术中止已启用False允许帯耳IE的标识符FJseAHSIHULL默认值hnr简单恢复模式下日志的空间使用在本系列文章的第--篇文章提到过,H志文件会划分成多个VLF进行管理,在逻辑上记录是线性的,给每个记录一个顺序的,唯一的LSN。而在简单恢复模式下,为了保证事务的持久性,那些有可能冋滚的数据会被写入LI志。这些IJ志需要被暂时保存在I」志以确保在特定条件下事务可以顺利冋滚。这就涉及到了一个概念一最小恢复LSN(MinimumRecoveryLSN(MinLSN))MinLsn是在述耒结束的事务记录
7、在日志中最小的LSN号,MinLSN是下列三者Z—的最小值:•Checkpoint的开始LSN•还未结束的事务在H志的最小LSN•尚未传递给分发数据库的最早的复制事务起点的LSN.下图是一个口志的片段:LSN146LSN0147LSN148BeginBeginUpdateCheckUpdateCommitCh-eckUpdateTraniTran2Tran2pointTraniTranipaintTran2(图片摘自MSDN)可
此文档下载收益归作者所有