关于RMAN 中 backup backupset (备份集的备份) 的讨论 总结

上一篇 / 下一篇  2008-06-27 17:07:16 / 个人分类:Oracle - 备份与恢复

ITPUB个人空间h,T0K+}'X+d;l-p*Xx
------------------------------------------------------------------------------ITPUB个人空间:e+h:uGA
问题:ITPUB个人空间~Xd6w-yIk
------------------------------------------------------------------------------

请教RMAN中备份集的备份如何恢复?

在RMAN中可以用以下命令对备份集进行备份:ITPUB个人空间!b3NgN#w2PH!Oz0M?
    备份所有备份集:
~\7S"V4XT+u4?.|"~C0       RMAN> backup backupset all;
,N1V%ejG4GL0    备份指定备份集:ITPUB个人空间GN_F!L,x
       RMAN> backup backupset bs_num;

请问,如何对其做恢复操作?我上网查了好久都没找到相应命令,特请教各位大侠!

我一同事看到这几个命令,问起我,我也觉得有些疑惑,所以发帖相问。谢谢各位!

------------------------------------------------------------------------------
D(Tn1Ma0查资料
Q kb4|B'n @ A0------------------------------------------------------------------------------


%NEP_yR }%i4Vg0查了一下 Oracle9i Database: Advanced Backup and Recovery Using RMAN

  备份集备份的目的: 主要用于改变备份集的位置,或者创建多个镜像备份,比如将备份集从硬盘备份到磁带。

? This feature allows RMAN to change the locationITPUB个人空间 ksB9nK(?1k
of a backup set.
s q/feoow0? The source location for this command must beITPUB个人空间 L~/u{#m7J;z
disk, however, the destination can be DISK or SBT.

ITPUB个人空间#w#K0R8? gu&|+{F `+a4w
BACKUP... BACKUPSET <key|CompletedTimeSpec|ALL>ITPUB个人空间~'x?vY.O"Z\nV
RMAN> BACKUP backupSET CREATED BEFORE 'sysdate – 1'ITPUB个人空间o;q6Y ykd2]
2> DELETE INPUT;

Backing Up Backup Sets
-j&StW(}*c9n0    You can back up backup sets from disk to tape or from disk to disk. If RMAN discovers aITPUB个人空间Ow6x#d~Mbp1[
corrupt block or missing backup piece during the backup, then RMAN automatically performsITPUB个人空间+c`1G ~2\s
failover to an existing intact copy. The BACKUP BACKUPSET command uses the default disk
_Q@%@-zV0channel to copy backup sets from disk to disk. To back up from disk to tape, you must either
+I-DY^"L0manually allocate a channel of DEVICE TYPE SBT or configure an automatic sbt channel.ITPUB个人空间/q7S \6d h2Z+dI
    The BACKUP BACKUPSET command is a useful way to spread backups among multiple media.ITPUB个人空间I*u(r6ni oaI
For example, you can execute the following BACKUP command weekly as part of the productionITPUB个人空间1?,HF;y-X SYwG
backup schedule:
^:IXU'Y6h| Y#GV0    RMAN> BACKUP DEVICE TYPE SBT BACKUPSET ALL;ITPUB个人空间'k:A7`vS M-r:_6F
    Now your backups exist on both disk and tape. You can also duplex backups of backup sets
&R-N3s"fw*{Yh0(except for control file autobackups), as in this example:ITPUB个人空间q*o f&?qyT,c"V
    RMAN> BACKUP COPIES 2 DEVICE TYPE sbt BACKUPSET ALL;ITPUB个人空间0P(NiK8OD ]*}9?
    Note: If backup optimization is enabled when you issue the command to back up a backup set
BLP.vuN0and the identical backup set has already been backed up to the same device type, then RMANITPUB个人空间C5R};U%O
skips the backup of that backup set.

 

------------------------------------------------------------------------------
7F7Pb7q3@[:uFn0实验
bM`1p+{*C0g$f0------------------------------------------------------------------------------

做了个实验,测试结果如下

 

1. 首先建一个表test,插入一条数据:

SQL> select * from test;

      COL1 COL2ITPUB个人空间 Q}4H'Nh3C9P
---------- ----------
A e7sG!X\$F@0         8 888

SQL>

2. 先做了一个全库备份,结果:ITPUB个人空间@7bNj^&@*t
RMAN> backup database;

RMAN> list backupset;

备份集列表ITPUB个人空间 r~9fq$P x
===================

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
;a\/NyysO)f*z9~e0------- ---- -- ---------- ----------- ------------ ----------
BRi U"z;V0138     Full    571M       DISK        00:01:48     27-6月 -08
"E \,A }^` C;s&tG8p0BP 关键字: 139   状态: AVAILABLE   标记:TAG20080627T120319
[ N?.nA)dR9b0段名:/u01/oracle/product/9i/dbs/02jjvo8o_1_1ITPUB个人空间:h} ^W.I+u P4l8^U$x
  包含的 SPFILE: 修改时间: 25-6月 -08
-r(S2f dA"X} T0  备份集 138 中的数据文件列表
X6M#kmR2K6yeyuU*W0  文件 LV 类型 Ckp SCN    Ckp 时间   名称
H3S2Q6U1}0  ---- -- ---- ---------- ---------- ----ITPUB个人空间h.? y$JR
  1       Full 408519     27-6月 -08 /u02/oracle/oradata/crm/system01.dbf
tY qc3glD0  3       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/cwmlite01.dbf
g(^:Yg E6W+k0  4       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/drsys01.dbfITPUB个人空间J6z7PWo S(mu7q pA
  5       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/example01.dbf
Ew2RT.b0  6       Full 408519     27-6月 -08 /u04/oracle/oradata/crm/indx01.dbfITPUB个人空间r pxw1F.a
  7       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/odm01.dbf
s(n Fi5g*a0  8       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/tools01.dbf
l5GCZrE`6T0  9       Full 408519     27-6月 -08 /u05/oracle/oradata/crm/users01.dbfITPUB个人空间uv9y`cID
  10      Full 408519     27-6月 -08 /u01/oracle/oradata/crm/xdb01.dbf
Wnk`([3gF0  11      Full 408519     27-6月 -08 /u03/oracle/oradata/crm/UNDOTBS02.dbf

 

3. 执行对备份集进行备份的命令

RMAN>  backup backupset 138;

启动 backup 于 27-6月 -08
8S,? ~@9w3uU4M*Q0使用通道 ORA_DISK_1
d2E2lQd0输入备份集 count==2 stamp=658497816 creation_time=27-6月 -08ITPUB个人空间9bn(n1k3k'o
通道 ORA_DISK_1: 正在启动段 1 于 27-6月 -08
%FT+d9|9y OaqB0段 handle=/u01/oracle/product/9i/dbs/02jjvo8o_1_2 comment=NONEITPUB个人空间C/DPkN6t ^$d
通道 ORA_DISK_1: 已完成段 1 于 27-6月 -08
ywe.E;W1`d5dU0通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:08ITPUB个人空间3DN1H/np[%zAE)V;V
完成 backup 于 27-6月 -08

 

4. 查看结果,发现只是增加了一个备份集的镜像!

RMAN> list backupset;

ITPUB个人空间 S\#v!o y|];gm3Li
备份集列表ITPUB个人空间+P?6}4Ux#s,H? W
===================

BS 关键字  类型 LV 大小
_n3l5~9]A0------- ---- -- ----------
R LcLRJE2a;B&B}-K0138     Full    571MITPUB个人空间 v0BJ&}2e
  包含的 SPFILE: 修改时间: 25-6月 -08
(]aIr9@kK0  备份集 138 中的数据文件列表
'Y)@5Xa1N G0  文件 LV 类型 Ckp SCN    Ckp 时间   名称ITPUB个人空间 `"{2G5Ua&?
  ---- -- ---- ---------- ---------- ----ITPUB个人空间2h tpGNz%G{+t0I ?
  1       Full 408519     27-6月 -08 /u02/oracle/oradata/crm/system01.dbf
~@"H[ei%[0  3       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/cwmlite01.dbfITPUB个人空间W3v/L*U bU.h
  4       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/drsys01.dbfITPUB个人空间 Dz[E6O D1[
  5       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/example01.dbf
H9frv XY U0  6       Full 408519     27-6月 -08 /u04/oracle/oradata/crm/indx01.dbf
5@_'@9{*D3o;Q4Y0  7       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/odm01.dbfITPUB个人空间Y\)y6_1s,`X$Z
  8       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/tools01.dbfITPUB个人空间_'jH^:j;D;~,~!m#i
  9       Full 408519     27-6月 -08 /u05/oracle/oradata/crm/users01.dbfITPUB个人空间!i9J^ Ni2G
  10      Full 408519     27-6月 -08 /u01/oracle/oradata/crm/xdb01.dbf
0~7D4xR6tbl n0  11      Full 408519     27-6月 -08 /u03/oracle/oradata/crm/UNDOTBS02.dbf

  备份集 副本号 1 属于备份集 138
f7V9O;[ w#ge0  设备类型经过时间 完成时间   标记
-oi X,E D.tyN#F0  ----------- ------------ ---------- ---ITPUB个人空间dJ {I#E
  DISK        00:01:48     27-6月 -08 TAG20080627T120319

    备份集 138 副本号 1的备份段列表
!['J0E!y,fJ CX_0    BP 关键字  Pc# 状态      段名称ITPUB个人空间;S{ ta,L
    ------- --- ----------- ----------ITPUB个人空间"~ pvK c;U/[e
    139     1   AVAILABLE   /u01/oracle/product/9i/dbs/02jjvo8o_1_1

  备份集 副本号 2 属于备份集 138ITPUB个人空间v:{kH'jEAw
  设备类型经过时间 完成时间   标记ITPUB个人空间!E["q8zq
  ----------- ------------ ---------- ---
f){uLN M0  DISK        00:01:48     27-6月 -08 TAG20080627T120319

    备份集 138 副本号 2的备份段列表
*_8v!x S~Y:n$hPE-p c0    BP 关键字  Pc# 状态      段名称ITPUB个人空间$Leya nF/S
    ------- --- ----------- ----------
!wp3mH a"OSI3q0    180     1   AVAILABLE   /u01/oracle/product/9i/dbs/02jjvo8o_1_2

ITPUB个人空间 Xa:p5^Z
5. 查看备份集文件大小,发现他们是一样的

[oracle@earth dbs]$ lITPUB个人空间+?6|#[9U OZ'f
total 1172984
#xjG:tl\L0-rw-r-----    1 oracle   dba      598917120 Jun 27 12:05 02jjvo8o_1_1ITPUB个人空间Wn*Tcvu V j B#B
-rw-r-----    1 oracle   dba      598917120 Jun 27 16:00 02jjvo8o_1_2

ITPUB个人空间 X&U O9mP3Zf5] k.b&S
6. 嘿嘿,原想将第一个置为UNAVAILABLE, 然后用第二个来恢复,发现两个都变成了UNAVAILABLE

RMAN> change backupset 138 unavailable;
1S"kv^ a2|0RMAN> list backupset;

备份集列表ITPUB个人空间RQTG2O9e
===================

BS 关键字  类型 LV 大小ITPUB个人空间E2Jy-z1tO^t1q
------- ---- -- ----------
(kO)e f.r'N Tv T't S0138     Full    571MITPUB个人空间2F {$ZoKE[
  包含的 SPFILE: 修改时间: 25-6月 -08
{:L}h(bw8J0  备份集 138 中的数据文件列表
wOK~3a0  文件 LV 类型 Ckp SCN    Ckp 时间   名称
Y@Ru _xb,n`0  ---- -- ---- ---------- ---------- ----ITPUB个人空间 x[KH5Zc}&THa%_
  1       Full 408519     27-6月 -08 /u02/oracle/oradata/crm/system01.dbf
Oa/Ww6y }t0  3       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/cwmlite01.dbfITPUB个人空间!h@ BF.C+Jf |[
  4       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/drsys01.dbf
p s|'Sj!m*g0  5       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/example01.dbf
"{R SeX ` wr0  6       Full 408519     27-6月 -08 /u04/oracle/oradata/crm/indx01.dbf
RrV0f-i^2B6v!bK0  7       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/odm01.dbf
s%j~2ZxbX7d6TG0  8       Full 408519     27-6月 -08 /u01/oracle/oradata/crm/tools01.dbfITPUB个人空间/A2U5F!N#Gko
  9       Full 408519     27-6月 -08 /u05/oracle/oradata/crm/users01.dbf
6E,^dA` s9Xn0  10      Full 408519     27-6月 -08 /u01/oracle/oradata/crm/xdb01.dbfITPUB个人空间E*~JWb;`6L
  11      Full 408519     27-6月 -08 /u03/oracle/oradata/crm/UNDOTBS02.dbf

  备份集 副本号 1 属于备份集 138
C-j!A(\qaFO.t0  设备类型经过时间 完成时间   标记
,?(f H#|J:V%L_0  ----------- ------------ ---------- ---ITPUB个人空间kv:u|M5Z
  DISK        00:01:48     27-6月 -08 TAG20080627T120319

    备份集 138 副本号 1的备份段列表
5\8{,WXC%e/XP7e0    BP 关键字  Pc# 状态      段名称ITPUB个人空间K D;}+u(cx
    ------- --- ----------- ----------ITPUB个人空间R/E Z[!X5\r
    139     1   UNAVAILABLE /u01/oracle/product/9i/dbs/02jjvo8o_1_1

  备份集 副本号 2 属于备份集 138ITPUB个人空间)z%L LWO
  设备类型经过时间 完成时间   标记ITPUB个人空间?$?I)_'B@
  ----------- ------------ ---------- ---
N/}5r Q)qqC:b0  DISK        00:01:48     27-6月 -08 TAG20080627T120319

    备份集 138 副本号 2的备份段列表ITPUB个人空间1[g,T'fY%R6O
    BP 关键字  Pc# 状态      段名称ITPUB个人空间.c2vK5@*C{u M/cGR9bD
    ------- --- ----------- ----------
~Y.e8oCt$[x0    180     1   UNAVAILABLE /u01/oracle/product/9i/dbs/02jjvo8o_1_2

ITPUB个人空间8i&gzNY B9O-I\
7. 重置为AVAILABLE, 然后删除第一个备份集的文件:(模拟备份集丢失)
2sd~ x-Bw}x0RMAN> change backupset 138 available;

$ mv 02jjvo8o_1_1 02jjvo8o_1_1.bak

8. 尝试恢复,失败
"[i(A3Zd2S S6C0RMAN> restore database;

....

RMAN-00571: ===========================================================
Z:q`q HsC0RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
ekS"\N(dd0RMAN-00571: ===========================================================ITPUB个人空间 q:Q"XQ#t@C*k
RMAN-03002: failure of restore command at 06/27/2008 16:23:42ITPUB个人空间QHi\2]XqO
ORA-19505: failed to identify file "/u01/oracle/product/9i/dbs/02jjvo8o_1_1"ITPUB个人空间S"ktaQbO#M
ORA-27037: unable to obtain file statusITPUB个人空间`@ z&BbYAm
Linux Error: 2: No such file or directoryITPUB个人空间"JB'N7{c/F y
Additional information: 3

ITPUB个人空间-]:u.cC)o1{m4}/b)r
9. 执行交叉校验ITPUB个人空间1o c2_GwT?R/f)u O
RMAN> CROSSCHECK BACKUP;

使用通道 ORA_DISK_1
g-S DF%Uyi;Z0交叉校验备份段: 找到为 'EXPIRED'
yR/g sW7a1hm0备份段 handle=/u01/oracle/product/9i/dbs/02jjvo8o_1_1 recid=1 stamp=658497818ITPUB个人空间7X'X d2zz3O&j9]
交叉校验备份段: 找到为 'AVAILABLE'
IGX:Q,x,iy;L0备份段 handle=/u01/oracle/product/9i/dbs/02jjvo8o_1_2 recid=2 stamp=658511949
jt(yiA0已交叉检验的 2 对象

ITPUB个人空间 b\{ d*~#yh
10. 再尝试恢复,成功

ITPUB个人空间W8v%[OQQPls-z
RMAN> restore database;

启动 restore 于 27-6月 -08

使用通道 ORA_DISK_1ITPUB个人空间2l@R_1m
通道 ORA_DISK_1: 正在开始恢复数据文件备份集ITPUB个人空间UH$tBqE
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件ITPUB个人空间i]n$`/wb(k[ g
正将数据文件00001恢复到/u02/oracle/oradata/crm/system01.dbfITPUB个人空间+M-Fsco8R
正将数据文件00003恢复到/u01/oracle/oradata/crm/cwmlite01.dbfITPUB个人空间 {9tx-M;| sg0H
正将数据文件00004恢复到/u01/oracle/oradata/crm/drsys01.dbf
#\!b"ZS%tFT0正将数据文件00005恢复到/u01/oracle/oradata/crm/example01.dbf
x5?]M4dvh9D0正将数据文件00006恢复到/u04/oracle/oradata/crm/indx01.dbf
,qRDmi z0正将数据文件00007恢复到/u01/oracle/oradata/crm/odm01.dbfITPUB个人空间7MqT3B _1rK W
正将数据文件00008恢复到/u01/oracle/oradata/crm/tools01.dbfITPUB个人空间#] J'm n"D$U
正将数据文件00009恢复到/u05/oracle/oradata/crm/users01.dbfITPUB个人空间k?XZ(EEK
正将数据文件00010恢复到/u01/oracle/oradata/crm/xdb01.dbf
4}T`c t+ww0正将数据文件00011恢复到/u03/oracle/oradata/crm/UNDOTBS02.dbfITPUB个人空间 v@[;c$sf%|
通道 ORA_DISK_1: 已恢复备份段 1
;nq u%Tm,T0段 handle=/u01/oracle/product/9i/dbs/02jjvo8o_1_2 tag=TAG20080627T120319 params=NULLITPUB个人空间2Ql3LY|Wa H
通道 ORA_DISK_1: 恢复完成ITPUB个人空间-m{h)aI)jum'f
完成 restore 于 27-6月 -08

RMAN> recover database;

启动 recover 于 27-6月 -08ITPUB个人空间"A!AUI#`3mps
使用通道 ORA_DISK_1

正在开始介质的恢复
.x"Jk^4w1ap!Y0完成介质的恢复

完成 recover 于 27-6月 -08

RMAN> sql 'alter database open';

sql 语句: alter database open

ITPUB个人空间 z7B;NgFq*j3P
查看表test,恢复成功!
2J6m*|3MZ9WV4@LvG0SQL> select * from test;

      COL1 COL2ITPUB个人空间*l'R){ E{V'f[i6[(Y^XU
---------- ----------ITPUB个人空间 xKZiZi |
         8 888

SQL>

------------------------------------------------------------------------------
$D0~jZ)s0总结:
G"[5]${fy/v#RG0------------------------------------------------------------------------------

   原以为对备份集进行备份后,需要先对其进行恢复,才能进行对数据库的其他恢复操作,原来是不需要的!

   原来我在做备份集的备份时,总是手工/自动的将其备份到磁带或其他的机器,实现异地的备份,以免本机出现故障后进行恢复。

   看来,这个命令还是很有用的! 特别是将备份集备份到磁带时。ITPUB个人空间$Ua3S+d$XQ:F h1D-K


TAG: oracle rman 备份backupset

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-07  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 792
  • 日志数: 29
  • 建立时间: 2008-06-19
  • 更新时间: 2008-09-04

RSS订阅

Open Toolbar