第12章 数据库的备份和恢复 课件(共43张PPT)-《数据库应用技术-SQL Server》同步教学(人民邮电版)

资源下载
  1. 二一教育资源

第12章 数据库的备份和恢复 课件(共43张PPT)-《数据库应用技术-SQL Server》同步教学(人民邮电版)

资源简介

(共43张PPT)
第12章 数据库的备份和恢复
◎本章目标
熟悉如何制定备份策略
掌握使用SQL Server Management Studio备份和恢复数据库的方法
掌握使有T-SQL语句备份和恢复数据库的方法
◎本章内容
12.1 备份与恢复的基本概念
12.2 备份数据库
12.3 恢复数据库
12.4 建立自动备份的维护计划
12.1 备份与恢复的基本概念
备份就是制作数据库结构和数据的拷贝,以便在数据库遭到破坏时能够修复数据库。对于计算机用户来说,对一些重要文件、资料定期进行备份是一种良好的习惯。如果出现突发情况,比如系统崩溃、系统遭受病毒攻击等,使得原先的文件遭到破坏甚至于全部丢失,启动备份文件进行数据恢复,就可以节省大量的时间和精力。
12.1.1备份策略的制定
数据库备份就是创建完整数据库的副本,并将所有的数据项都复制到备份集,以便在数据库遭到破坏时能够恢复数据库。为了保证数据的安全,数据库管理员应定期对数据进行备份。关于备份需要遵循两个简单规则:
尽早并且经常备份;
不要只备份到相同磁盘的一个文件中,应该在完全分离的位置还有一个副本,以确保备份安全。
在SQL Server系统中,只有获得许可的角色才可以备份数据,分别是以下几种:
固定的服务器角色sysadmin(系统管理员);
固定的数据库角色db_owner(数据库所有者);
固定的数据库角色db_backupoperator(允许进行数据库备份的用户)。
当然,管理员也可以授权某些用户来执行备份工作。
设计备份策略的指导思想是:以最小的代价恢复数据库。备份和恢复是相互联系的,因此备份的策略与恢复应结合起来考虑。
如何针对不同的需求设计出最佳的备份策略?首先要考虑的是数据库使用何种恢复模式。SQL Server提供三种数据库恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。
通常,数据库使用完整恢复模式或简单恢复模式。一般来说如果是测试或者是小型正式用数据库则会使用简单恢复模式,而完整恢复模式则应用于大中型正式数据库,当然也可以选择使用大容量日志恢复模式作为互补。制定最佳的数据库备份策略还要考虑到数据库的数据恢复目标要求,数据的使用方式,是否对事务日志进行管理等。
12.1.2 备份与恢复的方式
1.备份类型
(1)完整数据库备份
完整数据库备份就是备份整个数据库。它备份数据库文件、文件的地址以及事务日志的某些部分(从备份开始时所记录的日志顺序号到备份结束时的日志顺序号)。这是任何备份策略中都要求完成的第一种备份类型,因为其他所有备份类型都依赖于完整备份。换句话说,如果没有执行完整备份,就无法执行差异备份和事务日志备份。
完整数据库备份的主要优点是简单,备份是单一操作,可按一定的时间间隔预先设定,恢复时只需一个步骤就可以完成。若数据库不大,或者数据库中的数据变化很少甚至是只读的,使用完整数据库备份是最佳选择。
(2)差异备份
差异备份并不对整个数据库执行完整的备份,它只是对上次数据库备份后发生更改的部分进行备份,它是用来扩充完整数据库备份或数据库事务日志备份的方法。因为只保存改变内容,所以这种类型的备份速度比较快,对于一个经常修改的数据库,采用差异备份策略可以减少备份和恢复时间。
(3)事务日志备份
事务日志备份是所有数据库修改的系列记录,用来在恢复操作期间提交完成的事务以及回滚未完成的事务。这种方法不需很频繁地定期进行数据库备份,而是在两次完整数据库备份期间,进行事务日志备份,所备份的事务日志记录了两次数据库备份之间所有的数据库活动记录。
(4)数据库文件或文件组备份
SQL Server 2008可以备份数据库文件和文件组而不是备份整个数据库。如果正在处理大型数据库,并且希望只备份文件而不是整个数据库以节省时间,则选择使用这个备份。这种方法只备份特定的数据库文件或文件组,同时还要定期备份事务日志,这样在恢复时可以只恢复已损坏的文件,而不用恢复数据库的其余部分,从而加快了恢复速度。
2.恢复模式
(1)简单恢复模式
不需要支持时间点的恢复,是为了恢复到上一次备份点的数据库而设计的。在“简单”模式下,只能对数据库执行完整备份和差异备份。在该模式下,数据库会自动把不活动的日志删除,因此简化了数据库的备份,但因为没有事务日志备份,所以不能恢复到失败的时间点。
(2)完整恢复模式
支持时间点的恢复,能够恢复所有数据。在“完整”模式下,可以对数据库执行完整备份、差异备份和事务日志备份,是可供选择的备份选项最完整的一种模式。
(3)大容量日志恢复模式
不支持时间点恢复。在“大容量日志”模式下,与“完整模式”类似,可以执行完整备份、差异式备份和事务日志备份。但是这种模式,对于SELECT INTO、BULK INSERT、WRITETEXT和UPDATETEXT等大批量数据复制的操作,在事务日志中会以节省空间的方式来记录,而不像“完整”模式时记录得那么完整。因此,对于这些操作的恢复会受影响,无法恢复到特定的时间点。
12.2 备份数据库
1. 使用SQL Server Management Studio备份数据库
(1)创建备份设备
备份设备是用来存储数据库、事务日志或者文件和文件组备份的存储介质,所在执行备份数据之前,首先要创建备份设备和管理备份设备。
创建设备的方法有两种:
一是使用SQL Server Management Studio工具创建;
二是使用系统存储过程sp_addumpdevice创建。
使用SQL Server Management Studio完成备份设备的创建步骤:
① 在“对象资源管理器”中,依次展开“服务器对象”→“备份设备”节点,右击选择“新建备份设备”命令,弹出新建备份设备窗口。
② 在“设备名称”文本框中输入备份设备名 “StudCourse_Bak_Device”,单击“浏览”,修改路径为“D:\BakData\ StudCourse_Bak.bak”,单击“确定”按钮即可,如图1所示。
图1 创建备份设备
使用系统存储过程SP_ADDUMPDEVICE创建备份设备:
SP_ADDUMPDEVICE的基本语法如下:
SP_ADDUMPDEVICE [ @devtype = ] 'device_type'
, [ @logicalname = ] 'logical_name'
, [ @physicalname = ] 'physical_name'
[ , { [ @cntrltype = ] controller_type |
[ @devstatus = ] 'device_status' }
]
(2)管理备份设备
①查看备份设备
可以通过两种方式查看服务器上所有备份设备,一种是使用SQL Server Management Studio工具,另一种是使用系统存储过程SP_HELPDEVICE。
②删除备份设备
如果不再需要的备份设备,可以将其删除,删除备份设备后,其上的数据都将丢失。删除备份设备也有两种方式,一种是使用SQL Server Management Studio工具,另一种是使用系统存储过程SP_DROPDEVICE。
(3)备份操作
具体步骤如下:
①连接到相应的SQL Server服务器实例,在“对象资源管理器”中,展开实例中的“数据库”节点,选择“学生选课”节点,右击选择“任务”→“备份”命令,出现“备份数据库”对话框。如图2所示。
②单击“常规”选择页,在“数据库”下拉列表中选择“学生选课”选项;在“备份类型”下拉列表中选择“完整”选项;在“备份组件”区域选中“数据库”单选按钮;在“目标”区域已经给出了默认的备份文件名,选中后,单击“删除”按钮删除;在“目标”区域单击“添加”按钮,打开“选择备份目标”对话框,选中“备份设备”单选按钮,并在对应的下拉列表框中选择相应的备份设备选项,单击“确定”按钮 。如图3所示。
③选择“选项”页,可以设置数据库备份的高级选项,在“备份数据库-学生选课”对话框中,切换到“选项”选择页,选中“覆盖所有现有备份集”单选按钮,这样系统在创建备份时将初始化备份设备并覆盖原有的备份内容。如图4所示。
④以上的设置完成之后,单击“确定”按钮,系统将按照所选的设置对数据库进行备份。
如果没有发生错误,将出现备份成功的对话框。
图3 添加备份目标
12.2.2 使用T-SQL语句备份数据库
T-SQL语言里提供了BACKUP DATABASE语句来备份数据库,使用该语句可以完成数据库的完整备份、差异备份以及文件和文件组备份。如果要备份事务日志则要使用BACKUP LOG语句。
(1)完整备份和差异备份
完整备份和差异备份的语法格式如下:
BACKUP DATABASE {database_name | @database_name_var }
TO < backup_device > [ , …n ]
[ < MIRROR TO clause > ] [ next-mirror-to ]
[ WITH { DIFFERENTIAL | < general_WITH_options > [ , …n ] } ]
COPY_ONLY
| { COMPRESSION | NO_COMPRESSION }
| DESCRIPTION = { 'text' | @text_variable }
| NAME = { backup_set_name | @backup_set_name_var }
| PASSWORD = { password | @password_variable }
| { EXPIREDATE = { 'date' | @date_var }
| RETAINDAYS = { days | @days_var } }
]
其中,各参数说明如下。
{database_name | @database_name_var}:指定要备份的数据库名或存放数据库名称的变量。
:指定用于备份的逻辑备份设备名或物理备份设备名。
::=MIRROR TO < backup_device> [,…n]:指定将要镜像TO子句中指定备份设备的一个或多个备份设备。最多可以使用三个MIRROR TO子句。
WITH选项:指定要用于备份操作的选项。
DIFFERENTIAL:只能与BACKUP DATABASE一起使用,指定数据库备份或文件备份只包含上次完整备份后修改的数据库或文件部分,即要做差异备份。默认情况下,BACKUP DATABASE创建完整备份。
:指定一些诸如是否仅复制备份、是否对此备份执行备份压缩、说明备份集的自由格式文本等操作选项。
COPY_ONLY:指定备份为“仅复制备份”,该备份不影响正常的备份顺序。仅复制备份是独立于定期计划的常规备份而创建的。仅复制备份不会影响数据库的总体备份和恢复过程
COMPRESSION| NO_COMPRESSION:显示是否启用备份压缩。
DESCRIPTION:指定说明备份集的自由格式文本。该字符串最长可以有 255 个字符。
NAME:指定备份集的名称。名称最长可达 128 个字符。如果未指定 NAME,它将为空。
PASSWORD:为备份集设置密码。PASSWORD 是一个字符串。
EXPIREDATE:指定备份集到期和允许被覆盖的日期。
RETAINDAYS:指定必须经过多少天才可以覆盖该备份媒体集。
(2)文件和文件组备份
备份文件和文件组的语法格式和完整备份、差异备份的代码基本一样,不同的是在语句“TO < backup_device >”前多了一句“”,该语法块里的参数如下。
FILE:备份的数据库逻辑文件名。
FIELGROUP:备份的数据库文件组名。
(3)事务日志备份
事务日志备份和完整备份、差异备份的代码基本一样,只是将完整备份、差异备份中的BACKUP DATABASE修改为BACKUP LOG。
12.2.3 备份压缩
数据库执行备份操作,需要占用一定的磁盘空间。如果一个公司的数据库非常庞大,那么对数据库的备份就需要很大的空间。对于数据库管理员来说,这是一件十分头疼的事情。幸运的是,在SQL Server 2008中新增了数据压缩功能。数据库管理员可以在备份过程中启动备份压缩来节省备份占用的存储空间。
1.在服务器上配置备份压缩
在数据库引擎服务器上,可以对默认的备份压缩功能进行修改,具体的步骤如下:
(1)打开SQL Server Management Studio工具,连接服务器。
(2)右击“服务器”,在弹出的命令菜单中选择“属性”,打开“服务器属性”窗口(如图5所示)。
(3)单击“数据库设置”选项,在“数据库设置”页面启用“压缩备份”复选框。
(4)单击“确定”按钮,完成对服务器的配置。
2.在备份数据库时启用备份压缩功能
除了在服务器上进行配置之外,还可以在用户备份数据库的时候,选择“压缩备份”选项(如图6所示)。
使用BACKUP语句的WITH COMPRESSION选项,也可以实现压缩备份的功能。
图5 压缩备份
图6 启动备缩备份
12.3 恢复数据库
12.3.1 恢复数据库的准备工作
备份是一种灾害预防操作,恢复是一种消除灾害的操作,恢复是与备份相对应的操作,备份的主要目的是为了在系统出现异常情况时,比如硬件损坏、系统软件瘫痪、误操作等删除了重要数据,将数据库恢复到某个正常的状态。一个数据库管理员或多或少都会遇到恢复数据库的操作,需要将数据库恢复到误操作之前的状态。恢复是备份的目的。数据库恢复就是指加载数据库备份到系统中的进程。
■恢复数据库的方式
完整备份的恢复
差异备份的恢复
事务日志备份的恢复。
文件和文件组备份的恢复
■恢复数据库前要注意的事项
检查备份设备或文件
查看数据库的使用状态
12.3.2 使用SQL Server Management Studio恢复数据库
步骤如下:
(1)启动SQL Server Management Studio。
(2)在“对象资源管理器”窗口中,右击“数据库”节点,从弹出的快捷菜单中执行“还原数据库”命令,打开如图7所示的“还原数据库”对话框。
图7 还原数据库
(3)在“目标数据库”文本框中输入数据库名“学生选课”,在“还原的源”区域选中“源设备”单选按钮,单击右侧的按钮,打开“指定设备”对话框如图8所示,在“备份媒体”下拉列表框中选择“备份设备”选项。
图8 指定备份
(4)单击“添加”按钮,打开“选择备份设备”对话框,在“备份设备”下拉列表框中选择“StudCourse_Bak_Device”选项,如图9所示。
(5)单击“确定”按钮,返回“指定设备”对话框,再次单击“确定”按钮,返回“还原数据库”对话框,就可以看到该备份设备中的所有的数据库备份内容,复选“选择用于还原的备份集”下面的“完整”、“差异”和“事务日志”3种备份,可这使数据库恢复到最近一次备份的正确状态。
(6)切换到“选项”选择页,设置恢复状态,这里使用默认设置,单击“确定”按钮,系统开始恢复数据库。(如果没有删除原数据库,选择覆盖原数据库选项)
图9 选择备份设备
12.3.3 使用T-SQL语句恢复数据库
T-SQL语言里提供了RESTORE DATABASE语句来恢复数据库备份,使用该语句可以恢复完整备份、差异备份、文件和文件组备份。如果要恢复事务日志则要使用RESTORE LOG语句。
12.3.4 时间点恢复
在SQL Server 2008中进行事务日志备份时,不仅给事务日志中的每个事务标上日志号,还给他们都标上一个时间。但是,在使用这个过程时需要注意两点:
这个过程不适用于完整与差异备份,只适用于事务日志备份。
将失去指定恢复时间之后整个数据库上所发生的任何修改。
使用SQL Server Management Studio按照时间点恢复数据库的操作步骤如下:
(1)打开SQL Server Management Studio工具,连接服务器。
(2)在“对象资源管理器”中,展开“数据库”节点,右击“学生选课”数据库,在弹出的命令菜单中选择“任务”→“还原” →“数据库”命令,打开“还原数据库”窗口。
(3)单击“目标时间点”文本框后面的“选项”按钮,打开“时点还原”窗口,启用“具体日期和时间”选项,输入具体时间10:00:00,如图10所示。
12.4 建立自动备份的维护计划
使用SQL Server Management Studio建立自动备份的维护计划操作步骤如下:
(1)在“对象资源管理器”窗格里选择数据库实例,选择“管理” →“维护计划”选项,右击“维护计划”选项,弹出如图11所示的快捷菜单。
图11 维护计划快捷菜单
(2)在弹出的快捷菜单里选择“维护计划向导”选项,弹出图12所示的“维护计划向导”对话框,单击“下一步”按钮。
图12 维护计划向导
(3)弹出如图13所示“选择计划属性”对话框,在“名称”文本框里可以输入维护计划的名称,在“说明”文本框里可以输入维护计划的说明文字。设置完需要的选项后,单击“下一步”按钮。
图13 选择计划属性
(4)弹出如图14所示的“选择维护任务”对话框,在该对话框里可以选择多种维护任务,例如检查数据库完整性、收缩数据库、重新生成或组织索引、更新统计信息、清除历史记录、执行SQL Server代理作业、备份数据库等。在本例中选择“备份数据库(完整)”复选框,其他维护任务的设置都大致相同。单击“下一步”按钮。
图14 选择维护任务
(5)系统将弹出“选择维护任务顺序”对话框。如果有多个维护任务,在此可以通过单击“上移”和“下移”两个按钮来设置维护任务的顺序。设置完毕后单击“下一步”按钮。
(6)弹出如图15所示的对话框,在“数据库”下拉列表框里可以选择要备份的数据库名,在“备份组件”区域里可以选择备份数据库还是备份数据库文件,还可以选择备份介质等。设置完后,单击“下一步”按钮。
图15 配置维护任务
(7)弹出如图16所示的“选择报告选项”对话框,在该对话框里选择“将报告写入文本文件”。设置完毕后,单击“下一步”按钮。
(8)弹出“完成该向导”对话框,单击“完成”按钮完成维护计划创建操作。
图16 选择报告选项
本章小结
数据库管理员应定期对数据库进行备份,一旦由于意外情况数据库被损坏,可利用备份文件最大限度的恢复数据。
SQL Server 2008提供了四种备份数据库的方式:完整数据库备份、差异备份、事务日志备份、数据库文件和文件组备份。完整备份可以整个数据库中的所有内容,包括事务日志。差异备份只备份上次完整备份后修改的数据,是完整备份的补充。事务日志备份只备份事务日志里的内容。数据库文件和文件组备份只备份数据库中的某些文件或文件组。
SQL Server 2008中的恢复模式分三种:简单恢复模式,完整恢复模式和大容量日志恢复模式。
针对不同的数据库备份类型,可以采取不同的数据库恢复方法。在恢复数据库前要检查数据库备份设备或备份文件,还要查看数据库的使用状态。
使用数据库的自动维护计划可使数据库管理员从繁重的备份工作中解放出来。
本章结束,谢谢!

展开更多......

收起↑

资源预览