1
数据库技术及应用
1.11.5.2 8.5.2 备份与还原数据库的方法
8.5.2 备份与还原数据库的方法

通常,数据库可以备份到磁盘中或创建好的备份设备中。要备份到磁盘上,只需在备份的时候选取备份数据存储的磁盘位置即可;要备份到备份设备中,则需要先在SQL Server2008中创建备份设备。

8.5.2.1 创建备份设备

在SQL Server2008中,创建备份设备的方法有两种:一是在SQL Server Management Studio中使用现有命令和功能,通过方便的图形化工具创建备份;二是通过使用系统存储过程sp_addumpdevice创建备份。下面详细介绍这两种创建备份设备的方法。

1.使用SQL Server Management Studio创建备份设备

使用SQL Server Management Studio创建备份设备,具体操作步骤如下:

(1)启动SQL Server Management Studio,在对象资源管理器中单击服务器名称,展开服务器树。

(2)展开“服务器”对象节点,然后右击“备份设备”选项,从弹出的快捷菜单中执行“新建备份设备”命令。

(3)在“设置名称”文本框中输入设备名称。若要确定目标位置,选中“文件”单选按钮并设置该文件的完整路径,如图8-47所示。

图8-47 创建备份设备

(4)单击“确定”按钮,完成备份设备的创建。

2.使用系统存储过程sp_addumpdevice创建备份设备

创建备份设备的命令是存储过程sp_addumpdevice,该系统存储过程的使用方法如下。

【例8-8】在C盘根目录创建一个文件夹dump,然后创建一个名为mydiskdump的磁盘备份设备,其物理名称为C:\dump\dump1.bak。

代码如下:

8.5.2.2 备份的执行

SQL Server系统提供了两种数据库备份方法,即通过SQL Server管理平台进行备份和通过Transact-SQL语句进行备份。

1.使用SQL Server管理平台备份数据库

具体操作步骤如下:

(1)在SQL Server管理平台中,打开“数据库”文件夹,在要进行备份的数据库图标上单击鼠标右键,在弹出的快捷菜单中执行“任务”→“备份”命令,如图8-48所示。

图8-48 执行“备份”命令

(2)打开“备份数据库-Student”窗口,其中有“常规”和“选项”两个选项卡,如图8-49所示。

(3)在“常规”选项卡界面的“源”栏中,可以选择备份数据库的名称、恢复模式和备份类型,“备份集”栏中可以设置备份集的名称、说明以及备份集过期的时间,“目标”栏中可以设置备份的目标,默认值为“磁盘”。可以单击“添加”按钮,在打开的如图8-50所示的“选择备份目标”对话框中选中“文件名”单选按钮,并指定文件所在的路径,也可以选中“备份设备”单选按钮,从下拉列表中选择备份设备。

图8-49 “备份数据库-Student”窗口

图8-50 “选择备份目标”对话框

(4)选择“选项”选项卡,其界面上部分是“覆盖媒体”栏,备份时需要选择“备份到现有媒体集”或“备份到新媒体集并清除所有现有备份集”。

在“备份到现有媒体集”选项中,“追加到现有备份集”单选按钮表示将备份内容添加到当前备份之后,通常适用于差异备份;“覆盖所有现有备份集”单选按钮用于初始化新的设备或覆盖现在的设备,通常适用于完整备份;“检查媒体集名称和备份集过期时间”复选框用来对媒体集名称和备份中止时间进行核对。在“备份到新媒体集并清除所有现有备份集”选项中,需要分别输入新媒体集的名称和媒体集说明。

这里选中“覆盖所有现有备份集”单选按钮,再选中“完成后验证备份”复选框(用来核对实际数据库与备份副本,并确保它们在备份完成后是一致的),如图8-51所示。

图8-51 设置备份条件

(5)单击“确定”按钮,即可完成备份的创建。

2.使用BACKUP命令备份数据库

(1)备份整个数据库,代码如下:

(2)备份文件或文件组,代码如下:

(3)备份事务日志,代码如下:

其中的一些参数选项说明如下:

●Database Name:指定要备份的数据库。

●Backup Device:指定备份的目标设备。

●DESCRIPTION={text}:指定备份的描述文本,最长可以达到255个字符。

●DIFFERENTIAL:指定数据库备份的类型为差异备份。

●INIT:表示覆盖所有的备份集。

●NOINIT:表示本次备份追加到指定的媒体集上,以保留现有的备份集。NOINIT为默认设置。

●NAME={Backup Set Name}:指定备份集的名称,最长可达128个字符。

8.5.2.3 还原数据库

数据库备份后,一旦系统发生崩溃或者执行了错误的数据库操作,就可以从备份文件中还原数据库。恢复数据库时,SQL Server会自动将备份文件中的数据全部复制到数据库中,并回滚未完成的事务,以保证数据库中数据的完整性。

使用SQL Server Management Studio恢复数据库,具体操作步骤如下:

(1)在MicrosofT-SQL Server Management Studio窗口中展开“服务器”文件夹,并展开要备份的数据库所在的服务器。

(2)右击“数据库”文件夹,如图8-52所示,在弹出的快捷菜单中执行“还原数据库”命令,打开“还原数据库”窗口,如图8-53所示。

图8-52 执行“还原数据库”命令

图8-53 “还原数据库”窗口

(3)选中“源设备”单选按钮,单击按钮,弹出“指定备份”对话框,在“备份媒体”下拉列表中选择“备份设备”选项。单击“添加”按钮,找到之前创建的“学生管理系统备份”文件,将其添加到“备份位置”列表框中,如图854所示。

图8-54 设置备份位置和备份媒体

(4)单击“确定”按钮,返回到“还原数据库学生管理系统”窗口,选中“选择用于还原的备份集”列表框中的“完整”、“差异”和“事务日志”类型复选框,使数据库恢复到最近一次的正确状态,如图8-55所示。

图8-55 设置用于还原的备份集

(5)选择“选项”选项卡,选中“回滚未提交的事务,使数据库处于可以使用的状态。无法还原其他事务日志”单选按钮,如图8-56所示。

图8-56 设置恢复状态

(6)单击“确定”按钮,开始恢复数据库,恢复完成后弹出还原成功的提示框。

如果还要恢复别的备份文件,需要选中RESTOREWITHNORECOVERY单选按钮,恢复完成后,数据库会显示处于正在还原状态,无法进行操作,必须到最后一个备份还原为止。当执行还原最后一个备份时,必须选中RESTOREWITHRECOVERY单选按钮,否则数据库将一直处于还原状态。

还原数据库还可以使用RESTOREDATABSE命令来进行,该命令格式和BACKUPDATABSE命令比较类似。更多的功能读者可以参考SQL Server联机丛书,这里对该命令不再介绍。