15.1.5 备份策略 1、完全备份
. t- j' n6 [% p# T! d 完全备份策略适合于数据库数据不是很大,而且数据更改不是很频繁的情况。可以几天或几周进行一次;
# {- x; i+ q% ?5 j* {" V* \# Q 2、完全备份+日志备份* i. ] C! f( L& E, W7 p( p- n
如不允许丢失太多数据,且不希望经常进行完全备份;7 `) M& b2 {. ]2 |7 x# M8 q
3、完全备份+差异备份+日志备份
# u6 V8 B9 A9 n' K2 T 该策略的好处是备份和恢复的速度都比较快,出现故障时丢失的数据也比较少;) {2 p: R8 a# T X e
15.1.6 实现备份
3 q( p/ G' E% x% E/ `* W7 X# m P 1、 使用企业管理器备份数据库
/ ?2 r) ?) d9 ` 2、 使用Transact-SQL语句备份数据库
/ e. K5 L1 J* k* P; d (1) 备份数据库的基本语法:- E1 f& Y5 C( p. y! @. B
BACKUP DATABASE 数据库名 v. {6 q @6 @# F
TO {}|{DISK|TAPE}={‘物理备份文件名’}
+ H0 u c; O; h: D [WITH [DIFFERENTIAL][[,]{INIT|NOINIT}]]( O7 A2 G3 u# T2 S W
其中:
& s% B5 h0 S7 p4 b (A):将数据库备份到已创建好的备份设备名上;. q% `3 k2 {9 R: n- ~
(B)DISK|TAPE:将数据库备份到磁盘或磁带;$ D, M& m) \8 |5 l
(D) DIFFERENTIAL:进行差异备份;9 r6 v2 @5 u: O* }# h1 E, R
(E) INIT:本次备份数据库将重写备份设备,即覆盖掉本设备上以前进行的所有备份;7 D0 x4 A( ~# r
(F) NOINIT:本次备份数据库将追加到备份设备上,即不覆盖。
% m I1 Z% e! A1 [/ O- R (2) 备份数据库日志的基本语法:
9 V- |! K% [ J" T. ?5 ] BACKUP LOG 数据库名
5 r8 n D1 Z2 W7 A3 ~; o TO {}|{DISK|TAPE}={‘物理备份文件名’}+ |3 ~: R3 d; ]1 F1 R1 O1 q8 |9 C! \- T2 p
[WITH [{INIT|NOINIT}] [{[,]NO_LOG|TRUNCATE_ONLY|NO_TRUNCATE}]]
/ g/ M' R* q }8 c9 L 其中:3 p" C" f1 i0 \
(A) NO_LOG和TRUNCATE_ONLY:表示备份完日志后要截断不活动的日志;
1 F! s& p. L) c) s0 v: Y (B) NO_TRUNCATE:表示备份完日志后不截断不活动的日志;3 T1 J3 ~$ B& d }' ^ Q& H. Z
(C) 其他选项同备份数据库语句的选项。" k7 q" Z6 i4 [2 H" b
15.1.7 备份媒体集0 I* f. O+ b/ H- R& R6 R
1、 当数据库很大时,有时一个备份设备的空间可能不能满足要求,这里就可以将数据库备份到多个不同的备份设备上,同时使用多个备份设备进行备份的为此设备就称为备份媒体集;: _5 b9 i+ [% c1 o' N6 X. _/ t2 k
2、 使用媒体集与使用单一备份设备的方法一样,只需添加其他备份设备,系统会自动将这些设备作为一个备份媒体集使用;
' T) V! B; y( P. M9 n 3、 系统在使用备份媒体集时,基本是将备份所需的空间均衡地分担到每个备份设备上;
% q& q9 T8 M& L9 K+ T 4、 如果以后要单独使用某个设备,则必须重新初始化备份媒体集,即删除不需要的设备后,重写并初始化即可,但注意的是,重新初始化后原备份媒体集上所备份的内容将全部丢失。1 j- o6 b N9 c, a+ C7 j) P
15.2 恢复数据库
1 ^2 g. @0 ]# M; c! l F 15.2.1 恢复前的准备及恢复顺序
, y. D& [* ~3 m, ]! O, d9 A 1、恢复前的准备! w& H& A/ O# F @8 J/ x- Y2 K
在恢复数据库前必须限制数据库的访问,一般选择“限制访问”中的“db_owner、dbcreator或sysadmin的成员”,说明只有以上角色才可访问数据库;. z+ ^6 A0 U$ [$ _* R0 K
2、恢复的顺序" p$ t' g* e; ^: k" \
(1) 恢复最近的完全数据库备份;
- O; N( S7 I# |: W$ P. f5 z (2) 恢复完全数据库备份之后最近的差异数据库备份;
9 U2 `& U `" S6 l (3) 按日志备份的先后顺序恢复自最近的完全或差异数据库备份之后的所有日志。
- `& |- b' ~; s7 T7 e4 n6 { 15.2.2 实现恢复4 b) w/ U, N! t1 ~7 g* j5 c! W
1、用企业管理器恢复数据库6 z# U# P) K5 e1 B2 X
2、用Transact-SQL语句恢复数据库
" t& a. N X, F( Z/ Y6 L' [# L RESTORE DATABASE 数据库名$ L8 K7 s( ]: |1 L, v4 r
FROM 备份设备名' K7 g9 q: q. _ ?" y" R1 v
[WITH FILE=文件号[,]NORECOVERY[,]RECOVERY]
4 ~0 Y9 l' W3 y 其中:
* h. k8 v# Z$ {4 C2 ~ (1) FILE=文件号:标识要还原的备份集,文件号为1表示备份设备上的第一个备份集,文件号为2表示备份设备上的第二个备份集;
6 r. A! Q' q& [+ R$ F' R! y* B! p5 c (2) NORECOVERY:表明对数据库的恢复还没有完成,使用此项恢复的数据库是不可用的,但可以继续恢复后续的备份;0 f4 F5 R) {7 Q. F! J6 Z7 W
(3) RECOVERY:表明对数据库的恢复已完成,一般是在恢复数据库的最后一个备份时使用此项,此时恢复的数据库是可用的。
! |' ^7 w2 B h& M+ d6 n 恢复日志的语法:
1 q8 u7 D$ P3 w% O0 R7 I RESTORE LOG 数据库名 FROM 备份设备名 [WITH FILE=文件号[,]NORECOVERY[,]RECOVERY] |