《第12章数据库的备份和还原》由会员分享,可在线阅读,更多相关《第12章数据库的备份和还原(32页珍藏版)》请在金锄头文库上搜索。
1、第12章 数据库的备份和还原,本章学习目标,了解SQL Server 2005中数据库备份的分类及特点 了解备份设备的概念 掌握备份设备的创建、查看、删除方法 掌握使用SQL Server管理控制台进行备份的方法,本章学习目标,掌握使用Transact-SQL语句进行备份的方法 掌握使用SQL Server管理控制台进行备份还原的方法 掌握使用Transact-SQL语句进行备份还原的方法,12.1 数据库的备份,12.1.1 概述,数据库备份记录了在进行备份这一操作时数据库中所有数据的状态,以便在数据库遭到破坏时能够及时地将其还原。执行备份操作必须拥有对数据库备份的权限许可,SQL Serv
2、er只允许系统管理员、数据库所有者和数据库备份执行者备份数据库。,12.1.1 概述,数据备份的范围可以是完整的数据库、部分数据库或者一组文件或文件组。对于这些范围,SQL Server均支持完整和差异两种备份方式: 完整备份:完整备份包括特定数据库(或者一组特定的文件组或文件)中的所有数据,以及可以还原这些数据的足够的日志。 差异备份:差异备份基于数据的最新完整备份。差异备份仅包括自最新完整备份后发生更改的数据。使用差异备份可以加快进行频繁备份的速度,从而降低数据丢失的风险。,12.1.1 概述,SQL Server 2005对所要备份内容的选项设置,提供了以下不同的方式,它们分别为: (1
3、)数据库备份 数据库备份提供以下两种方式: 完整数据库备份:整个数据库的完整备份。 差异数据库备份:数据库中所有文件的备份。此备份只包含自每个文件的最新数据库备份之后发生了修改的数据区。,12.1.1 概述,(2)部分备份 是SQL Server 2005中的新增功能。所有还原模式都支持部分备份。部分备份为在简单还原模式下对包含一些只读文件组的数据库的备份工作提供了更多的灵活性。 部分备份:备份主文件组、所有读/写文件组以及任何选择指定的只读文件或文件组中的所有完整数据。只读数据库的部分备份仅包含主文件组。 部分差异备份:这种备份仅包含自同一组文件组的最新部分备份以来发生了修改的数据区。,12
4、.1.1 概述,(3)文件和文件组备份 可以分别备份和还原数据库中的文件。使用文件备份能够只还原损坏的文件,而不用还原数据库的其余部分,从而加快了还原速度。SQL Server支持下列类型的文件备份: 完整文件备份:一个或多个文件或文件组中所有数据的完整备份。在简单还原模式下,文件备份基本上仅限于只读辅助文件组。 差异文件备份:一个或多个文件的备份,包含自每个文件的最新完整备份之后发生了更改的数据区。,12.1.1 概述,(4)事务日志备份 在完整还原模式或大容量日志还原模式下,需要定期进行事务日志备份。每个日志备份都包括创建备份时处于活动状态的部分事务日志,以及先前日志备份中未备份的所有日志
5、记录。在创建第一个日志备份之前,必须先创建一个完整备份(如数据库备份)。,12.1.2 备份设备,在进行备份以前首先必须创建或指定备份设备。备份设备是用来存储数据库、事务日志或文件和文件组备份的存储介质,可以是硬盘、磁带或管道。当使用磁盘时,SQL Server允许将本地主机硬盘和远程主机上的硬盘作为备份设备。备份设备在硬盘中是以文件的方式存储的。 创建和删除备份设备可以用两种方法:使用SQL Server管理控制台和执行系统存储过程sp_addumpdevice。,12.1.2 备份设备,1. 使用SQL Server管理控制台管理备份设备 (1)在SQL Server管理控制台中展开服务器
6、组,展开指定的服务器,展开“服务器对象”。 (2)右击服务器对象中的“备份设备”。 (3)在弹出的快捷菜单中选择“新建备份设备”选项。,12.1.2 备份设备,例12-1-1:创建一个名为“MyDevice1”的备份设备,并将其映射成为磁盘文件“E:DATAMyDevice1.BAK”。 对于一个已存在的备份设备,可以双击备份设备名称或右击设备名并选择“属性”来查看其属性。如果该备份设备已被用来备份过数据库,则单击备份设备属性框中的“媒体内容”选项页来查看该备份设备中的内容。 如果要删除一个备份设备,可以右击指定设备,在弹出的快捷菜单中选择“删除”选项。,12.1.2 备份设备,2. 使用Tr
7、ansact-SQL语句创建、删除备份设备 其语法形式如下: sp_addumpdevice device_type,logical_name,physical_name,controller_type|device_status,12.1.2 备份设备,其中,device_type表示设备类型,其值可为disk,pipe和tape。logical_name表示设备的逻辑名称。physical_name表示设备的实际名称。controller_type和device_status可以不必输入。 例12-1-2:新建一个名为“MyDevice2”的备份设备并将其映射成为磁盘文件“E:DATAMy
8、Device2.BAK”。,12.1.3 使用SQL Server管理控制台进行备份,(1)在SQL Server管理控制台中展开服务器组,展开指定的服务器,右击要进行备份的数据库,并依次选择“任务|备份”选项。 (2)会打开“备份数据库-STUDENT”对话框。,12.1.3 使用SQL Server管理控制台进行备份,(3)在“常规”选择页中,选择备份数据库的名称、备份类型、备份组件以及备份集的名称;在“目的备份到”一栏,可以选择用于备份的介质,单击“添加”按钮可以添加备份文件或设备。 (4)设置好所需选项后单击“确定”按钮,则备份立刻开始。备份结束后会出现备份是否成功的提示信息框。,12
9、.1.4 使用Transact-SQL语句备份数据库,Transact-SQL语句提供了BACKUP语句执行备份操作,其语法形式如下: BACKUP DATABASE database_name | database_name_var TO ,.n WITH DIFFERENTIAL | ,.n ; := logical_device_name | logical_device_name_var | DISK | TAPE=physical_device_name | physical_device_name_var,12.1.4 使用Transact-SQL语句备份数据库, ,.n := -
10、Backup Set Options COPY_ONLY | DESCRIPTION = text | text_variable | NAME = backup_set_name | backup_set_name_var | PASSWORD = password | password_variable | EXPIREDATE = date | date_var | RETAINDAYS = days | days_var | NO_LOG,12.1.4 使用Transact-SQL语句备份数据库,参数说明如下: DATABASE:指定一个完整数据库备份。 database_name |
11、 database_name_var :备份时所用的源数据库。 :指定用于备份操作的逻辑备份设备或物理备份设备。 logical_device_name | logical_device_name_var :数据库要备份到的备份设备的逻辑名称。 DISK | TAPE = physical_device_name | physical_device_name_var :指定磁盘文件或磁带设备。,12.1.4 使用Transact-SQL语句备份数据库,WITH选项:指定要用于备份操作的选项。 DIFFERENTIAL:指定备份应该只包含上次完整备份后更改的数据库或文件部分。 DESCRIPTI
12、ON = text | text_variable :指定说明备份集的自由格式文本。 NAME = backup_set_name | backup_set_var :指定备份集的名称。 PASSWORD = password | password_variable :为备份集设置密码。 EXPIREDATE = date | RETAINDAYS = date :指定允许覆盖该备份的备份集的日期。,12.1.4 使用Transact-SQL语句备份数据库,EXPIREDATE = date | date_var :指定备份集到期和允许被覆盖的日期。 RETAINDAYS = days | d
13、ays_var :指定必须经过多少天才可以覆盖该备份媒体集。 NO_LOG:指定备份将不包含任何日志。 例12-1-3:创建一个新的备份设备MyDevice3,并将数据库STUDENT完全备份到MyDevice3上。,12.2 数据库的还原,数据库还原是指将数据库备份重新加载到系统中的过程。 在还原数据库之前,为了限制其他用户对该数据库进行操作,首先要设置数据库访问属性。在SQL Server管理控制台中,右击要还原的数据库,从弹出的快捷菜单中选择“属性”选项,会弹出数据库属性对话框。单击“选项”选择页,并选择窗口右下部的“限制访问”下拉列表框,在其中选择“Single”选项。接下来就可以进行
14、数据库的还原操作了。,12.2.1 使用SQL Server管理控制台还原数据库,(1)在SQL Server管理控制台中展开服务器组,展开指定的服务器,展开“数据库”。 (2)右击指定的数据库,在弹出的快捷菜单中依次选择“任务|还原|数据库”选项。 (3)会弹出“还原数据库”对话框。 (4)参数设置好后,单击“确定”按钮,系统就会开始还原数据库的操作。还原结束后,会显示还原是否成功的提示信息框。,12.2.2 使用Transact-SQL语句还原数据库,Transact-SQL提供了RESTORE语句还原数据库,其语法形式如下: RESTORE DATABASE database_name
15、| database_name_var FROM ,.n WITH STOP_ON_ERROR | CONTINUE_AFTER_ERROR , FILE = backup_set_file_number | backup_set_file_number , RECOVERY | NORECOVERY | STANDBY = standby_file_name | standby_file_name_var , REPLACE , RESTART , RESTRICTED_USER , STATS = percentage ;,12.2.2 使用Transact-SQL语句还原数据库, := logical_backup_device_name|logical_backup_device_name_var| DISK | TAPE = physical_backup_device_name|physical_backup_device_name_var 参数说明如下: DATABASE:指定目标数据库。 database_name | database_name_var :是将日志或整个数据库还原到的数据库。,12.2.2 使用Transact-SQL语句还原数据库,FROM