17. SQL -- 灾难恢复 (2)
备份设备
备份设备的分类:
备份存放在物理备份介质上,备份介质可以是磁带驱动器或者硬盘驱动器(位于本地或者网络上)。SQL Server 并不知道连接到服务器的各种介质形式,因此必须通知SQL Server将备份存储在那里备份设备就是用来存储数据库、事务日志或文件和文件组备份的存储介质。
常见的备份设备可以分为3 种类型:磁盘备份设备、磁带备份设备和物理设备和逻辑设备。
(1)、磁盘备份设备
磁盘备份设备就是存储在硬盘或其他磁盘媒体上的文件,与常规操作系统文件一样。引用磁盘备份设备与引用任何其他操作系统文件一样。可以在服务器的本地磁盘上或共享网络资源的远程磁盘上定义磁盘备份设备,磁盘备份设备根据需要可大可小。最大的文件大小相当于磁盘上可用的闲置空间。如果磁盘备份设备定义在网络的远程设备上,则应该使用统一命名方式(UNC)来引用该文件,以\\Servername\Sharename\Path\File格式指定文件的位置。在网络上备份数据可能受到网络错误的影响。因此,在完成备份后应该验证备份操作的有效性。
注:建议不要将数据库事务日志备份到数据库所在的同一物理磁盘上的文件中。如果包含数据库的磁盘设备发生故障,由于备份位于同一发生故障的磁盘上,因此无法恢复数据库。
(2)、磁带备份设备
磁带备份设备的用法与磁盘设备相同,不过磁带设备必须物理连接到运行SQL Server2008 实例的计算机上。如果磁带备份设备在备份操作过程中已满,但还需要写入一些数据,SQL Server 2008 将提示更换新磁带并继续备份操作。
若要将SQL Server 2008 数据备份到磁带,那么需要使用磁带备份设备或者MicrosoftWindows 平台支持的磁带驱动器。另外,对于特殊的磁带驱动器,就仅使用驱动器制造商推荐的磁带。在使用磁带驱动器时,备份操作可能会写满一个磁带,并继续在另一个磁带上进行。所使用的第一个媒体称为“起始磁带”,该磁带含有媒体标头,每个后续磁带称为“延续磁带”,其媒体序列号比前一磁带的媒体序列号大1。
(3)、逻辑备份设备
物理备份设备名称主要用来供操作系统对备份设备进行引用和管理,如:
C:\Backups\Acco-unting\Full.bak。逻辑备份设备是物理备份设备的别名,通常比物理备份设备更能简单、有效地描述备份设备的特征。逻辑备份设备名称被永久保存在SQL Server的系统表中。
使用逻辑备份设备的一个优点是比使用长路径简单。如果准备将一系列备份数据写入相同的路径或磁带设备,则使用逻辑备份设备非常有用。逻辑备份设备对于标识磁带备份设备尤为有用。可以编写一个备份脚本以使用特定逻辑备份设备。这样就无需更新脚本即可切换到新的物理备份设备。切换涉及以下过程:
l 删除原来的逻辑备份设备。
l 定义新的逻辑备份设备,新设备使用原来的逻辑设备名称,但映射到不同的物理备
份设备。逻辑备份设备对于标识磁带备份设备尤为有用。
创建备份设备
备份设备是用来存储数据库、事务日志或者文件和文件组备份的存储介质,所在执行备份数据之前,首先需创建备份设备。
在SQL Server 2008 中创建设备的方法有两种:一是在SQL Server Management Studio中使用现有命令和功能,通过方便的图形化工具创建,二是通过使用系统存储过程sp_addumpdevice 创建。下面将对这两种创建备份设备的方法分别阐述。
(1)、使用SQL Server Management Studio 管理器创建备份设备
使用Microsoft SQL Server Management Studio 管理器创建备份设备的操作步骤如下:
--1、在【对象资源管理器】中,单击服务器名称以展开服务器树。
--2、展开【服务器对象】节点,然后用鼠标右键单击【备份设备】选项。
--3、从弹出的菜单中选择【新建备份设备】命令,打开【备份设备】窗口。
--4、在【备份设备】窗口,输入设备名称并且指定该文件的完整路径,这里创建一个
名称为“考勤系统”的备份设备。
--5、单击【确定】按钮,完成备份设备的创建。展开【备份设备】节点,就可以看到
刚刚创建的名称为“考勤系统”备份设备。
(2)、使用系统存储过程SP_ADDUMPDEVICE 创建备份设备除了使用图形化工具创建备份设备外,还可以使用系统存储过程SP_ADDUMPDEVICE 来添加备份设备,这个存储过程可以添加磁盘和磁带设备。SP_ADDUMPDEVICE 的基本语法如下:
SP_ADDUMPDEVICE [ @devtype = ] ‘device_type‘
, [ @logicalname = ] ‘logical_name‘
, [ @physicalname = ] ‘physical_name‘
[ , { [ @cntrltype = ] controller_type |
[ @devstatus = ] ‘device_status‘ }
]
下面对上述语法中的各参数进行简单的说明:
l [@devtype = ] ‘device_type‘ 该参数指备份设备的类型。device_type的数据类型为
varchar(20),无默认值,可以是disk、tape 和pipe。其中,disk 用于指硬盘文件
作为备份设备;tape用于指MicrosoftWindows 支持的任何磁带设备。pipe 是指使
用命名管道备份设备。
l [@logicalname = ] ‘logical_name‘ 该参数指在BACKUP 和RESTORE 语句中使用
的备份设备的逻辑名称。logical_name 的数据类型为sysname,无默认值,且不能
为NULL。
l [@physicalname = ] ‘physical_name‘ 该参数指备份设备的物理名称。物理名称必须
遵从操作系统文件名规则或者网络设备的通用命名约定,并且必须包含完整路径。
physical_name的数据类型为nvarchar(260),无默认值,且不能为NULL。
注:指定存放备份设备的物理路径必须真实存在,否则将会提示“系统找不到指定的路径”,
因为SQL Server 不会自动为用户创建文件夹。
l [@cntrltype = ] ‘controller_type‘ 如果cntrltype 的值是2,则表示是磁盘;如果
cntrltype 值是5,则表示是磁带。
l [@devstatus = ] ‘device_status‘ devicestatus 如果是noskip,表示读ANSI磁带头,
如果是skip,表示跳过ANSI磁带头。
DEMO1:创建一个名为考勤系统的备份设备
USE [master]
GO
EXEC master.dbo.sp_addumpdevice
@devtype = N‘disk‘,
@logicalname = N‘考勤系统‘,
@physicalname = N‘C:\考勤系统.bak‘
GO
DEMO2:创建本地磁带备份设备TapeTest,可以使用如下语句:
USE master
GO
EXEC SP_ADDUMPDEVICE ‘tape‘,‘tapebackup‘,‘\\.\tape0 ‘
管理备份设备:
在Microsoft SQL Server 2008 系统中,创建了备份设备以后就可以通过系统存储过程、
Transact-SQL语句或者图形化界面查看备份设备的信息,或者把不用的备份设备删除等。
13.3.1、查看备份设备
可以通过两种方式查看服务器上的所有备份设备,一种是通过使用SQL Server
ManagementStudio 图形化工具,另一种是通过系统存储过程SP_HELPDEVICE。
(1)、使用SQL Server Management Studio 工具
操作步骤如下:
--1、在【对象资源管理器】中,单击服务器名称以展开服务器树。
--2、展开【服务器对象】|【备份设备】节点,就可以看到当前服务器上已经创建的所
有备份设备。
(2)、使用系统存储过程SP_HELPDEVICE
使用系统存储过程SP_HELPDEVICE 也可以查看服务器上每个设备的相关信息,
SP_HELPDEVICE
返回:
删除备份设备
如果不再需要的备份设备,可以将其删除,删除备份设备后,其上的数据都将丢失,删
除备份设备也有两种方式,一种是使用SQL Server Management Studio 图形化工具,另一
学习是不断积累及重复学习的过程,当学习变成一种习惯的时候,就真正进入了学习的殿堂!
第565页共588页
种是使用系统存储过程SP_DROPDEVICE。
(1)、使用SQL Server Management Studio 工具
操作步骤如下:
--1、在【对象资源管理器】中,单击服务器名称以展开服务器树。
--2、展开【服务器对象】|【备份设备】节点,右击要删除的备份设备Test,在弹出
的命令菜单中选择【删除】命令,打开【删除对象】窗口。
--3、在【删除对象】窗口单击【确定】按钮,即完成对该备份设备的删除操作。
(2)、使用系统存储过程SP_DROPDEVICE
语法:
SP_DROPDEVICE 备份设备名‘[,DELETE‘]
上述语句中,如果指定了DELETE 参数,则在删除备份设备的同时删除他使用的操作文件。
DEMO:删除名称为Test 的备份设备
EXEC SP_DROPDEVICE ‘Test‘
本文出自 “Ricky's Blog” 博客,请务必保留此出处http://57388.blog.51cto.com/47388/1623822
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。