" Y6 |0 {# r; F* b本文出自头条号老王谈运维,转载请说明出处。
0 c5 G x1 j. G, l# _1 V$ @ ; H2 p- V& I& k5 q6 f1 w
对于数据库运维人员,数据的备份和恢复非常重要。数据的丢失往往会给企业带来巨大的损失,因此在保证数据不丢失的情况来提升系统的性能是对DBA最基础的要求。' ^/ j$ f# d2 `" A
7 X- ^) {8 \& U$ r/ v4 V上一篇文章小编总结了Oracle不同损坏级别的恢复,介绍了不同程度的数据库损坏合适的数据恢复方式(地址:https://www.toutiao.com/i6701178106838778382/)。0 _9 I |6 Y3 C
4 w& }9 B9 V e; m. D& V, e% w9 D! P
) Y6 ~8 b: c' D u
! l7 u6 L$ F$ Q- n# C; ~今天主要讲述 Oracle 基于 rman 在各级别下的备份,包括全备、增量备份、表空间、数据文件、控制文件、归档日志文件等,方便大家在工作中可以根据实际场景实际需求,选择合适的备份方法及备份方式。
0 k! `5 s" Z6 P/ Q+ |: g' ~) @
% G: G- W, ~1 O% I( W. r, L库完全备份
& k, s' o1 ?, M7 h( v: J: |! Y
& s' b# K, }( y2 e( [1.1 使用场景
% l" y# t4 {4 `9 @7 X$ k: ^5 k4 l; k2 Y; m: A5 \
在 Oracle 数据库的数据量不大的情况下。
* t1 k' a/ ?+ q' \+ i8 I+ W/ r0 v: A( R, Y+ O! M
1.2 采用备份集的方法0 v/ P8 X, ]5 u( J! e0 o s
rman> run{allocate channel c1 device type disk;backup database FORMAT ’ /flash_recovery_area/backup_U%.backupset’plus archivelog delete input;release channel c1;}
9 X: K! R0 ~6 V& `$ p! r1.3 采用数据镜像的备份方式& U, X1 Z5 W9 s1 K& u
/ C$ E% V* L. S8 v' [
数据库镜像备份采用COPY命令,或BACKUP命令的AS COPY选项。例如在面面的备份示例中,进行了数据库的镜像完全备份:4 f' o$ A5 n* U5 N
rman>run{allocate channel c1 device type disk;backup as copy database plus archivelog delete input;release channel c1;}
- N& a) r! b/ y, P; A' t" }2 X
0 P4 T7 ~/ @: g7 w l) T0 v1 `7 s5 n
增量备份
/ A" l6 T5 Z& f0 \ R$ O
1 L# |( U6 c ^6 c; w2.1 使用场景6 K8 D4 [* J* Q7 e
. L2 `5 N" S6 m% A) {Oracle 数据库的数据量较大,如果每次都全备,会比较耗时,这时通常是采用增量备份,不过需要注意的是增量备份是以0级的全备为基础的。例如:你可以周日进行一次全备,1-6进行增量备份。
- N7 T2 c6 N% W, B9 f' O/ g4 f. v
2.2 使用方法& G( d6 U# k$ j
3 K! q; S% O& _) S3 B, w0 N" J2 U0 k1)数据库的0级备份/ F/ X+ ?. V* K9 ~* c
rman> run{allocate channel c1 device type disk;backup incremental level=0 database plus archivelog delete input;release channel c1;}
. N9 S' O2 \9 G. F9 G' ^& Y, {说明:数据库的0级备份就是oracle的全备,但与普通的全备不同的是可以在0级备份基础上进行增量备份,而普通的全备此没有此功能。
; o! U8 }- ~4 \5 E. d% j) A' X+ y! G. v2 ?0 j
2)数据库的1级备份
2 v5 Z# V' N8 L* s. W: K- wrman> run{allocate channel c1 device type disk;backup incremental level=1 database plus archivelog delete input;release channel c1;}
) m) j) H4 g" G5 W m! p7 D3)增量累计备份 在增量备份中,若干次的同级、上级增量备份可以被合并,称为增量的“累计”备份。下面的示例描述了进行增量累计备份的过程。所有0级备份后的1级备份被本次备份合并,备份基于磁盘进行,申请了两个磁盘通道。同时备份归档日志,备份完成后即删除:
+ _5 `/ G3 S* ^rman>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;}& \: D+ P3 e8 z( E
备份数据文件1 A# ^2 B" u- p, y' t
; ]' F) L! E/ P8 W6 N: R0 K
3.1使用场景
7 C% j4 z. \4 j# F8 {! [6 ~' U( t! Z
如果 Oracle 数据库中只有一个或若干表空间的数据文件数据变化频繁,则 Oracle 也支持仅对这些数据文件或对应的表空间进行备份。
6 M0 ~: D$ U/ M' C2 y; k, j
2 ?- b. _- g: B K% P3.2 使用方法
; _2 S/ o0 ~5 N1 ~3 O' Zrman>run{allocate channel c1 device type disk;allocate channel c2 device type disk; backup datafile 4,5 filesperset=1release channel c1;release channel c2;}
$ y- F9 m& B3 n1 q7 _1 a+ ~: N, ^
2 d+ W4 S& a5 `备份表空间. o0 K. R3 ~0 ?$ \; i
) w. I, G& f. M9 r5 i r
4.1 使用场景
/ B- q1 p# X6 W T7 i+ B( ?' z
, L# G; ?, `6 L3 k/ h3 V3 E 使用场景同单独备份数据文件# }/ e3 Y A4 P5 M/ Y
# l4 k5 C& i1 k4.2 使用过程! I, [3 Q& P8 `7 K& W
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;}
9 o$ u: c4 O5 \' x |% W; S通过下面的命令检查表空间的备份结果:
0 l/ x& R8 s% v* t; Mrman>list backup of tablespace users;6 K2 P8 Q7 O; f/ r2 }
备份控制文件% y3 ]0 O1 \- C! @9 f) E% H& v5 F& z
/ f# Q3 W) d5 t+ c! P
5.1 使用场景
5 {1 O n6 I7 N- P
7 n5 t* |$ A7 \ f9 x# @# s4 V$ L数据库的整体迁移,数据文件的目录发生改变,此时需要单独备份控制文件至跟踪文件中。: j2 P' A% j: L( B p' B
+ S, ^4 n' }7 f2 G* ]' k( e; l0 \/ b5.2 使用过程' ~& ]" A# t1 d4 |+ y7 ^
- K; D% U& n. O) P+ W9 a$ A
方法一: 将控制文件自动备份功能打开:; i2 Z- X' ] v# M" ]* e2 D
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP on;4 D. _+ O1 M( q; A% t2 W3 }$ N
方法二:单独地备份控制文件
: E* @- u7 b7 N: r" _5 gRMAN>BACKUP CURRENT CONTROLFILE;% Y$ C( v2 N) S/ V2 r
方法三:备份其他数据库文件时附带备份控制文件
! S7 L9 W) ^$ w" Z' ~' ?RMAN>BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;
$ a5 ~1 N' B. \检查备份结果
; Z& E: h# z+ r/ c8 Q0 U" mRMAN>list backup of controlfile;4 L/ _# ~. X# y4 N* M' e$ @4 ~
备份归档日志- ^: w3 U2 ] W; v$ B: x. o. b
- C: W% b: s; c
6.1 使用场景: Z# ~9 y; C3 v- e6 }2 U/ y
: @# J l, e( W3 Q
备份数据库的时候没有备份归档日志文件,此时就需要对归档日志文件进行单独备份。
1 b$ Y- W3 o! j* }. c9 d
- L: ]: h9 H) T ~1 B6.2 使用方法
; N' \+ b5 g5 g9 H6 j: I$ Q0 O# X- _2 [. r5 \
1)查看系统归档日志信息
4 ~0 ?/ X! G' v+ J6 d- V1 |5 Q, n6 jRMAN>list archivelog all;
8 d0 [ G1 X) A9 `2)备份所有归档( z. h& o6 D) Z" o1 o
RMAN>backup archivelog all delete all input format '.......';4 w1 K9 S+ S; b
但是,在一般情况下,数据库备份计划一般通过在BACKUP DATABASE中指定PLUS ARCHIVELOG选项来直接进行归档文件的备份,备份期间,RMAN对当前联机重做日志文件进行归档,然后对当前未备份归档日志进行备份。这样,这个备份集将尽可能地包含了可用于恢复的素材,将数据库恢复到一个一致性的状态。
4 ?" ]' M$ Q% G0 N# c( DRMAN>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>5 p/ U; D9 Q' E e. {7 ]. i
网站崩溃找不到原因?平台搭建无从下手?热门技术不想落伍?想要变强找不到资料?6 B8 r! { A7 q6 V
& K" i& ?9 S( K( {# @; w O& D8 X
加入[IT拯救联盟],让大牛和同伴拯救你,带你装x带你飞。定期干货分享、大牛专业解答、实用IT工具优选.....& O1 \# p+ I" w/ `4 u# q& Z1 ~1 f
4 i" M' b$ j7 s# Q2 }3 S9 f* V8 T
私信小编“联盟”,即可加入我们~ |