SQL SERVER 2005 以后三种恢复模式: 简单(Sample),完全(Full),大批量(Bulk_Logged)

完全备份模型

完全备份模式是指在出现数据文件毁坏时丢失数据的风险最小。如果一个数据库在此模式下是,所有操作都会被完全记录下来,这意味着记录使用INSERT操作增加的每一行,使用DELETE操作删除的每一行和使用UPDATE操作修改的每一行,SQL server还会将使用BCP和BULK insert 操作插入的每一行完全被记录到事物日志中。如果遇到一个数据库备份之后一直在做着定期事务日志备份,那么我们就可以将数据库恢复到最后的日志备份之前任何一个时间点的状态。另外,如果在数据文件出故障之后有日志文件可用,那么我们可以将DB恢复到故障前已提交的最后一个日志的状态。SQL SERVER2005以后也支持一个成为日志标识(LOG MARKS)的特性,这允许我们在事务日志中放置一些参照点。如果数据是在完全恢复模式下,我们可以选择恢复某个日志标志时的状态。

在完全恢复模式下,SQL SERVER 也会完全记录CREATE INDDEX 操作,当从包含创建索引的事务日志备份中恢复时,由于索引不必重建,恢复操作会进行的非常迅速---所有的索引页都已经作为数据库备份的一部分被获取。在SQL SERVER 2000之前sql server只记录一个所有已经被创建的事实,这样一来当我们从日志文件备份中恢复时,整个索引将会不得不重新建立。

看起来完全恢复模式是最好的,但是这是要付出其他的代价的。其中最大的待机就是事务日志会相当的大。

大批量恢复模型(BULK Logged)

大批量恢复模式允许我们在出现介质故障时完全地还原数据库,它还能够对某些大批量操作提供最佳的性能和最小的日志使用空间。这些大批量操作包含 BULK INSERT, BCP, CREATE INDEX, SELECT INTO, WRITETEXT 和UPdatetext。对完全恢复模式,这些操作是完全被记录的,但是对大批量恢复模式,对它们的记录是最小量的。

当执行大批量操作中的某一种操作时,SQL SERVER 只会记录该操作曾经发生过和关于该操作分配空间的信息。但是因为SQL SERVER跟踪了该大批量操作实际上修改了那些区,所以该操作还是可以完全恢复的。在数据库中的每一个数据我那件都至少有一个成为大批量更改地图(BULK CHANGE MPA, BCM)的页面,SQL SERVER对该页面的管理类似 GAM SGAM的管理。

因为能够最小量的记录大批量的操作,所以这些操作能够比在完全备份模式时执行的要快的很多。在正确的BCM页面设置各个标志位需要一些开销,但是与记录每一个对数据和索引的单独更改相比,翻转这些位的开销要小的多。

如果数据库在bulk logged模式下并且没有实际执行任何大批量操作,以为该日志将会包含数据库所有改变的完整顺序记录,所以我们能够将数据库还原到任一个时间点或者命名日志标识。

在备份日志期间会有些开销,除了将事务日志的内容复制到备份介质,SQL SERVER会扫描BCM页面并在备份事务日志的同时备份所以修改过的区。日志文件自身会保持很小,但是该日志的备份可能会比日志文件大上很多倍,所以日志备份需要更多的时间并且可能会比FULL模式消耗更多的空间。还原一个在大批量模式所做的日志备份所消耗的时间与还原一个在FULL模式下所做的日志备份用的时间基本相同。还原过程不需要重做各个操作,恢复所有数据和索引结构所需要的信息都包含在日志备份中。

简单恢复模型(Sample)

简单恢复模型(Sample)

简单恢复模型提供了最简单的备份----恢复策略。每当有检查点发生时(检查点会定时地,经常地发生),事务日志都会被阶段。因此,所能进行备份的备份类型就是那些不需要日志备份的类型。这些类型的备份有完全备份数据库备份,增量备份,部分完全备份,部分增量备份和针对只读文件组的文件组备份。在简单恢复模式下如果试图进行日志备份,那么会收到错误信息,因为该模式的备份不需要日志的,一旦它所包含的所有事务被提交或者回滚,该日志的各部分就能够被重新利用,并且服务器或者事物出现故障时恢复也不需要这些事物信息。事实上,一旦数据库改变到简单模式下,日志就会被截断。

需要注意:简单模式不是不记录日志。所谓的“简单”是我们的备份策略不需要担心日志备份,虽然单个的日志记录并不如在完全备份模式下的,但是在简单模式下是的所有操作都会被记录。因为在大批量恢复模式中谈论的大批量操作在这里也会以最小量记录,所以简单模式下一个数据库的日志可能没有完全模式下的日志增长那么快那么多。这并不是说在简单模式下我们就不用关系日志文件的大小。就像在任何恢复模式中一样,活动食物的日志记录无法被截断并且在最老的活动食物之后开始的所有事物的日志记录都不能被截断。所以,如果有大型或者长时间的事务,仍然会需要大量日志空间。

SQL SERVER数据库 三种 恢复模式的更多相关文章

  1. SQL SERVER数据库三种数据插入方式

    数据插入:INSERT INTO A(CBM,CMC) VALUES('1','测试')--单条数据插入INSERT INTO A(CBM,CMC)SELECT '1','测试'--单条数据插入INS ...

  2. Sql Server数据库备份和恢复:原理篇

    本文与您探讨为什么Sql Server有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的Sql ...

  3. sqlserver 三种恢复模式

    sql server数据库提供了三种恢复模式:完整,简单和大容量日志,这些模式决定了sql server如何使用事务日志,如何选择它要记录的操作,以及是否截断日志.截断事务日志是删除己执行事务并把该日 ...

  4. SQL Server数据库的三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式(转载)

    SQL Server数据库有三种恢复模式:简单恢复模式.完整恢复模式和大容量日志恢复模式: 1.Simple 简单恢复模式, Simple模式的旧称叫”Checkpoint with truncate ...

  5. 转 一篇关于sql server 三种恢复模式的文章,从sql server 的机制上来写的,感觉很不错,转了

    简介 SQL Server中的事务日志无疑是SQL Server中最重要的部分之一.因为SQL SERVER利用事务日志来确保持久性(Durability)和事务回滚(Rollback).从而还部分确 ...

  6. Sqlserver CheckPoint 在三种恢复模式中的不同表现

    准备: 日志截断在下列情况下发生: 1.执行完 BACKUP LOG 语句时.2.在每次处理检查点时(如果数据库使用的是简单恢复模式).这包括 CHECKPOINT 语句所产生的显式检查点和系统生成的 ...

  7. SQL Server的三种物理连接之Loop Join(一)

    Sql Server有三种物理连接Loop Join,Merge Join,Hash Join, 当表之间连接的时候会选择其中之一,不同的连接产生的性能不同,理解这三种物理连接对性能调优有很大帮助. ...

  8. Sql Server中三种字符串合并方法的性能比较

    文章来自:博客园-DotNet菜园 最近正在处理一个合并字符吕的存储过程,在一个测试系统的开发中,要使用到字符串合并功能,直接在Sql中做.示例:有表內容﹕名称  內容1     abc1      ...

  9. SQL Server的三种物理连接之Hash Join(三)

    简介 在 SQL Server 2012 在一些特殊的例子下会看到下面的图标: Hash Join分为两个阶段,分别为生成和探测阶段. 首先是生成阶段,将输入源中的每一个条目经过散列函数的计算都放到不 ...

随机推荐

  1. GTK编程

    一.简介 GTK(GIMP Toolkit)是一套跨多种平台的图形工具包,按LGPL许可协议发布的.虽然最初是为GIMP写的,但早已发展为一个功能强大.设计灵活的通用图形库.特别是被GNOME选中使得 ...

  2. EZOJ #81

    传送门 分析 每次拿a中最大的去匹配b中最小的 至于原因画个图感性思考一下就可以啦 代码 #include<iostream> #include<cstdio> #includ ...

  3. python3-字典的增删改查

    # Auther: Aaron Fan info = { "stull01":"alen zhang", "stull02":"s ...

  4. JavaWeb_内省(Instrospector)

    内省是什么? 开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都是用反射技术完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作Java对象的属性. 什么是Java对象的 ...

  5. c/c++头文件中#ifndef/#define/#endif的用法

    想必很多人都看过“头文件中用到的 #ifndef/#define/#endif 来防止该头文件被重复引用”.但是是否能理解“被重复引用”是什么意思?头文件被重复引用了,会产生什么后果?是不是所有的头文 ...

  6. 3.内网渗透之reGeorg+Proxifier

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxIAAAE2CAIAAAB6BDOVAAAgAElEQVR4Aey9Z5Aex3X327MRGVzkRH ...

  7. WordCount优化-第四周小组作业

    一.基本功能 GITHUB项目地址:https://github.com/LongtermPartner/ExtendWordCount PSP表格填写: PSP2.1 PSP阶段 预估耗时 (分钟) ...

  8. 简单的使用rabbitmq的例子

    1.创建了两个项目 : (1).spring_cloud_rabbitmq_send 消息发送者 (2).spring_cloud_rabbitmq_receive  消息接受者 2. 添加rabbi ...

  9. Algorithms - Insertion sort

    印象 图1 插入排序过程 思想 插入排序(Insertion Sort)的主要思想是不断地将待排序的元素插入到有序序列中,是有序序列不断地扩大,直至所有元素都被插入到有序序列中. 分析 时间复杂度: ...

  10. [TJOI2015]线性代数(网络流)

    [TJOI2015]线性代数(最大权闭合子图,网络流) 为了提高智商,ZJY开始学习线性代数.她的小伙伴菠萝给她出了这样一个问题:给定一个n*n的矩阵B和一个1×n的矩阵C.求出一个1×n的01矩阵A ...