情景9数据库的备份与恢复.docx
《情景9数据库的备份与恢复.docx》由会员分享,可在线阅读,更多相关《情景9数据库的备份与恢复.docx(15页珍藏版)》请在冰豆网上搜索。
![情景9数据库的备份与恢复.docx](https://file1.bdocx.com/fileroot1/2022-11/16/dc14aae5-150e-4b57-ac65-a5208105aae0/dc14aae5-150e-4b57-ac65-a5208105aae01.gif)
情景9数据库的备份与恢复
情景9数据库的备份与恢复
创建实施备份和恢复计划是数据库管理员最重要的职责之一。
数据库在使用的过程中,可能会出现各种原因引起数据丢失或损坏等故障。
如果没有一个可靠的备份和恢复计划,将无法在上述情况下恢复它们,数据将丢失殆尽。
任务1:
掌握数据库的备份与还原
备份是数据库管理员定期地将整个数据库复制到磁盘或者磁带上并保存起来的过程。
这些保存起来的数据是数据库的副本。
当数据库遭到破坏后,可以用备份的数据进行数据库恢复。
备份是恢复的基础,恢复是备份的目的。
进行数据库备份及其事务日志的日常备份对于维护数据库系统是非常重要的。
数据库中数据的保存,是个日积月累的过程。
而数据库的破坏和数据丢失则却可能在瞬间完成。
因此,应该在意外发生之前做好充分的准备工作,以便在以外发生之后有相应的措施能快速地恢复数据库的运行,并使丢失的数据量减少到最小。
此外,数据库备份和恢复还可以用作其他用途。
例如,要在不同服务器之间复制数据,只需将某个服务器上的数据备份后恢复到另一个服务器上。
这样就可以又快又方便地完成数据复制。
9.1数据的备份策略
在进行数据库备份之前,需要对备份内容、备份频率、备份设备和备份类型进行设计。
1)备份内容
备份的内容分为3种,分别是数据库、事务日志和文件。
数据库分为系统数据库和用户数据库。
系统数据库指记录了系统配置参数、用户数据库信息的master、msdb和model等数据库。
一般情况下,tempdb数据库不需要备份。
用户数据库存储了用户的业务数据,因此对用户而言,用户数据库的备份时最重要的。
事务日志记录了用户对数据库的各种操作,是进行事务故障恢复和系统故障恢复的重要资料。
相对数据库备份而言,事务日志备份需要时间较短,但恢复时间较长。
文件时指数据库中的某个特定数据文件,用户可以选择性地进行备份。
相对前两种备份而言,文件备份速度最快最直接,恢复也非常方便。
2)备份频率
备份的频率取决于修改数据库的频繁程度,以及一旦出现意外丢失的工作量大小和意外发生的可能性大小。
一般情况下,数据库的检索操作频繁时,系统数据库和用户数据库的备份频率较低。
数据库的更新操作频繁时,系统数据库和用户数据库的备份频率较高。
3)备份设备
在进行数据库备份之前,首先要创建备份设备。
当建立一个备份设备时,要给该备份设备分配一个逻辑备份名和一个物理备份名,物理备份名是操作系统识别该设备所使用的名称,逻辑备份名是物理备份设备名的一个别名,保存在SQLServer的系统表中。
例如一个物理备份名为“D:
\medical\backup\medical_bk.bak”,使用逻辑备份名可以缩写为medical_bk。
数据库备份设备包括磁盘、磁带和命名管道。
◆磁盘备份设备
磁盘备份设备一般是硬盘或其他磁盘类存储介质上的文件,可以与普通的操作系统文件一样进行管理。
磁盘备份设备可以定义在数据库服务器的本地磁盘上,也可以定义在通过网络连接的远程磁盘上。
如果是网络设备,则需要一个UNC(UniversalNamingConvention,通用命名约定)名字。
例如:
\\Servername\Sharename\Path\File。
◆磁带设备
使用磁带备份设备时,必须有磁带物理地安装到SQLServer实例的计算机上。
磁带设备不支持远程设备备份。
◆命名管道设备
命名管道备份设备为使用第三方的备份软件和设备提供了一个灵活、强大的通道。
当用户使用命名管道设备进行备份和恢复的操作时,需要在BACKUP或RESTORE语句中给出客户端应用程序中使用的命名管道名字。
4)备份类型
SQLServer2008提供了4种备份类型。
完整数据库备份
完整数据库备份就是备份整个数据库。
它备份数据库文件、这些文件的地址以及事务日志的某些部分。
这是任何备份策略中都要求完成的第一种备份类型,因为其他所有备份类型都依赖于完整数据库备份。
换句话说,如果没有执行完整数据库备份,就无法执行差异数据库备份和事务日期备份。
以下情况应采用完整数据库备份:
Ø数据库较小
Ø数据库具有很少的数据修改操作或是只读数据库时
如果采用完整数据库备份则要定期清除事务日志
差异数据库备份
差异数据库备份是指将从最近一次完整数据库备份以后发生改变的数据开始记录。
如果在完整备份后将某个文件添加到数据库,则下一个差异备份会包括该新文件。
这样可以方便地备份数据库,而无需了解各个文件。
相比完整数据库备份,差异数据库备份占用的磁盘空间小,而且备份速度快,因此可以经常地备份,以降低丢失数据的危险。
使用差异备份策略的场合:
Ø数据库频繁修改
Ø需要进行最小化备份时
事务日志备份
尽管事务日志备份依赖于完整备份,但它并不备份数据库本身。
这种类型的备份只记录事务日志的适当部分,确切的说,是自上一个事务以来已经发生了变化的部分。
事务日志备份比完整数据库备份更节省时间和空间,而且利用事务日志进行恢复时,可以指定恢复到某一个事务,比如可以将其恢复到某个破坏性操作执行的前一个事务,这是完整备份和差异备份所不能做到的。
但是与完整数据库备份和差异备份相比,用事务日志备份恢复数据库要花费较长的时间,这是因为事务日志备份仅仅存放日志信息,恢复时需要按照日志重新插入、修改或者删除数据。
因此,通常情况下,事务日志备份经常与完整备份和差异备份结合使用,比如,每周进行一次事务完整备份,每天进行一次差异备份,每小时进行一次事务日志备份。
这样最多只会丢失一个小时的数据。
文件和文件组备份
当一个数据库很大时,对整个数据库进行备份可能会花很多时间,这时就可以采用文件和文件组备份,即对数据库中的部分文件或者文件组进行备份。
文件组备份是一种将数据库存放在多个文件上的方法,并允许控制数据库对象存储到这些文件当中的哪些文件上。
这样,数据库就不会受到只存储在单个硬盘上的限制,而是可以分散到许多硬盘上。
利用文件组备份,每次可以备份这些文件当中的一个或者多个文件,而不是备份整个数据库。
使用文件或文件组备份策略的场合:
Ø超大型数据库
Ø完整备份时间太长
9.2数据的备份与还原方法
数据库可以备份到磁盘中或创建好的备份设备中。
要备份到磁盘上,只需在备份的时候选取备份数据存储的磁盘位置即可;要备份到备份设备中,需要先在SQLServer2008中创建备份设备。
1.创建备份设备
在SQLServer2008中,创建备份设备的方法有两种:
一是在SQLServerManagementStudio中使用现有命令和功能,通过方便的图形化工具创建,二是通过使用系统存储过程sp_addumpdevice创建。
下面介绍这两种创建备份设备的方法。
(1)使用SQLServerManagementStudio管理器
使用SQLServerManagementStudio管理器创建备份设备的操作步骤如下:
(1)启动SQLServerManagementStudio管理器,在对象资源服务器窗口中,单击服务器名称展开服务树。
(2)展开服务器对象节点,然后右击备份设备选项
(3)从弹出的快捷菜单中选择新建备份设备命令
(4)在设置名称文本框中输入设备名称。
若要确定目标位置,选择文件单选按钮并制定该文件的完整路径,如图9-1所示。
(5)单击确定完成备份设备的创建。
图9-1创建备份设备
(2)使用系统存储过程SP_ADDUMPDEVICE创建
创建备份设备的命令是存储过程sp_addumpdevice,该系统存储过程的使用方法如下。
sp_addumpdevice[@devtype=]'DeviceType'
[@logicalname=]'LogicalName'
[@physicalname=]'PhysicalName'
]
例9-1首先在C盘根目录创建一个文件夹dump。
创建一个名为mydiskdump的磁盘备份设备,其物理名称为C:
\dump\dump1.bak。
USEmaster
GO
EXECsp_addumpdevice'disk','mydiskdump','c:
\dump\dump1.bak'
GO
2.备份的执行
SQLServer系统提供了两种数据库备份操作的方法:
SQLServer管理平台和Transact-SQL语句。
(1)使用SQLServer管理平台进行备份
具体操作步骤如下:
1.在SQLServer管理平台中,打开数据库文件夹,在要进行备份的数据库图标上单击右键,在弹出的快打开捷菜单中选择“任务”->“备份”命令,如图9-2所示。
图9-2SQLServer备份操作窗口
2.打开“备份数据库”对话框,在该对话框中有两个选项页,“常规”和“选项”选项页。
图9-3 “备份数据库”对话框
3.在“常规”选项页上半部分,可以选择备份数据库的名称、恢复模式和备份类型。
中间部分可以设置备份集的名称、说明以及备份集过期的时间。
目标部分可以设置备份的目标,默认值为“磁盘”;可以选择添加按钮,在打开的如图9-4所示的“选择备份目标”对话框中,选中“文件名”按钮指定文件名和路径,也可以选中“备份设备”单选按钮,从组合框中选择备份设备。
图9-4 “选择备份目标”对话框
4.在“选项”选项页的上部分,是“覆盖媒体”选项区,其中分成两类,备份时需要选择其中的一类:
一个是“备份到现有媒体集”,另一个是“备份到新媒体集并清除所有现有备份集”。
在第一类“备份到现有媒体集”选项中,“追加到现有备份集”单选按钮表示将备份内容添加到当前备份之后,通常适用于差异备份;“覆盖所有现有媒体集”单选按钮用于初始化新的设备或覆盖现在的设备,通常适用于完整备份;“检查媒体集名称和备份集过期时间”复选框用来对媒体集名称和备份中止时间进行核对。
在第二类“备份到新的媒体集并清除现有媒体集”选项中,需要分别输入新的媒体集名称和媒体集说明。
选择好“覆盖媒体选项”后,在启用“完成后验证备份”复选框,该选项用来核对实际数据库与备份副本,并确保它们在备份完成后是一致的。
具体设置情况如图9-5所示。
图9-5“备份数据库”的“选项”设置页面
5.完成设置后,单击“确定”按钮,即可完成备份的创建。
(2)使用Backup命令备份数据库
1.备份整个数据库
BACKUPDATABASE{DatabaseName}
TO[,...n]
[WITH
[DESCRIPTION={'text'}]
[[,]DIFFERENTIAL]
[[,]{INIT|NOINIT}]
[[,]NAME={BackupSetName}]
]
2.备份文件或文件组
BACKUPDATABASE{DatabaseName}
[,...f]
TO[,...n]
[WITH
[DESCRIPTION={'text'}]
[[,]DIFFERENTIAL]
[[,]{INIT|NOINIT}]
[[,]NAME={BackupSetName}]
]
3.备份事务日志
BACKUPLOG{DatabaseName}
TO[,...n]
[WITH
[DESCRIPTION={'text'}]
[[,]{INIT|NOINIT}]
[[,]NAME