关于使用rman备份数据库的脚本

#!/bin/bash

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1

export ORACLE_SID=yang1

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

backtime=`date +"90%y%m%d%H%M%S"`

$ORACLE_HOME/bin/rman target / log=/home/oracle/full_backup_$backtime.log

<<EOF

run{

allocate channel c1 device type disk;

allocate channel c2 device type disk;

allocate channel c3 device type disk;

allocate channel c4 device type disk;

sql 'alter system archive log current';

backup as compressed backupset full database format '/home/oracle/db_%d_%T_%U';

sql 'alter system archive log current';

backup archivelog all format '/home/oracle/rman_back/arch_%d_%T_%s_%p.bak' delete input;

backup current controlfile format '/home/oracle/rman_back/ctl_%d_%T_%s_%p.bak';

release channel c1;

release channel c2;

release channel c3;

release channel c4;

}

EOF

这个是个shell脚本

也可以在rman中执行:

allocate channel c1 device type disk;

allocate channel c2 device type disk;

allocate channel c3 device type disk;

allocate channel c4 device type disk;

sql 'alter system archive log current';

backup as compressed backupset full database format '/home/oracle/db_%d_%T_%U';

sql 'alter system archive log current';

backup archivelog all format '/home/oracle/rman_back/arch_%d_%T_%s_%p.bak'delete input;

backup current controlfile format '/home/oracle/rman_back/ctl_%d_%T_%s_%p.bak';

release channel c1;

release channel c2;

release channel c3;

release channel c4;

其中有一点需要说明的是备份archivelog的是否使用delete input。delete input的意思就是备份archivelog完成以后将archivelog删除。