关于使用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删除。