详解Oracle不同损坏级别的备份与恢复

[复制链接]
查看6746 | 回复17 | 2021-11-9 23:50:42 | 显示全部楼层 |阅读模式

5 B3 s( f1 |& D# A) q9 ^# q本文出自头条号老王谈运维,转载请说明出处。
0 }# K* I; S+ G4 z1 v

% R. W. z9 M' [对于数据库运维人员,数据的备份和恢复非常重要。数据的丢失往往会给企业带来巨大的损失,因此在保证数据不丢失的情况来提升系统的性能是对DBA最基础的要求。
- }6 I( G9 v6 T3 J2 w
7 {/ S" U, |# H2 \6 a; l上一篇文章小编总结了Oracle不同损坏级别的恢复,介绍了不同程度的数据库损坏合适的数据恢复方式(地址:https://www.toutiao.com/i6701178106838778382/)。. n# a& a4 x: F3 V, }! a; n2 R4 `
' y  }) F  n6 R/ D7 q
详解Oracle不同损坏级别的备份与恢复-1.jpg
# Y: C: @# C+ P2 R/ @$ k

. p$ X( G4 [1 O2 r6 }0 ]" [今天主要讲述 Oracle 基于 rman 在各级别下的备份,包括全备、增量备份、表空间、数据文件、控制文件、归档日志文件等,方便大家在工作中可以根据实际场景实际需求,选择合适的备份方法及备份方式。+ T% H  d) C) g

4 {6 D( y1 E: Y! i3 _5 d( _/ c1 y库完全备份: R4 @" ]2 t1 b+ n$ \9 B5 n
; P  P. i- b+ z. @7 K  X
1.1 使用场景
! S/ c  ?2 q% W9 z5 Q7 O: L1 M% g& w3 Q; T& r! P
在 Oracle 数据库的数据量不大的情况下。
- H' W5 F( x. T- E$ h1 y" v' g/ L6 R/ i% I, v- X
1.2 采用备份集的方法1 `- ^" ?) J0 p5 L1 N
rman> run{allocate channel c1 device type disk;backup database FORMAT ’ /flash_recovery_area/backup_U%.backupset’plus archivelog delete input;release channel c1;}( g. h9 g6 g7 i5 Y% z. ^2 h
1.3 采用数据镜像的备份方式. ~: M7 J  d9 r% w. P0 K- t

9 @0 g; g5 |" D+ P- L6 z$ a数据库镜像备份采用COPY命令,或BACKUP命令的AS COPY选项。例如在面面的备份示例中,进行了数据库的镜像完全备份:. Q* c: ^  Q. k. s# W0 {
rman>run{allocate channel c1 device type disk;backup as copy database plus archivelog delete input;release channel c1;}$ I6 M- _% a' y* @
详解Oracle不同损坏级别的备份与恢复-2.jpg

- w' |" m! |6 p- J7 K- |8 I9 V' m/ r; g
. I9 I3 }/ a6 v- m增量备份
0 Y' }( Q" C3 w6 V* @9 H8 L1 u8 O% c9 y9 a% S1 x  y& M; t
2.1 使用场景' M  j) W; g* D/ X9 q. x

$ c# M) y2 t- N+ c* D" E$ U/ OOracle 数据库的数据量较大,如果每次都全备,会比较耗时,这时通常是采用增量备份,不过需要注意的是增量备份是以0级的全备为基础的。例如:你可以周日进行一次全备,1-6进行增量备份。& O. _6 v  @2 Q7 L) `) F1 [. o

6 E) l- b* r) J( d/ l+ B2.2 使用方法, p3 _! O) o5 ]

+ _* A1 T. Y7 F' n5 z: D1)数据库的0级备份
+ H+ Z7 [) D8 ]4 C- t+ Q7 r* M6 prman> run{allocate channel c1 device type disk;backup incremental level=0 database plus archivelog delete input;release channel c1;}
! ]9 [( P, ]" }3 v. t说明:数据库的0级备份就是oracle的全备,但与普通的全备不同的是可以在0级备份基础上进行增量备份,而普通的全备此没有此功能。
: k5 T  q8 C0 G0 ]0 p
  t/ ?& Q. Y9 B/ ]# t2)数据库的1级备份
/ e/ O- K7 ]+ X, [rman> run{allocate channel c1 device type disk;backup incremental level=1 database plus archivelog delete input;release channel c1;}+ N* r' p8 L/ V
3)增量累计备份 在增量备份中,若干次的同级、上级增量备份可以被合并,称为增量的“累计”备份。下面的示例描述了进行增量累计备份的过程。所有0级备份后的1级备份被本次备份合并,备份基于磁盘进行,申请了两个磁盘通道。同时备份归档日志,备份完成后即删除:5 s+ N; X1 u, I7 m! u
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;}5 l! z: t; c( C- q; A; j
备份数据文件
0 x; e0 V% e, D
1 a& T4 ]" |: @  K9 V3.1使用场景4 X! E8 D7 q/ ?. K2 t- P3 h. M- o
8 W1 V; M, G/ Q/ F# _" [5 H6 {
如果 Oracle 数据库中只有一个或若干表空间的数据文件数据变化频繁,则 Oracle 也支持仅对这些数据文件或对应的表空间进行备份。
3 y, y4 b+ A. M1 K& t* L, _4 m7 x4 K( X: q( `
3.2 使用方法# d2 R, c, F+ b9 U: X/ }% C
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;}
+ X8 Y3 b1 H/ ?7 j" L1 T) P
详解Oracle不同损坏级别的备份与恢复-3.jpg
4 i0 T0 R) \1 |0 w# f- s4 h5 O! Z

  r* M9 D% \$ `9 L* I8 [; _备份表空间* H( D# e3 I( r' j; K# F

; K5 K+ i/ [$ Q, G! |9 ^4.1 使用场景
; a" I4 ]4 d2 A! A+ h& ?
4 {7 o! v1 c  n: [* S/ u* }​ 使用场景同单独备份数据文件
. k8 `* Z% Q6 I4 s5 b
: G0 i) g1 P8 u" p8 ^' [; O4.2 使用过程
) w: u- a& V' N; S' \& Q5 vrman>run{allocate channel c1 device type disk;allocate channel c2 device type disk;backup tablespace USERS FILESPERSET=1;release channel c1;release channel c2;}5 c* Y& ?0 _! H
通过下面的命令检查表空间的备份结果:1 `; h( r) }- T0 `9 O7 h- d
rman>list backup of tablespace users;* b0 A! U  f7 @: s
备份控制文件* T# l9 T0 K/ r8 Y% N0 \

, K, E3 o+ H: K# E5.1 使用场景
7 n( r" ~2 k3 e7 |% [
" E" J* ]4 Z7 }9 T% _数据库的整体迁移,数据文件的目录发生改变,此时需要单独备份控制文件至跟踪文件中。& ~. O$ h+ F+ J% V8 s

8 y$ O- A/ C7 ]* k( d5.2 使用过程
: g  l- I; p% }
8 T: K9 u/ Q4 b1 A$ v方法一: 将控制文件自动备份功能打开:" L7 c) R1 m! |- z7 T- M' ]
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP on;
9 X9 A8 I2 |% W方法二:单独地备份控制文件/ k6 l7 H. T, k; D+ r
RMAN>BACKUP CURRENT CONTROLFILE;
& p9 r$ Q* ~! E- Z1 H: z6 n* z方法三:备份其他数据库文件时附带备份控制文件4 K, ]2 V7 y' f3 L- }# R7 l
RMAN>BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;* g* G' m3 @* D& t( P; D8 [
检查备份结果
, q9 e. K: P$ G3 b; \RMAN>list backup of controlfile;" A/ P$ P5 c3 C9 u$ V$ A
备份归档日志
+ M) h: c2 ]7 P" K
; d& x7 c1 z+ s% u6.1 使用场景7 q  z7 d. }) h2 U& Z

" B: `5 r# I/ ]0 K备份数据库的时候没有备份归档日志文件,此时就需要对归档日志文件进行单独备份。, }9 n$ b3 t. ~% V

8 g- p; Y# O' b8 m  O6.2 使用方法
2 {7 ~% b* {: J6 u& h5 N& |/ f0 b5 S4 K4 l  b
1)查看系统归档日志信息  Q- M3 t' P: V& C- r
RMAN>list archivelog all;
5 R' l% y5 d9 X, m) y2)备份所有归档3 J0 G: f; \% C, x& Z" g2 V# S
RMAN>backup archivelog all delete all input format '.......';
8 ~+ O2 W5 T9 s3 K% D+ h但是,在一般情况下,数据库备份计划一般通过在BACKUP DATABASE中指定PLUS ARCHIVELOG选项来直接进行归档文件的备份,备份期间,RMAN对当前联机重做日志文件进行归档,然后对当前未备份归档日志进行备份。这样,这个备份集将尽可能地包含了可用于恢复的素材,将数据库恢复到一个一致性的状态。. ]$ ?$ [/ u: X6 V; L9 J3 }- z( A
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>
: H! I7 q' D( A5 P5 G3 h2 c9 z网站崩溃找不到原因?平台搭建无从下手?热门技术不想落伍?想要变强找不到资料?0 t8 C$ L, o, j& j

! Z7 O& R# }. ?' t# M4 Q1 m加入[IT拯救联盟],让大牛和同伴拯救你,带你装x带你飞。定期干货分享、大牛专业解答、实用IT工具优选.....
4 k; B/ q0 ^& L0 y
" S. y9 W' A. _2 p+ ~& ^! H! r, S私信小编“联盟”,即可加入我们~
薯条56条d | 2021-11-10 05:14:28 | 显示全部楼层
严格来讲,mysqldump并非一个真正实用的mysql数据库备份工具。企业版mysql的mysqlbackup才是,或者percona的xtrabackup。
啊霖哪 | 2021-11-10 16:35:49 | 显示全部楼层
年结处理流程客户一般不会操作 也不懂操作 由售后处理数据库一乱全玩完 所以年结前备份很重要本年度数据重新拷贝一份
般争新 | 2021-11-10 20:15:15 | 显示全部楼层
很好
123486474 | 2021-11-11 05:09:52 | 显示全部楼层
不错
条候含 | 2021-11-11 12:55:23 | 显示全部楼层
转发了
猫样的女人驶 | 2021-11-11 20:11:29 | 显示全部楼层
转发了
A百味人生 | 2021-11-12 07:21:41 | 显示全部楼层
转发了
宝贝卓然奔 | 2021-11-12 19:21:37 | 显示全部楼层
转发了
天外无天位 | 2021-11-13 00:22:57 | 显示全部楼层
转发了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

12

金钱

0

收听

0

听众
性别

新手上路

金钱
12 元