SQL Server 2008数据备份与还原的原理是什么?

图片 15

4、使用zhangsan登录测试权限。

图2:备份时选择,还原时要还原的备份集里显示的是已覆盖的备份集,以前追加的备份集已被覆盖。

  尾部日志备份

2、使用zhangsan登录,测试能否创建数据库。

图3:备份时输入的备份集名称和备份集过期时间,一般备份集默认会带有名称,如有必要可以修改为有意义的名称,过期时间一般保持默认永不过程。

  事务是指一组操作要么全部成功要么全部不执行。

图片 1


复选框:选中此项会覆盖所有现有数据库以及相关文件,包括已存在的同名其他数据库或文件。

  任何数据更改操作在写入到数据文件中之前,必须先将更前后的数据写入事务日志文件中,这样当事务由于用户取消、数据逻辑错误或软硬件故障中断时能够正确的回滚或前滚到正确的状态。

图片 2

格式化磁带设备会删除当前装入的磁带中以前所有内容。
格式化磁盘只影响您为备份操作指定的文件。

  e.随时将数据恢复到任意时刻或任意一个操作之前

图片 3

● 向每个备份设备中的备份介质写入新的介质标头。

  数据变动量较大

思路:建立数据库accp,再创建一个stu表。先做一次完整备份,然后向文件中写入数据,但是不备份,然后把sqlserver服务停止,停止之后删除accp.mdf主数据库文件,把服务开启,进行尾部备份,然后还原(之前没有备份的数据也还原回来)。

◆ 复选框:db_owner, dbcreator, or sysadmin.
“>使还原的数据库仅供 db_ownerdbcreatorsysadmin
的成员使用。

  bcde四条都可以归结为完整性。

图片 4

db_owner, dbcreator, or sysadmin. “>
到此为止,数据库备份还原选项基本介绍完毕,有遗漏介绍的选项通过名称能直接明白。至于数据库备份还原脚本MSDN文档有语法和示例,再说也可以通过UI设置好后导出标准脚本。

  以上内容总结自SqlServer的产品文档SqlServerBooksOnline,如有兴趣可以在里面了解更详细的内容。这些就是备份和恢复的基础原理。

1、创建用户zhangsan,并赋予zhangsan有dbcreator的服务器权限。

db_owner, dbcreator, or sysadmin. “> ◆ RESTORE WITH
NORECOVERY,不对数据库执行任何操作,不回滚未提交的事务。可以还原其他事务日志。
此项则在还原后数据库仍然无法正常使用,也不恢复未完成的事务操作,但可继续还原事务日志备份或差异备份,让数据库能恢复到最接近目前的状态。

  在计算机数据存取过程中,保障性能的算法最终都可以归结为:索引和缓存。从实现层面到应用层面,SqlServer都在建立管理各种索引和各种缓存。

1、验证时间点还原(完整备份+事务日志备份)

选择此项可以清除以前的备份集,并使用新的媒体集备份数据库。

  在该模式下,数据库会自动把不活动的日志***,因此简化了备份的还原,但因为没有事务日志备份,所以不能恢复到失败的时间点。通常,此模式只用于对数据库数据安全要求不太高的数据库,并且在该模式下,数据库只能做完整和差异备份。

图片 5


截断事务日志
。选择此项会备份事务日志并将其截断,以便释放更多的日志空间,此时数据库处于在线状态。

  d.在服务器被完全物理摧毁的情况下,快速在新的服务器上使用远程设备上的备份将数据恢复到灾难发生之前的状态

图片 6

检查介质集名称和备份集过期时间

  单就操作过程而言,SqlServer中数据库备份和恢复过程是相当简单的,可以通过ManagementStudio的图形界面进行操作,也可以使用几句T-SQL语句完成。但要明白备份恢复的整个过程,定制符合系统需求数据库备份方案,却需要知晓数据库的实现原理。备份和恢复是数据库的核心功能。

图片 7

db_owner, dbcreator, or sysadmin. “> ◆ RESTORE WITH
RECOVERY,通过回滚未提交的事务,使数据库处于可以使用的状态。无法还原其他事务日志。
此项则让数据库在还原后进入可正常使用的状态,并自动恢复尚未完成的事务,如果本次还原是还原的最后一步操作,可以选择该项。此项为默认选项。

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

图片 8


复选框:选中此项会将已发布的数据库还原到创建该数据库的服务器之外的服务器时,保留复制设置。不过该项只有在选择了【回滚未提交的事务,使数据库处于可以使用的状态】单选按钮之后才可以使用。

  完整恢复模式

图片 9

出错时继续。如果备份数据库时发生了错误,备份工作还将继续进行。

  SqlServer也不例外,每个SqlServer数据库由数据文件(*.mdf)和事务日志文件(*.ldf)构成。SqlServer包括了从行到表,从页面到文件的各种粒度的锁。

 图片 10

事务日志,此项才会被激活)

  mdf中保存着多种类型的数据,包括表数据、索引数据和大块数据等等。每个页面只保存一种数据。

思路:创建一个数据库benet,再创建一个表stu。先做一次完整备份,然后向文件中写入数据,隔一分钟写一行,然后做事物日志备份,还原到某一时间点。

◆ 可靠性

  一、数据库原理

1、验证时间点还原(完整备份+事务日志备份)

db_owner, dbcreator, or sysadmin. “> 恢复状态:

图片 11

图片 12

● 完成后验证备份。将会验证备份集是否完整以及所有卷是否都可读。

  为默认恢复模式。它会完整记录下操作数据库的每一个步骤。使用完整恢复模式可以将整个数据库恢复到一个特定的时间点,这个时间点可以是最近一次可用的备份、一个特定的日期和时间或标记的事务。

图片 13

备份相关选项,MSDN有一篇文档讲得相当细,在此推荐。看完此文档后将对备份存储方面有一个深入的认识

  备份方式

2、尾部备份

通过《SQL Server
数据库备份和还原认识和总结》,相信您对数据备份和还原有了一个更深入的认识,在上文中我没有对事务日志做剖析,在此推荐宋沄剑的文章,对事务日志做了比较详细的讲解://www.jb51.net/article/31038.htm。本文将针对上文继续进行数据备份和还原讲解,主要讲解备份和还原的一些关键选项。
数据库备份选项

  这是事务系统最基本的原理,大多数关系数据库系统和面向对象NoSQL数据库系统都采用这种方法。

图片 14

若要创建新介质集,必须格式化备份介质。
格式化进程会对备份介质进行以下更改:

  如果数据库里的数据变动得比较频繁,损失一个小时的数据都是十分严重的损失时,用上面的办法备份数据就不可行了,此时可以交替使用三种备份方式来备份数据库。

3、使用sa用户附加myschool数据库,设置zhangsan能执行select语句查询数据库中的表数据。并设置zhangsan用户能删除student表中的数据。

数据库还原选项

  因为mdf文件中保存了数据库中数据的实时状态,那么我们只要把mdf文件拷贝一份就实现了当前时刻的数据库备份。

二、备份与还原:

● 删除旧标头,从而有效地删除备份介质中以前的内容。

  当然,也可以每周(周日)做一次完整备份,以后的每天(下班前)做一次差异备份,这样一旦数据库发生问题,同样可以将数据恢复到前一天下班时的状态。只是一周的后几天做差异备份时,备份的时间和备份的文件都会跟着增加。但这也有一个好处,在数据损坏时,只要恢复完整备份的数据和前一天差异备份的数据即可,不需要去恢复每一天的事务日志备份,恢复的时间会比较短。

3、创建数据库维护计划每周日晚上22:00对bdqn数据库进行完整备份;每天12:00和18:00对该数据库进行事务日志备份。修改系统时间,验证备份效果。

有了上图,里就明白该如何输入了,这个我没实验过,没有太大必要一一实验了。

  既然ldf文件中保存了数据库中数据变化的整个过程,那么我们就可以把这个ldf文件备份起来,然后用这些备份的事务日志记录从头重建整个数据库,而且比至第一种方法,通过事务日志记录恢复的方法可以将数据库恢复到任一时刻。

 


写入媒体前检查校验和。将会在写入备份媒体前验证校验和,如果选中此项,可能会增大工作负荷,并降低备份操作的备份吞吐量。

  数据是实时状态。

思路:建立数据库accp,再创建一个stu表。先做一次完整备份,然后向文件中写入数据,但是不备份,然后把sqlserver服务停止,停止之后删除accp.mdf主数据库文件,把服务开启,进行尾部备份,然后还原(之前没有备份的数据也还原回来)。

备份数据库时,有几个备份选项需要了解一下,覆盖介质、事务日志等。谈到覆盖介质时,必须先对这个概念有所了解,不然无从谈起。
● 介质集
:备份介质的有序集合,使用固定类型和数量的备份设备向其写入了一个或多个备份操作。介质集所使用的备份设备的数量决定了介质集中的介质簇的数量。
例如,如果介质集使用两个非镜像备份设备,则该介质集包含两个介质簇。通常,创建介质集后,后续备份操作将依次向介质集追加其备份集。
● 介质簇 :在介质集中的单个非镜像设备或一组镜像设备上创建的备份。 ●
备份集 :成功的备份操作将向介质集中添加一个备份集。
大致了解以上概念后,回到备份选项上来: ◆
备份到现有介质集-追加到现有备份集
如果要将数据库备份到磁盘上,那么选择磁盘后(可以选择一个或多个磁盘驱动器,也可选择磁带机设备,在此以磁盘驱动器为例),如果保持默认SQL
Server将自动创建一个介质集的每个卷都包含介质标头,介质标头是在第一次使用磁带执行备份操作时创建的,它将包含介质的名称、介质集的唯一标识号、介质簇的唯一标识号等等),然后再将备份集添加到介质集中。例如上篇文章中首次完整备份,SQL
Server将自动创建一个介质集,并将备份集添加到介质集中,接着再备份事务日志文件,此事务日志文件备份集将被追加到现有备份集,最终备份文件我们看到的只是一个备份文件MyTest.bak,但还原时选择此文件后,要还原的备份集列表将显示先后备份的备份集,如完整备份集、第一次事务日志备份集、第二次事务日志备份集等。
◆ 备份到现有介质集-覆盖所有现有备份集
此选项将覆盖介质上的所有备份集并保留介质标头。
如果没有介质标头,则创建一个标头。覆盖备份时,保留现有的所有介质标头,同时将新的备份创建为备份设备中的第一个备份。
存在下列任一条件时不覆盖备份介质: ● 介质上的现有备份尚未过期。
过期日期将指定备份过期的日期,并可以由另一个备份覆盖。
创建备份时可以指定过期日期。 默认情况下,过期日期由使用 sp_configure
设置的 media retention 选项确定。 ● 介质名称与备份介质上的名称不匹配。 ●
介质名称是一个描述性名称,用于方便地识别介质。
综上所述,它们的最大区别是,一个是向现在备份集追加备份集,一个是将现有备份集覆盖,即以前保存在该备份集里的信息将无法重新读取。
图1:备份时选择,还原时要还原的备份集里显示的,每次追加的备份集。

  SQLServer2008提供了四种备份方式:完整备份、差异备份、事务日志备份、文件和文件组备份。

图片 15

以上为我对SQL
Server数据库备份和还原的认识和总结,如有遗漏掉的细节或讲解错误,还望高手纠正,多谢!

  先简要讨论了SqlServer数据库的存储的物理和逻辑结构,这是备份恢复的理论基础。

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图