" G H2 c; t6 z Z本文出自头条号老王谈运维,转载请说明出处。
$ [1 k2 A# e" e
6 R' B' p' P: m& B% @( R1 o对于数据库运维人员,数据的备份和恢复非常重要。数据的丢失往往会给企业带来巨大的损失,因此在保证数据不丢失的情况来提升系统的性能是对DBA最基础的要求。; h- |6 F1 v2 t |3 p* \
, Z/ |! S) O7 t/ } B2 L ^9 Q
上一篇文章小编总结了Oracle不同损坏级别的恢复,介绍了不同程度的数据库损坏合适的数据恢复方式(地址:https://www.toutiao.com/i6701178106838778382/)。
! P4 J4 I* N- s2 T9 j. A5 P4 R
; ]9 A3 r. \- I1 Q- c0 z, H3 i3 u6 a0 U5 P" |) O5 q# C
% H; d+ e- ^8 a2 P9 E
今天主要讲述 Oracle 基于 rman 在各级别下的备份,包括全备、增量备份、表空间、数据文件、控制文件、归档日志文件等,方便大家在工作中可以根据实际场景实际需求,选择合适的备份方法及备份方式。; W1 r- [2 J- b& G
, _! Y; q3 Z/ [$ ]8 T8 X+ A库完全备份
; e# T3 u: D* @( m! p- K/ S) Q. H1 O. x j( E q- Q- w
1.1 使用场景* G4 N6 f2 e' n$ p7 n4 D
: l# Y E1 B6 s5 u# l4 f4 k1 Y在 Oracle 数据库的数据量不大的情况下。4 v1 n7 P9 J2 q" s% O
1 O* i3 k. R9 Z6 i9 G1.2 采用备份集的方法& N6 x2 F& o4 H0 V. L7 V. Z e A
rman> run{allocate channel c1 device type disk;backup database FORMAT ’ /flash_recovery_area/backup_U%.backupset’plus archivelog delete input;release channel c1;}# _2 H- N" N! i5 B% m3 P
1.3 采用数据镜像的备份方式
0 u+ k x. f+ B4 k4 p- Z
4 m. {# d' P: E* o' t数据库镜像备份采用COPY命令,或BACKUP命令的AS COPY选项。例如在面面的备份示例中,进行了数据库的镜像完全备份:
9 i0 \ @ x! a% v" i* S2 I+ E9 q/ K. d Drman>run{allocate channel c1 device type disk;backup as copy database plus archivelog delete input;release channel c1;}8 ^: b; w3 n! z2 j. z, }
$ d; m2 o3 k# c9 a5 a( p; u( n2 z
- ~7 Q3 C) X0 S; D7 q- p* h1 K
增量备份
) x- y. G7 {+ A% X/ j- q# |/ O1 Z# G Q; L8 ~- e( o% m# ]
2.1 使用场景
! z5 l) p' o* c
! _$ {: w1 ?, t' ROracle 数据库的数据量较大,如果每次都全备,会比较耗时,这时通常是采用增量备份,不过需要注意的是增量备份是以0级的全备为基础的。例如:你可以周日进行一次全备,1-6进行增量备份。
: l/ e- x* ~& \2 ~1 o9 F: x$ S6 D! D0 K# l- O5 c- w) c! g% [" r
2.2 使用方法
, h0 N/ O$ Y( c9 x% y# H2 z9 ~7 L" t8 f1 M# K
1)数据库的0级备份
* R# O$ }. a5 h( y" Krman> run{allocate channel c1 device type disk;backup incremental level=0 database plus archivelog delete input;release channel c1;}
5 S6 k3 ]! H. X. Z# Z: a9 s4 Y说明:数据库的0级备份就是oracle的全备,但与普通的全备不同的是可以在0级备份基础上进行增量备份,而普通的全备此没有此功能。, I' d5 A, T! y! r+ P- [$ y% I
) ?- _ `" I' i; e; E) S7 p2)数据库的1级备份
7 Q/ N, [% d1 m% crman> run{allocate channel c1 device type disk;backup incremental level=1 database plus archivelog delete input;release channel c1;}
+ p3 A6 v' X& K6 o# H6 ~% B t8 e3)增量累计备份 在增量备份中,若干次的同级、上级增量备份可以被合并,称为增量的“累计”备份。下面的示例描述了进行增量累计备份的过程。所有0级备份后的1级备份被本次备份合并,备份基于磁盘进行,申请了两个磁盘通道。同时备份归档日志,备份完成后即删除:
, _/ k M- c& K$ {4 d7 v) \1 D/ b' Jrman>run{allocate channel c1 device c1 type disk;allocate channel c2 device c2 type disk;backup incremental level=1 Cumulative database plus archivelog delete input;release channel c1;release channel c2;}
$ k b& [0 c0 Q备份数据文件
: z- G, U4 L. A! R. m# _
% W. S! N# z& H8 [ S3.1使用场景$ s! [0 S Q- G0 z
7 v0 z: c& s0 ^
如果 Oracle 数据库中只有一个或若干表空间的数据文件数据变化频繁,则 Oracle 也支持仅对这些数据文件或对应的表空间进行备份。
1 _4 f+ G9 m4 {# a* ?+ G
( ]- A3 @ }4 x& g4 D% {! R3.2 使用方法& S* [7 K! C3 t Q" }
rman>run{allocate channel c1 device type disk;allocate channel c2 device type disk; backup datafile 4,5 filesperset=1release channel c1;release channel c2;}
. l& ?) F- d/ {: B7 ]( f3 i: _5 }( ]3 k4 ]9 W: r" X
5 d' v( {" P5 u( M+ Z' J' g6 L Y
备份表空间4 \4 i1 b: b8 c/ t0 w: c' [
( E' h& c( U1 Y. @& v: n
4.1 使用场景
" i3 }$ J6 a2 R! h7 o- `* M2 }+ q. \' i3 |7 G- U
使用场景同单独备份数据文件8 n0 _4 o4 z# c0 v
6 q; t7 w b i4.2 使用过程/ ^2 J# m8 R" T& I
rman>run{allocate channel c1 device type disk;allocate channel c2 device type disk;backup tablespace USERS FILESPERSET=1;release channel c1;release channel c2;}1 r' `1 i& @* A9 l# u) @7 v8 j ^
通过下面的命令检查表空间的备份结果:" x1 Y# o' @9 U: y6 p; ]
rman>list backup of tablespace users;4 I% @2 [( a$ i& d3 _' t4 d2 E
备份控制文件
1 R1 [, C, ^$ N: G& f8 O$ Z1 U' b8 `( h; m' N0 L _
5.1 使用场景5 D6 I" P$ m9 f: w" v/ [- ~
# c$ O1 l8 H' Q% o( ?
数据库的整体迁移,数据文件的目录发生改变,此时需要单独备份控制文件至跟踪文件中。$ P; g: ~0 o9 @! u2 G, S
) w( {2 `! t1 E/ U p/ \0 W
5.2 使用过程: k# y5 k% O; |% |; ~/ }. P! k
, P( k" n# h3 ~- ^5 w/ U& D) j( l方法一: 将控制文件自动备份功能打开:
$ d0 u; G Y" A/ Y+ V. x1 vRMAN>CONFIGURE CONTROLFILE AUTOBACKUP on;6 t3 Q! h) U1 f4 t( U* F
方法二:单独地备份控制文件, x3 D" a% L7 b8 |# x+ U) t' \8 {
RMAN>BACKUP CURRENT CONTROLFILE;( i; L- u$ ]/ W8 Q7 [1 W
方法三:备份其他数据库文件时附带备份控制文件
m. P5 h9 ~; p" O2 \RMAN>BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;; {- d( k7 c) O1 G+ k( V
检查备份结果
1 s: C+ f+ p- A E k! Y/ N( I& `RMAN>list backup of controlfile;6 b- E( t6 B s% s% J6 D2 Q
备份归档日志
4 u, K6 z! P+ Z* v% W6 q: u* f! P5 g: y$ ^& `7 t! D" n
6.1 使用场景* p& O+ C& w$ u4 S3 o: o
4 U; Z& c" S/ {5 c备份数据库的时候没有备份归档日志文件,此时就需要对归档日志文件进行单独备份。; B& O# ^3 c) z
+ E- t/ S! ?5 U ~" z; r6.2 使用方法
) Q- W- }/ x- _) W& R( V1 y$ s, ?$ @! c( p5 y( f2 c$ q
1)查看系统归档日志信息
1 h. E' l, z! W) ^$ K2 @RMAN>list archivelog all;; b9 g! v3 x- b7 b# ]- E3 Z# l
2)备份所有归档
5 R- |5 d5 S$ i$ G& |! MRMAN>backup archivelog all delete all input format '.......';4 o3 I! {" d" I' _1 o3 ~2 G
但是,在一般情况下,数据库备份计划一般通过在BACKUP DATABASE中指定PLUS ARCHIVELOG选项来直接进行归档文件的备份,备份期间,RMAN对当前联机重做日志文件进行归档,然后对当前未备份归档日志进行备份。这样,这个备份集将尽可能地包含了可用于恢复的素材,将数据库恢复到一个一致性的状态。
, h, s0 B6 X1 L, s$ }; C! w. b+ R eRMAN>run{alllocate channel c1 device type disk;allocate channel c2 device type disk;backup incremental level=0 database plus archivelog delete input;release channel c1;release channel c2;}<hr>& y) @4 a' p0 \. `0 d$ W2 U
网站崩溃找不到原因?平台搭建无从下手?热门技术不想落伍?想要变强找不到资料?; d, ~0 m& `# I7 G S6 o1 h
- P9 i0 {8 ^+ i" U P1 o- i" M; k
加入[IT拯救联盟],让大牛和同伴拯救你,带你装x带你飞。定期干货分享、大牛专业解答、实用IT工具优选..... @0 ?. Q. b& g. R8 i
1 s& E& H! T: l; q! _私信小编“联盟”,即可加入我们~ |