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

[复制链接]
查看6791 | 回复17 | 2021-11-9 23:50:42 | 显示全部楼层 |阅读模式
* c* G# S5 `- y3 {/ V# l! W
本文出自头条号老王谈运维,转载请说明出处。
8 W1 a; [; l1 N# _1 D2 E. e! o8 E

: C1 t+ B8 e! I2 w! _对于数据库运维人员,数据的备份和恢复非常重要。数据的丢失往往会给企业带来巨大的损失,因此在保证数据不丢失的情况来提升系统的性能是对DBA最基础的要求。# G+ r" _0 ], i' }% b5 o3 l
7 i/ R  x8 U6 ~7 f+ V1 [
上一篇文章小编总结了Oracle不同损坏级别的恢复,介绍了不同程度的数据库损坏合适的数据恢复方式(地址:https://www.toutiao.com/i6701178106838778382/)。
3 O' m0 v! u. ?, b" l3 T9 ^+ o8 j% _; ?  b3 ~* _: C
详解Oracle不同损坏级别的备份与恢复-1.jpg
  F* `) k' ]3 H; u& E1 C. P: a' r

+ P$ @5 d6 B+ o# x8 X/ B今天主要讲述 Oracle 基于 rman 在各级别下的备份,包括全备、增量备份、表空间、数据文件、控制文件、归档日志文件等,方便大家在工作中可以根据实际场景实际需求,选择合适的备份方法及备份方式。: J. ~4 i/ b/ z% J- z! G. `, M; e7 a& v

- ?2 ~; S/ _  B4 a+ Y7 l6 Y% ]) x库完全备份
& t8 [; r# w6 q8 B7 B3 z
& F. t, i7 G; {" D1.1 使用场景
% _4 f. A, I5 b: @8 s; o6 u7 X+ X. D$ ^9 l6 y
在 Oracle 数据库的数据量不大的情况下。
4 J9 R! o) {) X6 l2 N7 D8 X7 Q0 @& E2 f2 ~  z" B
1.2 采用备份集的方法/ r( j6 ^8 |' M
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 ]0 q) f7 `- O: \8 j
1.3 采用数据镜像的备份方式6 V5 x! m& D1 }8 \
3 X* O6 T  Q! l, l* B8 {
数据库镜像备份采用COPY命令,或BACKUP命令的AS COPY选项。例如在面面的备份示例中,进行了数据库的镜像完全备份:
* A0 T1 j9 k2 z+ W' P  ~9 ]rman>run{allocate channel c1 device type disk;backup as copy database plus archivelog delete input;release channel c1;}
7 l$ i0 l- X) y" f/ C  t+ E8 r
详解Oracle不同损坏级别的备份与恢复-2.jpg
( m4 A2 @, [3 C

4 u/ q( t9 T' o! \- C: J' ]8 ?. k增量备份
) n" H( x  e" b
! r% b& k! U6 s0 ]- }, ^* \+ @& H2.1 使用场景
4 f; J- N* _& {, A! p3 d3 q* r7 ^5 K  D- K9 I4 P* [
Oracle 数据库的数据量较大,如果每次都全备,会比较耗时,这时通常是采用增量备份,不过需要注意的是增量备份是以0级的全备为基础的。例如:你可以周日进行一次全备,1-6进行增量备份。* M) i* G! {" \4 j$ D

0 y! X6 F+ ], p' s, Q2.2 使用方法. r0 h- L/ p% d  {; v5 q0 T
2 o  g' ]. f$ k3 n3 _
1)数据库的0级备份9 [0 N8 Q* ?! ^1 B4 Z
rman> run{allocate channel c1 device type disk;backup incremental level=0 database plus archivelog delete input;release channel c1;}$ V& p. Y, e: C
说明:数据库的0级备份就是oracle的全备,但与普通的全备不同的是可以在0级备份基础上进行增量备份,而普通的全备此没有此功能。
3 \5 i* n1 P' P/ |8 ?3 x+ V% B/ P; `( @# T
2)数据库的1级备份
4 }( t1 a% M( J) l9 Zrman> run{allocate channel c1 device type disk;backup incremental level=1 database plus archivelog delete input;release channel c1;}
9 B% s0 e3 t# T4 y! E3)增量累计备份 在增量备份中,若干次的同级、上级增量备份可以被合并,称为增量的“累计”备份。下面的示例描述了进行增量累计备份的过程。所有0级备份后的1级备份被本次备份合并,备份基于磁盘进行,申请了两个磁盘通道。同时备份归档日志,备份完成后即删除:
% G- O' Q$ W8 }7 orman>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 F+ [% D* N* y9 l: q0 j备份数据文件
5 K6 k4 P9 E, `  v* t! w/ T9 S3 y& ]
. j% j$ ^, y( {1 }% u, U3.1使用场景
+ }- f* f/ h* O1 t( k* M
  n' m" E6 Z; S如果 Oracle 数据库中只有一个或若干表空间的数据文件数据变化频繁,则 Oracle 也支持仅对这些数据文件或对应的表空间进行备份。
/ v. F. D) k% f9 ^$ T+ ^5 s% {5 q% i' s8 k
3.2 使用方法; v: s& K5 Z7 n; [! A$ @
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;} ; e1 h; u9 n0 [7 o4 `
详解Oracle不同损坏级别的备份与恢复-3.jpg
* u3 T' J. q9 Z7 B! v/ o0 s, ~/ T

( W. U4 v3 j" J备份表空间! i( B. \. s- i0 v4 h7 I' ]9 J" m5 o

/ l* X- s8 }: T4.1 使用场景
" c% h( D4 C" F$ }8 R# x2 h' G, }
​ 使用场景同单独备份数据文件
$ O6 T2 l$ a, A6 n
7 P- U. b4 p" U7 U, O* }% C4.2 使用过程
% G! s0 `% Q$ @4 @  krman>run{allocate channel c1 device type disk;allocate channel c2 device type disk;backup tablespace USERS FILESPERSET=1;release channel c1;release channel c2;}
- C0 F0 f( |6 u! p, G# [- F; G- n通过下面的命令检查表空间的备份结果:2 z# v0 [' p) Q  }1 H, `( p
rman>list backup of tablespace users;( P4 H# B" x3 H. `5 v' N, g
备份控制文件: v+ ]9 V$ x+ E' W. r

! V' H" K2 O! H9 @7 b5.1 使用场景# a- k2 v" `8 ]; ?8 M
% v7 b3 ?- K6 V& l
数据库的整体迁移,数据文件的目录发生改变,此时需要单独备份控制文件至跟踪文件中。1 U  s# k0 z6 j7 h* i  `
1 p: a. J. z9 ?( [
5.2 使用过程
9 g, X& D* l& X
$ `5 B3 d, v+ B方法一: 将控制文件自动备份功能打开:' N# C! T8 [  K. m- h# C( `* ?9 }& u2 z
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP on;
5 A: @, b8 |* Y方法二:单独地备份控制文件
1 X6 c) [$ d( RRMAN>BACKUP CURRENT CONTROLFILE;2 z6 X  ~$ J+ A2 u% ~
方法三:备份其他数据库文件时附带备份控制文件( J2 K2 d- x4 }: \
RMAN>BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;
9 a: Y1 U  u3 {/ e8 k5 `6 ?$ H0 V$ T检查备份结果
: J8 N7 n5 p% Y: oRMAN>list backup of controlfile;/ O' |/ Q) C/ P. M# e# f
备份归档日志& u1 D- e2 a% p1 c" ^) G' c- C

, ^+ W* [$ X( |: n. Z" D; P6.1 使用场景
, l. }( v0 A, i: |, b& J+ V/ R$ c- I+ z( j1 `
备份数据库的时候没有备份归档日志文件,此时就需要对归档日志文件进行单独备份。. H6 E" X" _* x% Z" T- ]& k

& B, b) t' z0 Z7 W! ^# T6.2 使用方法
$ c: V$ @) k9 S6 g  |3 S% @* h5 N6 s" E& b1 p
1)查看系统归档日志信息
  s) S1 S9 L! [! C3 T* V6 KRMAN>list archivelog all;  v" G0 g" j0 O- C# t7 A6 ?
2)备份所有归档
" q' ~- K7 x5 ]. qRMAN>backup archivelog all delete all input format '.......';5 U- C9 z. V4 \
但是,在一般情况下,数据库备份计划一般通过在BACKUP DATABASE中指定PLUS ARCHIVELOG选项来直接进行归档文件的备份,备份期间,RMAN对当前联机重做日志文件进行归档,然后对当前未备份归档日志进行备份。这样,这个备份集将尽可能地包含了可用于恢复的素材,将数据库恢复到一个一致性的状态。
2 ~# t/ x1 O3 Y1 n( Z, I  D4 rRMAN>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>
: Z& l+ `. ~5 p' O  M3 w# `网站崩溃找不到原因?平台搭建无从下手?热门技术不想落伍?想要变强找不到资料?! d# o- [% z/ r5 q- x+ t
* R. j: H  Q0 n9 y
加入[IT拯救联盟],让大牛和同伴拯救你,带你装x带你飞。定期干货分享、大牛专业解答、实用IT工具优选.....
4 `( U% d0 g: M$ ]5 M) Q! I* ?+ e& ?( J, Y
私信小编“联盟”,即可加入我们~
薯条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 元