oracle rman备份脚本,支持Linux,AIX平台,不需要输入库名,针对多库环境,未做判断。
#!/bin/ksh
osbox=`uname`
if [[ $osbox == "Linux" ]];then
SID_NUM=`ps -ef | grep ora_smon | grep -v grep | awk -F ' ' {'print $8'} | awk -F '_' {'print $3'} | wc -l`
if [[ $SID_NUM -ne 1 ]];then
exit 1
fi
SID_ENV=`ps -ef | grep ora_smon | grep -v grep | awk -F ' ' {'print $8'} | awk -F '_' {'print $3'}`
elif [[ $osbox == "AIX" ]];then
SID_NUM=`ps -ef | grep ora_smon | grep -v grep | awk -F ' ' {'print $9'} | awk -F '_' {'print $3'} | wc -l`
if [[ $SID_NUM -ne 1 ]];then
exit 1
fi
SID_ENV=`ps -ef | grep ora_smon | grep -v grep | awk -F ' ' {'print $9'} | awk -F '_' {'print $3'}`
else
echo "Current os does not support."
exit 1
fi
#SID_ENV=`/bin/env|grep ORACLE_SID|awk -F '=' '{print $2}'`
export NLS_DATE_FORMAT='yyyymmdd hh24:mi:ss'
HOST=`hostname`
export ORACLE_SID=`echo $SID_ENV`
CUR_DATE="`date +%Y-%m-%d`"
mkdir -p /mnt/backup/DB/ORACLE/${HOST}_${SID_ENV}_${CUR_DATE}
DIR=$(cd /mnt/backup/DB/ORACLE/${HOST}_${SID_ENV}_${CUR_DATE};pwd)
echo $DIR
rman target / log $DIR/full_backup.log append << 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;
backup as compressed backupset filesperset 3 database format '$DIR/full_%d_%T_%s_%p';
sql 'alter system archive log current';
sql 'alter system archive log current';
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 as compressed backupset archivelog from time 'sysdate-1' format '$DIR/arch_%d_%T_%s_%p';
backup spfile format '$DIR/spfile_%d_%T_%s_%p';
backup current controlfile format '$DIR/ctl_%d_%T_%s_%p';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
EOF
版权声明:本文为博主原创文章,未经博主允许不得转载。
oracle
- 上一篇:oracle rman查看备份进度
- 下一篇:windows查看文件修改