在SQL Server 2000中,有无数种备份数据库的方法。无论你的数据库有多大、改变是否频繁,都有满足你的要求的备份策略。让我们看看几种可以在不同环境下工作的基本备份策略。 j;) 0_%{-
=*a{Z) u
在SQL Server 2000中,有无数种备份数据库的方法。无论你的数据库有多大、改变是否频繁,都有满足你的要求的备份策略。让我们看看几种可以在不同环境下工作的基本备份策略。 j;) 0_%{-
=*a{Z) u
本文假定你有备份数据库的权限。也就是说,你要么是系统管理员,要么是db_owner或者backupadministrator。还有,我们还假定你的操作系统提供了访问备份所需要的资源的权利,例如,访问磁盘或者磁带驱动器。 4CSJ @?DP
z_R)M|%(
从哪儿开始 7z3tJeXmx
%m>y wox
在你开始备份一个SQL Server数据库之前,你需要知道该数据库使用了哪个恢复模型。这里有三种不同的恢复模型:FULL、BULK_LOGGED和SIMPLE。 >hgMX^dMy
gY8qI]c !S
FULL恢复模型向你提供了最大的恢复灵活性。新数据库默认使用的就是这种恢复模型。利用这种模型,你可以恢复数据库的一部分或者完全恢复。假设交易记录(transactions log)还没有被破坏,你还可以在失败之前恢复出最后一次的已提交(committed)交易。在所有的恢复模型中,这种模型使用了最多的交易记录空间,并轻微影响了SQL Server的性能。 NcIg{ q;
]$C6Nkk
BULK_LOGGED恢复模型比FULL模型少了一些恢复选项,但是进行批操作(bulk operation)时它不会严重影响性能。在进行某些批操作时,由于它只需记录操作的结果,因此它使用了较少的记录空间。然而,用这种模型,你不能恢复数据库中的特定标记,也不能仅仅恢复数据库的一部分。 ;3)&:H|
_U8@z9j
SIMPLE恢复模型是这三种模型中最容易实施的,它所占用的存储空间也最小。然而,你只能恢复出备份结束时刻的数据库。 S`w3 mxv2
.&1JmG]
为了找出你所用数据库的恢复模型,可以运行下面的命令,该命令应该返回FULL、BULK_LOGGED和SIMPLE这三个值中的某一个: ,Q#>H-
m"> r>bMr<
SELECT dbpropertyex("database", "recovery") m0R^2 _o]
i6`J2ybzP8
为了改变数据库的恢复选项,运行下面的命令: P +bfyF
:E| {h
ALTER DATABASE database name SET RECOVERY {FULL SIMPLE BULK_LOGGED} &?*ax
DT0ENE_n^B
除数据之外,SQL Server备份还包括数据库大纲(schema)和数据库元数据(即数据库文件、文件组和它们的位置)。SQL Server允许在备份时用户依然使用数据库,所以在备份期间发生的交易也记录到备份中去了。 /I[%+p|D
:)'<ir"5w
备份数据库 [1d+t}H69
6`&/ATSf
为了备份数据库,你可以运行BACKUP命令。(你也可以使用SQL Enterprise Manager。)在执行命令之前知道它的语法永远是个好主意。BACKUP命令有许多选项,它的基本语法是: '}f4e L>
=-bSqQrv
-l SJI
BACKUP DATABASE { database_name } TO < backup_device > z[ &(x-#?
\X'(rBR6
backup_device可以是磁盘或者磁带——或者它也可以是一个用磁盘文件、磁带或者已命名管道表示的逻辑上的备份设备。 ]SD6:m
>eH)xCF6C
如果你想做一个快速、一次性的备份,那么向下面那样使用磁盘文件: ys%]9Ofx<
r[,({Z6
BACKUP DATABASE Northwind TO DISK = "c:\backup\Northwind.bak" yn VMD'<M7
9_7^MV^V
如果你想把数据库备份到另外一台服务器上,可以使用UNC名字: X#L21DR_b}
P(I)U mp
BACKUP DATABASE Northwind TO DISK =\\FILESERVER\Shared\Backup\Northwind.bak w 1jIl0
b<3yVN0p
如果想进行有规律、有计划的备份,就需要使用逻辑备份设备。一个逻辑备份设备可以保存若干个数据库备份并驻留在磁盘、磁带或者已命名管道上。如果你使用磁带设备,磁带驱动器必须在同一台物理服务器上。已命名管道可以利用第三方备份软件。 z]Hk7m
\s.W W8>
为了创建逻辑备份设备,使用sp_addumpdevice系统保存过程。SQL Enterprise Manager也可以用来创建备份设备。命令行语法如清单A所示。 UM^< Djou
+>jb<;$ +
清单B给出了一个在磁盘上创建逻辑备份设备的例子。 7 Qg3~
~Hb^L3 G
当备份设备创建完毕,Northwind数据库可以用下面的命令进行备份: N< Zr ~s3
#d 6$A
BACKUP DATABASE Northwind TO DiskBackup DlvPN6
OhwQR# E