SQL Server中的事务日志管理(4/9):简单恢复模式里的日志管理
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的。你只要确保每个数据库都有正确的备份。当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时。这系列文章会告诉你每个DBA应该知道的具体细节。
这个标题近乎是用词不当,因为很大程度上,运行在简单模式里不需要日志管理。在简单模式里,事务日志的唯一目的是在数据库恢复操作期间,保证事务的ACID属性,还有强制数据库的一致性和事务的持久性。事务日志不能被备份,不能用来数据库恢复,也不能用作日志传输。
在简单模式里工作
所有事务还是被记录,尽管特定大容量操作是最小化日志;实际上,日志级别和大容量日志里的应用非常类似。日志的活动部分还是照常维护,因此任何时候数据库在简单模式里启动后,恢复进程会进入,数据文件会用事务日志内容调和。
但是,在简单模式里,所有的虚拟日志文件(VLF)被标记为如第2篇里的不活动(可恢复),在定期的数据库检查点期间会自动截断。这就是说,当检查点发生时,文件里任何最高LSN小于最低LSN的VLF都会被截断,结果在事务文件里的空间会定期和经常重用。
简单恢复模式里的数据库总会是自动截断模式。如第3篇里描述的,所有的用户数据库,在第一次完整备份进行前,实际上是自动截断模式。
检查点多少时间发生一次?
为了恢复数据库到恢复区间(recovery interval)服务器配置选项指定时间里,基于需要处理的日志记录数,SQL Server引擎决定多少时间进行一次检查点。如果你的数据库是只读的,检查点之间的时间可能会很长。但是,在业务上频繁更新的系统,检查点会近每一分钟发生一次。点击https://msdn.microsoft.com/zh-cn/library/ms189573.aspx查看详细介绍。
正如上一篇文章讨论的,完整恢复模式里,事务日志维护“不活动的历史或关闭的事务”,连同活动/打开的事务。这个”历史“可以在日志备份里捕获,用来还原数据库到先前的一个时间点。但是,在简单模式里,这个历史不存在因此日志不能用来还原数据库到先前的一个时间点。事实上,在简单恢复模式里,你甚至不能进行事务日志备份,如下代码所演示。
USE master;
ALTER DATABASE TestDB
SET RECOVERY SIMPLE;
BACKUP Log TestDB
TO DISK ='C:\BACKUP\TestDB_log.bak'
GO
这表示你的备份计划只能在完整和差异备份计划里执行。
简单模式的支持与反对
简单模式的缺点,肯定是你丢失数据的机率会很高,因为你只能恢复数据库到最近的完整或差异备份。刚才提到过,如果丢失数据是以分钟衡量,不是以小时衡量,不要使用简单模式。
但是,如果你运行的是开发或测试数据库,或者甚至是一个只读的生产数据库,那么使用简单模式可能是一个可行的,甚至是一个明智的选择,这会大大减轻数据库上的维护负担。备份的存储空间会更少,后续的恢复操作会更简单。此外,因为事务日志是自动截断的,你很少有日志增长失控的风险,引起9002错误。
尽管简单模式明显减轻了事务日志管理的负担,这样认为是错误的。如果你使用这个模式,你会完全忘记日志维护。事务日志在数据库的日常操作中还是扮演着重要角色,你还是需要正确调整事务日志的大小和增长,根据数据库受到的事务本质和频率。不是因为日志是自动截断的,这不表示健壮和长时间运行的事务不会导致日志快速增长,如果你没有正确调整大小,还是会给你带来麻烦——这个会在第7篇-第8篇详细介绍。
SQL Server中的事务日志管理(4/9):简单恢复模式里的日志管理的更多相关文章
- SQL Server中的事务日志管理(7/9):处理日志过度增长
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- SQL Server中的事务日志管理(6/9):大容量日志恢复模式里的日志管理
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- SQL Server中的事务日志管理(5/9):完整恢复模式里的日志管理
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- SQL Server中的事务日志管理(3/9):事务日志,备份与恢复
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- 第17周翻译:SQL Server中的事务日志管理的阶梯:第5级:在完全恢复模式下管理日志
来源:http://www.sqlservercentral.com/articles/Stairway+Series/73785/ 作者:Tony Davis, 2012/01/27 翻译:刘琼滨. ...
- 第16周翻译:SQL Server中的事务日志管理,级别3:事务日志、备份和恢复
源自: http://www.sqlservercentral.com/articles/Stairway+Series/73779/ 作者: Tony Davis, 2011/09/07 翻译:刘琼 ...
- SQL Server中的事务日志管理的阶梯,级别1:事务日志概述
SQL Server中的事务日志管理的阶梯,级别1:事务日志概述 翻译:刘琼滨 谢雪妮 许雅莉 赖慧芳 级别1:事务日志概述 事务日志是一个文件,其中SQL服务器存储了所有与日志文件关联的数据库执行的 ...
- 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
简介 在简单恢复模式下,日志文件的作用仅仅是保证了SQL Server事务的ACID属性.并不承担具体的恢复数据的角色.正如”简单”这个词的字面意思一样,数据的备份和恢复仅仅是依赖于手动备份和恢复.在 ...
- 浅谈SQL Server中的事务日志(一)----事务日志的物理和逻辑构架
简介 SQL Server中的事务日志无疑是SQL Server中最重要的部分之一.因为SQL SERVER利用事务日志来确保持久性(Durability)和事务回滚(Rollback).从而还部分确 ...
随机推荐
- Lotus中关于字符串处理的函数汇总
我们在使用LotusScript编写代理程序的时候,很多时候我们会遇到需要处理字符串的情况,本文就对平时遇到的相关函数做一个汇总. Sub Initialize Dim testStr As Str ...
- ASP.NET 4.5 和 Visual Studio 2012 中的新功能
原文地址:http://www.asp.net/aspnet/overview/aspnet-and-visual-studio-2012/whats-new#_Toc318097372
- c# 小数取整
向上取整 math.ceiling() = math.ceiling( math.ceiling( 向下取整 math.) = math. math. C#取整函数实例应用详解 C#取整函数的相关使用 ...
- android 中 ViewPager 的平常用法 ViewPager+ Views
延续前面几个的经常用到的ViewPager, 直接加载各种不同的 View 工程目录: 代码: public class ViewActivity extends Activity { // 每个Vi ...
- 云服务器上安装配置Filezilla Server的坑!
1.Filezilla被动模式配置如下,需要使用比较大号的端口,用1024以内的不行! 2.相应的,IP筛选器放开TCP-50020端口.不是UDP! 3.可以正常访问了.GOOD! 4.注意,服务器 ...
- Asp.net Core WebApi 使用Swagger做帮助文档,并且自定义Swagger的UI
WebApi写好之后,在线帮助文档以及能够在线调试的工具是专业化的表现,而Swagger毫无疑问是做Docs的最佳工具,自动生成每个Controller的接口说明,自动将参数解析成json,并且能够在 ...
- tomcat java.net.BindException: Cannot assign requested address 解决方法
今天线上TOMCAT启动时遇到了下比较麻烦的问题,错误如下: 21-Apr-2016 15:14:19.077 SEVERE [main] org.apache.catalina.core.Stand ...
- 程序猿每个VPN真卡手
昨天起使用了好久好久觉得是世上最好用的poVPN貌似跑路了 刚刚续费了一年也就这样没有了,可是更多的是心疼没有好用的vpn服务. 不过查到了一个红杏chrome插件,不是vpn 如果单单上网页足够了 ...
- c++中两个类互相引用的问题
最近在改一个C++程序的时候碰到一条警告信息,警告信息为:“ 删除指向不完整“Q2DTorusNode”类型的指针:没有调用析构函数 1> c:\users\lxw ...
- 自己做的加速app测试流程的小工具,目前打算开放使用,想注册的朋友抓紧了,嘻嘻
为了加速小团队app的测试流程做了这个东西,www.xunce.net 主要特性: web: 一键上传app,方便随时下载 备注测试要点 添加附件,如checklist等文档 自动识别app版本,名 ...