oracle 10g rman备份与恢复之三(一)

2014-11-24 17:04:09 · 作者: · 浏览: 0
oracle 10g rman备份与恢复之三
1、rman实际上就是一个备份工具,协调这部件。
就是在target database、auxiliary database、disk/sbt tape、catalog database/controlfile
同时连接到上面3个库,达到备份到磁盘或者磁带,或者说从磁带或者磁带恢复。
----------------------------------------------------------------------
2、一个典型的增量备份方案
星期天晚上 -level 0 backup performed (full backup)
星期一晚上 -level 2 backup performed
星期二晚上 -level 2 backup performed
星期三晚上 -level 1 backup performed
星期四晚上 -level 2 backup performed
星期五晚上 -level 2 backup performed
星期六晚上 -level 2 backup performed
假设周二 数据库需要恢复,就用到周日和周一的备份;
周四数据库需要恢复,就需要周日和周三的备份就行了。
当然恢复的时候rman会自动去找备份集。
-----------------------------------------------------------------------
自动备份:备份脚本+crontab
bakl0
bakl1
bakl2
执行脚本
rman target / msglog=bakl0.log cmdfile=bakl0
rman target / msglog=bakl1.log cmdfile=bak11
rman target / msglog=bakl2.log cmdfile=bakl2
------------------------------------------------------------------------
建立脚本
[oracle@redhat ora10g]$ cd script/
[oracle@redhat script]$ cat bakl0
run{
allocate channel cha1 type disk;
backup
incremental level 0
format "/oracle/ora10g/rmanback/inc0_%u_%T"
tag monday_inc0
database;
release channel cha1;
}
[oracle@redhat script]$ cp bakl0 bacl1
[oracle@redhat script]$ cp bakl0 bakl2
[oracle@redhat script]$ mv bacl1 bakl1
[oracle@redhat script]$ ls
bakl0 bakl1 bakl2
[oracle@redhat script]$ ls -l
total 12
-rw-r--r-- 1 oracle oinstall 160 Apr 21 02:29 bakl0
-rw-r--r-- 1 oracle oinstall 160 Apr 21 02:29 bakl1
-rw-r--r-- 1 oracle oinstall 160 Apr 21 02:30 bakl2
[oracle@redhat script]$ chmod 755 *
[oracle@redhat script]$ ll
total 12
-rwxr-xr-x 1 oracle oinstall 160 Apr 21 02:29 bakl0
-rwxr-xr-x 1 oracle oinstall 160 Apr 21 02:29 bakl1
-rwxr-xr-x 1 oracle oinstall 160 Apr 21 02:30 bakl2
[oracle@redhat script]$
[oracle@redhat script]$ vi bakl1
[oracle@redhat script]$ cat bakl1
run{
allocate channel cha1 type disk;
backup
incremental level 1
format "/oracle/ora10g/rmanback/inc0_%u_%T"
tag monday_inc1
database;
release channel cha1;
}
[oracle@redhat script]$ vi bakl2
[oracle@redhat script]$ cat bakl2
run{
allocate channel cha1 type disk;
backup
incremental level 2
format "/oracle/ora10g/rmanback/inc0_%u_%T"
tag monday_inc2
database;
release channel cha1;
}
[oracle@redhat script]$
---------------------------------------------------------------------
命令
rman target / msglog=/oracle/ora10g/rmanback/bakl0.log cmdfile=/oracle/rmanback/script/bakl0
rman target / msglog=/oracle/ora10g/rmanback/bakl1.log cmdfile=/oracle/rmanback/script/bakl1
rman target / msglog=/oracle/ora10g/rmanback/bakl2.log cmdfile=/oracle/rmanback/script/bakl2
我这里创建了catalog目录
执行备份
[oracle@redhat script]$ rman target / catalog rman/rman msglog=/oracle/ora10g/rmanback/backl0.log cmdfile=/oracle/ora10g/script/bakl0
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> [oracle@redhat script]$ ls
bakl0 bakl1 bakl2
[oracle@redhat ora10g]$ ls
admin bakl0 flash_recovery_area oradata oraInventory product rmanback rman_wolfbak.dbf script
[oracle@redhat ora10g]$ cd rmanback/
[oracle@redhat rmanback]$ ls
backl0.log full_20130