oracle rman自动备份脚本
#!/bin/sh
. /opt/oracle/.bash_profile
PWD_SYS="/"
BAK_DIR="/opt/oracle/backup/oatest"
BEGIN_SEQ=$(
sqlplus -s ${PWD_SYS}' as sysdba' <<!
set linesize 1000;
set serveroutput on;
set echo off;
set heading off;
set feedback off;
select max(sequence#) -1 from v\$archived_log;
!)
echo '------backup_begin--------------'
echo $BEGIN_SEQ
echo 'backup start time '
date +'%Y-%m-%d %H:%M:%S'
$ORACLE_HOME/bin/rman <<!
connect target ${PWD_SYS};
backup full database maxsetsize 20G format '${BAK_DIR}_%T_%s_%p.dbf';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
backup archivelog from sequence ${BEGIN_SEQ} maxsetsize 20G format '${BAK_DIR}_%T_%s_%p.arc';
backup spfile maxsetsize 10G format '${BAK_DIR}_%T_%s_%p.spf';
backup current controlfile maxsetsize 10G format '${BAK_DIR}_%T_%s_%p.ctl';
restore database validate;
delete noprompt obsolete;
!
echo 'backup end time'
date +'%Y-%m-%d %H:%M:%S'
echo '------backup_end--------------'
#crosscheck backupset;
#crosscheck archivelog all;
#delete expired backupset;
#delete expired archivelog all;
#0 4 * * * /opt/oracle/backup/oatest/backup_rman.sh >> /opt/oracle/backup/oatest/backup_rman.log 2>&1 &