' H/ @$ Z; |+ D
本文出自头条号老王谈运维,转载请说明出处。
, G! R$ Y: L7 \ i& {# A/ _: s8 G# M/ Q
9 A2 o; c! _( P$ w2 D/ n( v对于数据库运维人员,数据的备份和恢复非常重要。数据的丢失往往会给企业带来巨大的损失,因此在保证数据不丢失的情况来提升系统的性能是对DBA最基础的要求。
4 x' @- m, A$ c W
1 o% @, W- @' N. o9 f; [% t8 p上一篇文章小编总结了Oracle不同损坏级别的恢复,介绍了不同程度的数据库损坏合适的数据恢复方式(地址:https://www.toutiao.com/i6701178106838778382/)。2 _1 e" G5 l3 a/ l/ r5 T3 u0 W
# \6 C& R4 Q5 B1 M
, n' T0 x3 C. c) x/ G! y& ]& H3 X: c% w5 e" K
今天主要讲述 Oracle 基于 rman 在各级别下的备份,包括全备、增量备份、表空间、数据文件、控制文件、归档日志文件等,方便大家在工作中可以根据实际场景实际需求,选择合适的备份方法及备份方式。5 l8 @& o( A3 i8 v6 ^
1 P) d8 j5 c3 C' }8 v( a) L6 F' b5 b库完全备份0 R8 K3 A* Z- C; N! ^, K
2 ]) y) [/ q" o. X+ _! \. a" s1.1 使用场景
) K" \2 r3 f; i& p0 V5 G+ S% n+ {0 G+ i a7 G' i' W7 V
在 Oracle 数据库的数据量不大的情况下。6 R) p, U P/ V# Y& g& x( m
; c: R! I! Q' O9 H+ t, A
1.2 采用备份集的方法9 l1 k$ \0 R8 _ s3 W4 Q3 T) @
rman> run{allocate channel c1 device type disk;backup database FORMAT ’ /flash_recovery_area/backup_U%.backupset’plus archivelog delete input;release channel c1;}6 O7 a) }2 S# D) J" q+ z: b
1.3 采用数据镜像的备份方式& E, R0 F- J) t2 N+ ?
1 }1 F( ?7 \) l2 O9 j
数据库镜像备份采用COPY命令,或BACKUP命令的AS COPY选项。例如在面面的备份示例中,进行了数据库的镜像完全备份:* |9 C2 A* [( ~) K8 ?# N* x
rman>run{allocate channel c1 device type disk;backup as copy database plus archivelog delete input;release channel c1;}
% F( g1 B( w# D9 F, B% @& T9 b+ f) I; E) A/ F
; X: E- Q: s' N% x5 w/ V增量备份6 }/ N! j% z2 q4 G" ~ n" _
9 C- D& f, b% Q' h" f) B0 W2.1 使用场景+ E0 j" I8 B1 Z" y
% |! F% b4 f3 ?- ^" q: H
Oracle 数据库的数据量较大,如果每次都全备,会比较耗时,这时通常是采用增量备份,不过需要注意的是增量备份是以0级的全备为基础的。例如:你可以周日进行一次全备,1-6进行增量备份。0 k+ ~& ]' z' S" b; o( ?* Z
. e r3 L3 C: K. [& J0 n
2.2 使用方法4 W8 ^1 A- R( T4 X
; S( T2 }4 N" h/ p( c
1)数据库的0级备份
W$ q1 P* k, l, G rrman> run{allocate channel c1 device type disk;backup incremental level=0 database plus archivelog delete input;release channel c1;}
$ q. G' g' G3 j: w说明:数据库的0级备份就是oracle的全备,但与普通的全备不同的是可以在0级备份基础上进行增量备份,而普通的全备此没有此功能。
! b, W7 p( s" ?/ [; g+ B* Q9 c* U Y) c+ T; }
2)数据库的1级备份! O* h0 G7 r- }! i( r5 H' ]! z
rman> run{allocate channel c1 device type disk;backup incremental level=1 database plus archivelog delete input;release channel c1;}" A* ~, z4 w& B8 W
3)增量累计备份 在增量备份中,若干次的同级、上级增量备份可以被合并,称为增量的“累计”备份。下面的示例描述了进行增量累计备份的过程。所有0级备份后的1级备份被本次备份合并,备份基于磁盘进行,申请了两个磁盘通道。同时备份归档日志,备份完成后即删除:3 y! D" {7 t8 F/ m. F0 \/ X! d9 _
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;}
" N3 ^6 B) h: e6 L5 W' \备份数据文件
, @3 |9 O l6 r- b# I, D9 J$ D% i U! ^6 X3 C; _5 @5 @
3.1使用场景 R* ]2 r3 \# I
; w' {+ m6 ~! m- |( Z& C8 ?如果 Oracle 数据库中只有一个或若干表空间的数据文件数据变化频繁,则 Oracle 也支持仅对这些数据文件或对应的表空间进行备份。
+ K7 z/ F8 R# \; y4 ] Q6 B9 O9 p
3.2 使用方法 P6 ]7 X6 h! }) Y$ G5 j
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;}
5 B) A( p( d" P' x; V3 _' j% n8 E( V9 M2 w
, m4 C' r" C [" B$ {
备份表空间
; a" J2 J8 H. q5 s/ {* Y$ M( p U% b }
4.1 使用场景
& |4 ]- {5 O8 j& D
' F2 ? [' n$ G$ @ 使用场景同单独备份数据文件
8 x4 T2 `) o) J/ Y' ]* x* Z, i8 M: M7 B( e) q
4.2 使用过程8 X; C8 {# u% [# c9 C8 ^1 P' S! B
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 n7 V8 ?$ ?2 `% ]' @通过下面的命令检查表空间的备份结果:
! ~" Y4 O R5 o# Trman>list backup of tablespace users;
; Z3 ^. @5 m9 i5 l) r备份控制文件
; d9 C `/ w g- g3 z2 Q$ ^* ~( A
5.1 使用场景+ Y0 {2 K" h5 s) K% A' ]- h
/ r L/ A2 ?) @
数据库的整体迁移,数据文件的目录发生改变,此时需要单独备份控制文件至跟踪文件中。
- [9 K* a L6 ~! ?" p# p5 J; w- j
3 l$ f$ Z5 ?, _8 S( m1 V- s' ?$ ^! `5.2 使用过程
( {9 k* z1 o! j5 h& X7 t9 g) q- I
# T! `+ H5 y. p$ G( ]方法一: 将控制文件自动备份功能打开:; X2 c7 H, Q0 F" N* a2 k! {7 O
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP on;
A* g' m% c/ B* _* u方法二:单独地备份控制文件* k0 j m3 a1 I6 D& d
RMAN>BACKUP CURRENT CONTROLFILE;( i1 z7 ?; S( ~, B
方法三:备份其他数据库文件时附带备份控制文件2 k1 I8 s& s0 L; g% i
RMAN>BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;
* h. E" Q* Z' i8 O6 V' t检查备份结果' F) Y9 n0 R% d6 I+ O
RMAN>list backup of controlfile;
; N9 V, `6 ?$ g- ^% ^备份归档日志, u2 b/ o* {: Y7 B4 A8 H/ H7 [
9 Q, s8 b7 v i3 h6 B" l6.1 使用场景; g5 c& ^1 Z9 Q0 y' [" M
7 `, d# ]/ c+ Z2 v3 E: X1 w备份数据库的时候没有备份归档日志文件,此时就需要对归档日志文件进行单独备份。
) G% L k+ x4 `% `6 T! M* k1 r/ X' }. A+ a: D6 a
6.2 使用方法: r" a# d, \9 @0 l3 p1 j
, p3 j' X6 E% R# z7 B+ ?/ A
1)查看系统归档日志信息4 C1 X5 Q' h/ v/ H
RMAN>list archivelog all;
) ^' o, ]$ k' }6 e* Y- o+ }2)备份所有归档
# b. K! a) q& l% SRMAN>backup archivelog all delete all input format '.......';
, X8 ~. I! F' l- {3 G但是,在一般情况下,数据库备份计划一般通过在BACKUP DATABASE中指定PLUS ARCHIVELOG选项来直接进行归档文件的备份,备份期间,RMAN对当前联机重做日志文件进行归档,然后对当前未备份归档日志进行备份。这样,这个备份集将尽可能地包含了可用于恢复的素材,将数据库恢复到一个一致性的状态。( D5 O+ k2 r9 I( J5 @/ n) r& [
RMAN>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>4 b; r5 Y. r: G/ s$ D8 c" K- w
网站崩溃找不到原因?平台搭建无从下手?热门技术不想落伍?想要变强找不到资料?$ e% x! k: I- I' Y$ b
2 r3 G7 D$ B- u4 {* e, f加入[IT拯救联盟],让大牛和同伴拯救你,带你装x带你飞。定期干货分享、大牛专业解答、实用IT工具优选.....
* }3 W, y2 v+ _; ^" g: w. S$ k2 w8 K7 q: J* b9 q0 [
私信小编“联盟”,即可加入我们~ |