Aix下使用rman备份Oracle RAC数据库

时间:2021-02-22 20:44:46

使用rman增量备份,备份策略为:每周四执行零级备份,周五---周三执行1级增量备份,下周四再进行新的零级备份。这样如果需要恢复的话,需要最多的备份数据为 1个零级备份+61级备份+当天的归档日志rman零级备份脚本放于/home/oracle/ora0.sh1级备份位于/home/oracle/ora1.sh 具体内容如下:

零级备份

#!/bin/sh

echo "start"; date

#env

ORACLE_BASE=/oracle/app/oracle

export ORACLE_BASE

ORACLE_HOME=/oracle/app/oracle/product/9.2.0

export ORACLE_HOME

ORACLE_SID=XXX

export ORACLE_SID

ORACLE_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export ORACLE_NLS33

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

export LD_LIRARY_PATH

PATH=/usr/css/sbin:$ORACLE_HOME/bin:/usr/bin:$PATH

export PATH

LANG=en_US

export LANG

 

#backup

$ORACLE_HOME/bin/rman<<eof

connect target

 

run

{

allocate channel c1 device type disk ;

allocate channel c2 device type disk ;

allocate channel c3 device type disk ;

backup incremental level 0 database tag 'dbL0' format'/share1/backup/dbkup_%d_%T_%U_L0';

sql 'alter system archive log current' ;

backup archivelog all delete input format'/share2/arcbkup/arcbkup/arc_%d_%T_%U_L0';

release channel c1;

release channel c2;

release channel c3;

}

exit;

EOF

echo "end"; date

 

1级备份

#!/bin/sh

echo "start"; date

#env

ORACLE_BASE=/oracle/app/oracle

export ORACLE_BASE

ORACLE_HOME=/oracle/app/oracle/product/9.2.0

export ORACLE_HOME

ORACLE_SID=XXX

export ORACLE_SID

ORACLE_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export ORACLE_NLS33

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

export LD_LIRARY_PATH

PATH=/usr/css/sbin:$ORACLE_HOME/bin:/usr/bin:$PATH

export PATH

LANG=en_US

export LANG

 

#backup

$ORACLE_HOME/bin/rman<<eof

connect target

run

{

allocate channel c1 device type disk ;

allocate channel c2 device type disk ;

allocate channel c3 device type disk ;

backup incremental level 1 database tag 'dbL1' format'/share1/backup/dbkup_%d_%T_%U_L1';

sql 'alter system archive log current' ;

backup archivelog all delete input format'/share2/arcbkup/arcbkup/arc_%d_%T_%U_ L1';

release channel c1;

release channel c2;

release channel c3;

}

exit;

EOF

echo "end";date

 

 

 

cron任务中定时实现定时备份,即加入以下条目

0 1 * * 0,1,2,3,5,6/home/oracle/ora1.sh              每天(除周四)凌晨1点执行一级备份

0 0 * * 4/home/oracle/ora0.sh              每周四0点执行0级备份

 

 

数据库全备份路径是在 /share1/backup

 

数据库归档日志路径分别为/share2/archive/archive1/share2/archive/archive2

(该目录文件请不要使用rm命令删除)

 

数据库归档日志备份路径为/share2/arcbkup/arcbkup

数据库控制文件自动备份路径为 /share1/spbkup

 

/share1 /share2文件系统为两台机器(两个实例)可以共同访问的文件系统,所以保证了归档日志共享,以达到恢复目的。因为数据库恢复时,只需要在一个实例上进行恢复,但是需要读取两个实例产生的归档日志,所以归档日志目录必须共享。反过来,备份的时候,只需要在一个实例上进行即可。

 

 

 

以下是数据库全备份脚本:

rman备份脚本放于/home/oracle/backup.sh,具体内容如下:

#!/bin/sh

echo"start"; date

#env

ORACLE_BASE=/oracle/app/oracle

exportORACLE_BASE

ORACLE_HOME=/oracle/app/oracle/product/9.2.0

exportORACLE_HOME

ORACLE_SID=XXX

exportORACLE_SID

ORACLE_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

exportORACLE_NLS33

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

exportLD_LIRARY_PATH

PATH=/usr/css/sbin:$ORACLE_HOME/bin:/usr/bin:$PATH

exportPATH

LANG=en_US

exportLANG

 

#backup

$ORACLE_HOME/bin/rman<<eof

connecttarget

 

run

{

allocatechannel c1 device type disk;

backupdatabase format '/share1/backup/dbkup_%d_%T_%U';

sql'alter system archive log current';

backuparchivelog all delete input format '/share2/arcbkup/arcbkup/arc_%d_%T_%U';

}

exit;

EOF

echo"end"; date

 

cron任务中定时实现定时备份,即加入这一条目

0 3 10* * /home/oracle/backup.sh  即在每月10号凌晨3点运行备份脚本。