SQL Server 备份简述

SQL Server支持多种不同类型的备份,但最常用的还是完整备份、差异备份和事务日志备份。至于说到底能使用哪一种备份还要参考数据库的恢复模式,如简单恢复模式就不支持事务日志备份。

完整备份

备份指定数据库中的所有数据,数据量比较大的时候,备份和恢复的成本会比较高,其过程是:首先会锁定数据库,阻塞所有事务,立即在事务日志中写入一个标志1,并迅速释放数据库锁,这个过程是很快的。

然后提取数据文件中所有包含数据的页面写入到备份设备中。不包含数据的页面会被略过。

然后,再一次锁定数据库,阻塞所有事务,在事务日志中写一个标志2,并迅速释放数据库锁。

最后再提取标志1和2之间的事务,并写入数据到备份设备中。

如下图所示:

在此图中,D表示有数据的页面,L是日志文件,如果使用的是完整备份的话,首先是打个标记1,然后将所有的数据页面备份到设备中,然后再打个标记2,将标记1和标记2中间的日志文件所产生的数据再添加到备份设备中。

差异备份

差异备份比较好理解,它是相对于完整备份来说,备份的是完整备份之后发生更改的内容,但仅限完整备份,跟上一次的差异备份没有任何关系。差异备份的大小取决于自建立差异基准后更改的数据量。通常,差异基准越旧,新的差异备份就越大。特定的差异备份将在创建备份时捕获已更改的区的状态。如果创建一系列差异备份,则频繁更新的区可能在每个差异中包含不同的数据。当差异备份的大小增大时,还原差异备份会显著延长还原数据库所需的时间。因此,建议按设定的间隔执行新的完整备份,以便为数据建立新的差异基准。例如,您可以每周执行一次整个数据库的完整备份(即完整数据库备份),然后在该周内执行一系列常规的差异数据库备份。

我们都知道数据库中的数据页是8KB的大小,8个连接数据页称为一个区。然后,还有一个映射表称为,差异位图来映射到所有的数据区。当我们做了一个基准,即完整备份之后,相应映射表中的位置就会被清零,如果发生了数据改变,相应位置会变为1。如下图所示:

该图显示了二十四个数据区,其中的六个已发生更改。差异备份只包含这六个数据区。差异备份操作取决于位图页,此页针对每个区包含一位。

事务日志备份

事务日志,用于记录数据库中的所有事务操作以及每个事务对数据库所做的修改。但一个数据库能否进行事务日志备份,取决于数据库的恢复模式,如果是完整恢复模式或者是大容量日志恢复模式则可以对数据库进行事务日志备份。

如果是完整恢复模式,则在进行事务日志备份时,系统会扫描所有的虚拟日志文件(VLF),从上一次事务日志备份后被新增的日志记录。并将这些日志记录添加到备份文件中。

与完整恢复模式(完全记录所有事务)相比,大容量日志恢复模式只对大容量操作进行最小记录(尽管会完全记录其他事务)。大容量日志恢复模式保护大容量操作不受媒体故障的危害,提供最佳性能并占用最小日志空间。也就是说大容量日志恢复模式将阻止捕获对每个事务逐一所做的更改,只记录大容量操作所更改的事务和数据,则无法还原到该日志备份中的时点,而只能还原整个日志备份。

大容量日志备份恢复下的事务日志备份原理也需要用到一个位图页,这点和差异备份有点类似。

为跟踪数据页,日志备份操作依赖于位图页的大容量更改,位图页针对每个区包含一位。在经过一次日志备份后,数据页区所对应的位图页中的位置会清零。然后,对于自上次日志备份后由大容量日志操作所更新的每个区,在位图中将每个位都设置为 1。数据区将复制到日志中,后跟日志数据。下图显示了日志备份的构造方式。

以上是SQL Server较为常用的三种备份。

仅复制备份选项

在SQL Server 2005及以后的版本中,多出一个仅复制备份选项,这个选项什么时候可以用到?用微软的话来说:

仅复制备份”是独立于常规 SQL Server 备份序列的 SQL Server 备份。 通常,进行备份会更改数据库并影响其后备份的还原方式。 但是,有时在不影响数据库总体备份和还原过程的情况下,为特殊目的而进行备份还是有用的。 仅复制备份就是用于此目的。

仅复制备份是独立于SQL Server备份的正常序列的,也就是说如果我们现在使用仅复制备份对数据库做了一次完整备份,是不对生成一个新的基准的,不会影响到差异备份的,差异备份所认为的基准还是上一次完整备份;如果在进行完整备份时选择了仅复制备份,则不论是此次的完整备份还是日志备份,事务日志是不会被截断的,也就是不会影响到原有的日志链。因此,现在AlwaysOn辅助节点上,可以使用仅复制备份选项来对数据库进行完整备份和事务日志备份,而不去影响原有的日志链。

仅复制备份适用于完整备份和日志备份,但不适用于差异备份。本文中的详细内容,可以参考:https://msdn.microsoft.com/zh-cn/library/ms187048(v=sql.105).aspx

时间: 2024-10-14 09:31:18

SQL Server 备份简述的相关文章

SQL Server 备份和还原

SQL Server 备份和还原 SQL Server 备份 恢复模式 SQL Server 数据恢复模式分为三种:完整恢复模式.大容量日志恢复模式.简单恢复模式. 完整恢复模式 默认的恢复模式,它会完整记录下操作数据库的每一个步骤,使用完整恢复模式可以将一个数据库恢复到一个特定的时间点,这个时间点可以是最近一次可用的备份.一个特定的日期和时间的事务. 大容量日志恢复模式 它是对完整恢复模式的补充,就是要对大容量操作进行最小日志记录,节省日志文件的空间. 比如说一次在数据库中插入几十万条记录时,

Centos7.3 下SQL Server 备份及还原的两种方式

Centos7.3 下SQL Server 备份及还原的两种方式 我们前面两篇文章介绍了Centos7.3下SQL Server的安装配置及使用Powershell的管理介绍,今天我们接着介绍如何实现Centos7.3 下SQL Server  备份及还原,有两种方式:1.使用SSMS备份及还原,该方式最为简单也最方便操作的方式,2.使用Linux下SQL Server自带功能命令备份,具体见下: 我们上一篇中创建了一个测试数据库,我们接着拿这个数据库进行测试,我们首先使用第一种方式,使用SSM

SQL Server 备份和还原全攻略

原文:SQL Server 备份和还原全攻略 一.知识点 完全备份: 备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件.(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存档属性).完全备份也叫完整备份. 差异备份: 差异备份是针对完全备份:备份上一次的完全备份后发生变化的所有文件.(差异备份过程中,只备份有标记的那些选中的文件和文件夹.它不清除标记,即:备份后不标记为已备份文件,换言之,不清除存档属性). 增量备份: 增量备份是针对于上一次备份(无论是

使用Windows Azure Blob 存储服务进行 SQL Server 备份和还原

好处: 1.灵活.可靠.无限制, 安全的站点外存储 2.即时.高度可用.耐久的备份存档方案. 3.仅对使用的服务付费.可以作为经济合算的站点外备份存档方案. 对于 Windows Azure Blob 存储服务的 SQL Server 备份支持是 SQL Server 2012 SP1 CU2 增强功能,当然sql server 2014也是可以的. 第 1 课:创建 Windows Azure 存储对象 步骤: 1.创建 Windows Azure 存储帐户和 Blob 容器. 创建存储账户,

SQL Server 备份维护计划

原文:SQL Server 备份维护计划 1. 创建维护计划:SSMS -> 管理 -> 维护计划 -> 新建维护计划 2. 添加子计划(备份计划) a) 每30分钟:事务日志备份  每天:差异备份  每周:完整备份 b) 维护计划会自动创建作业

SQL Server备份事务日志结尾(Tail)

原文:http://blog.csdn.net/tjvictor/article/details/5256906 ? 事务日志结尾经常提交数据库未备份的事务日志内容.基本上,每一次你执行事务日志备份时,你都在执行事务日志结尾的备份. 那为什么会这么设计呢?因为也许由于介质的损坏,当数据库已经不再可用时,麻烦就来了.如果下一个逻辑步骤正好就是要备份当前事务日志的话,可以应用这个备份来使数据库处于等待(Standby)状态.你甚至可以在数据库文件不可用的状态下使用NO_TRUNCATE来备份事务日志

SQL点滴12—SQL Server备份还原数据库中的小把戏

原文:SQL点滴12-SQL Server备份还原数据库中的小把戏 备份数据库时出现一个不太了解的错误 ,错误信息“is formatted to support  1 media families, but 2 media families are expected according to the backup device specification”.如下图: 解决办法是首先选中击上一次备份的文件,点击Remove,去掉当前的备份文件,然后再点击OK备份.这样才能正确的备份.也在微软帮助

【SQL Server备份恢复】维护计划实现备份:每周数据库完整备份、每天差异备份、每小时日志备份

原文:[SQL Server备份恢复]维护计划实现备份:每周数据库完整备份.每天差异备份.每小时日志备份 在数据库管理中,数据库备份是非常重要的. 通过维护计划向导,可以很方便的完成数据库备份. 下面的例子说明了如何实现数据库的备份,具体的备份策略是:每周日一次完整备份.每天差异备份(除周日外).每小时日志备份. 此外,还可以指定删除过期备份策略,比如,把10天前的备份删除,因为硬盘空间是有限的. 1. 2. 3. 4.这里你可以自定义名称,这里用了默认的MaintenancePlan,另外选择

SQL Server 备份故障

故障信息如下: 标题: Microsoft SQL Server Management Studio------------------------------备份 对于 服务器“*******”失败.  (Microsoft.SqlServer.SmoExtended)有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.4000.0+((KJ_PCU_Main).12062