暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Oracle 19C DG环境 Rman全备和增量备脚本

2142

最近用户在做备份审核,发现了很多问题。恰好通过这次审核,优化了备份脚本。分享给需要的朋友

环境说明:备份发起在备库执行,这样降低主库资源消耗(确实因为这个出过问题,头疼啊)

Oracle 19c

单节点执行即可,注意需要配置账号和密码

全备Leve0

#!/bin/bash
ORACLE_HOME=/u01/app/oracle/product/19/dbhome_1
export ORACLE_HOME
ORACLE_SID=test
export ORACLE_SID

MAILTO=ttttt@qq.com
 
EXECDATE=`date +"%y%m%d%H%M%S"`
BACKUPNAME=`date +"20%y%m%d"`
#echo `date +"20%y%m%d"`
mkdir /backup/$BACKUPNAME
#SUBJECT="$ORACLE_SID @ `hostname` DB Backup $EXECDATE"

RMAN_LOG_FILE=/backup/log/$ORACLE_SID$EXECDATE.out
RMAN=$ORACLE_HOME/bin/rman

TARGET_CONNECT_STR=sys/Password@oraclesid
DESTINATION=/backup/$BACKUPNAME

echo ==== started on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE

#find /backup -name 
#rm $DESTINATION/*

$RMAN target $TARGET_CONNECT_STR nocatalog log $RMAN_LOG_FILE <<EOF
RUN {
ALLOCATE CHANNEL ch00 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch01 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch02 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch03 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch04 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch05 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch06 TYPE disk MAXPIECESIZE=8000M;
ALLOCATE CHANNEL ch07 TYPE disk MAXPIECESIZE=8000M;
crosscheck copy;
delete noprompt expired copy;
crosscheck backup;
delete noprompt expired backup;
DELETE FORCE NOPROMPT BACKUP DEVICE TYPE DISK COMPLETED BEFORE 'SYSDATE-1';
delete noprompt obsolete;
BACKUP as compressed backupset incremental level 0 
FORMAT '$DESTINATION/lev0_%U.bkp' database; 
backup as compressed backupset archivelog all format '$DESTINATION/arch_%U.bkp';
crosscheck archivelog all;
delete noprompt archivelog until time 'sysdate-1';
backup current controlfile format '$DESTINATION/%d_CTRL_%U.bak';
backup spfile format '$DESTINATION/%d_SPFILE_%U.bak';
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
RELEASE CHANNEL ch02;
RELEASE CHANNEL ch03;
RELEASE CHANNEL ch04;
RELEASE CHANNEL ch05;
RELEASE CHANNEL ch06;
RELEASE CHANNEL ch07;
}
exit;
EOF

echo >> $RMAN_LOG_FILE
df -h >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE

cp $RMAN_LOG_FILE $DESTINATION

mail -s "[ip] ERPDB Status:Success" $MAILTO<<EOF
....`date`...
[ip] ERPDB Status:Success

`tail -100 $RMAN_LOG_FILE`
EOF



增量备份

#!/bin/bash
ORACLE_HOME=/u01/app/oracle/product/19/dbhome_1
export ORACLE_HOME
ORACLE_SID=test
export ORACLE_SID

MAILTO=ttttttttt@qq.com
 
EXECDATE=`date +"%y%m%d%H%M%S"`
BACKUPNAME=`date +"20%y%m%d"`
#echo `date +"20%y%m%d"`
mkdir /backup/$BACKUPNAME
#SUBJECT="$ORACLE_SID @ `hostname` DB Backup $EXECDATE"

RMAN_LOG_FILE=/backup/log/$ORACLE_SID$EXECDATE.out
RMAN=$ORACLE_HOME/bin/rman

TARGET_CONNECT_STR=sys/Password@testORACLE_SID
DESTINATION=/backup/$BACKUPNAME

echo ==== started on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE

#find /backup -name 
#rm $DESTINATION/*

$RMAN target $TARGET_CONNECT_STR nocatalog log $RMAN_LOG_FILE <<EOF
RUN {
ALLOCATE CHANNEL ch00 TYPE disk MAXPIECESIZE=6000M;
ALLOCATE CHANNEL ch01 TYPE disk MAXPIECESIZE=6000M;
ALLOCATE CHANNEL ch02 TYPE disk MAXPIECESIZE=6000M;
ALLOCATE CHANNEL ch03 TYPE disk MAXPIECESIZE=6000M;
ALLOCATE CHANNEL ch04 TYPE disk MAXPIECESIZE=6000M;
crosscheck copy;
delete noprompt expired copy;
crosscheck backup;
delete noprompt expired backup;
DELETE FORCE NOPROMPT BACKUP DEVICE TYPE DISK COMPLETED BEFORE 'SYSDATE-2';
delete noprompt obsolete;
sql 'alter system archive log current';
BACKUP as compressed backupset incremental level 1 
FORMAT '$DESTINATION/lev1_%U.bkp' database; 
sql 'alter system archive log current';
backup as compressed backupset archivelog all format '$DESTINATION/arch_%U.bkp';
crosscheck archivelog all;
delete noprompt archivelog until time 'sysdate-1';
BACKUP CURRENT CONTROLFILE FORMAT '$DESTINATION/control_%U_%t.bkp';
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
RELEASE CHANNEL ch02;
RELEASE CHANNEL ch03;
RELEASE CHANNEL ch04;
}
exit;
EOF

echo >> $RMAN_LOG_FILE
df -h >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE

echo ==== ended on `date` ==== >> $RMAN_LOG_FILE
cp $RMAN_LOG_FILE $DESTINATION

mail -s "[ip ] ERPDB Status:Success" $MAILTO<<EOF
....`date`... 
[ip ] ERPDB Status:Success

`tail -100 $RMAN_LOG_FILE`
EOF

 

最后修改时间:2022-11-17 15:34:25
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论