备份就是对SQL Server数据库或事务日志进行备份,数据库备份记录了在进行备份这一操作时数据库中所有数据的状态,以便在数据库遭到破坏时能够及时地将其恢复。
为什么要进行数据备份?
造成数据的丢失包括如下几种情况:
由于不准确的更新而造成的数据的不正确;
由于病毒的侵害而造成的数据的丢失或损坏;
存放数据的物理磁盘或机器的损害;
由于自然灾害而造成的损坏。
备份的四种方式:
(一)完全数据库备份(Dadabase-complete)
(二)差异备份或称增量备份(Dadabase-differential)
(三)事务日志备份(Transaction log)
(四)数据库文件和文件组备份(File and filegroup)
如果是将数据库备份到远程计算机的磁盘上,则使用通用命名规则名称,以\\服务器名\共享名\路径\文件名格式指定文件的位置。
磁带备份设备与磁盘备份设备的用法大致相同,但应注意如下问题:
必须将磁带设备物理地连接到运行SQL Server实例的计算机上。
不能备份到远程磁带上。
创建备份设备的格式:
sp_addumpdevice [ @devtype = ] 'device_type'
, [ @logicalname = ] 'logical_name'
, [ @physicalname = ] 'physical_name'
[ , { [ @cntrltype = ] controller_type |
[ @devstatus = ] 'device_status' }
]
备份设备的类型。device_type 的数据类型为 varchar(20),无默认值,可以是下列值之一
值 | 说明 | ||
---|---|---|---|
disk | 硬盘文件作为备份设备。 | ||
tape | Microsoft Windows 支持的任何磁带设备。
|
-
[
@logicalname = ]
'
logical_name
'
-
在 BACKUP 和 RESTORE 语句中使用的备份设备的逻辑名称。logical_name 的数据类型为 sysname,无默认值,且不能为 NULL。
-
[
@physicalname = ]
'
physical_name
'
-
备份设备的物理名称。物理名称必须遵从操作系统文件名规则或网络设备的通用命名约定,并且必须包含完整路径。physical_name 的数据类型为nvarchar(260),无默认值,且不能为 NULL。
在远程网络位置上创建备份设备时,请确保启动数据库引擎时所用的名称对远程计算机有相应的写权限。
如果要添加磁带设备,则该参数必须是 Windows 分配给本地磁带设备的物理名称,例如,使用 \\.\TAPE0 作为计算机上的第一个磁带设备的名称。磁带设备必须连接到服务器计算机上,不能远程使用。如果名称包含非字母数字的字符,请用引号将其引起来。
注意: 此过程会在目录中输入指定的物理名称。此过程不会尝试访问或创建设备。
-
[
@cntrltype = ]
'
controller_type
'
-
已过时。如果指定该选项,则忽略此参数。支持它完全是为了向后兼容。新的 sp_addumpdevice 使用应省略此参数。
-
[
@devstatus = ]
'
device_status
'
-
已过时。如果指定该选项,则忽略此参数。支持它完全是为了向后兼容。新的 sp_addumpdevice 使用应省略此参数。
下面是几个例子:
1.通过查询分析器,为STUDENT数据库创建一个全数据库备份,要求立即执行,备份设备叫STUDENT_Bak_Full。
使用SQL语句完全备份:
Backing Up a Whole Database BACKUP DATABASE { database_name | @database_name_var } TO <backup_device> [ ,...n ] [ <MIRROR TO clause> ] [ next-mirror-to ] [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ] [;]
WITH 选项 指定要用于备份操作的选项。
-
DIFFERENTIAL
-
只能与 BACKUP DATABASE 一起使用,指定数据库备份或文件备份应该只包含上次完整备份后更改的数据库或文件部分。差异备份一般会比完整备份占用更少的空间。对于上一次完整备份后执行的所有单个日志备份,使用该选项可以不必再进行备份。
USE master
还原选项
指定要用于备份操作的选项。
-
WITH REPALCE 覆盖现有数据库
WITH KEEP_REPLACETION 保留复制设置
恢复状态 WITH RECOVERY 回滚未使用的事物,使数据库处于可以使用的状态 WITH NORECOVERY 不对数据库执行任何操作 ,不回滚未提交的事物。
详见下图