签到成功

知道了

CNDBA社区CNDBA社区

Oracle RAC RMAN备份脚本

2022-03-16 22:18 1503 0 原创 oracle
作者: hbhe0316

1.在rac01每晚进行全量备份,同时删除过期备份和归档日志文件;
2.为保证节点备份的可用性,备份时rac01本地保存一份,ASM存储保存一份;
3.本地rac01点发生故障时,rac02可以接管备份操作,在rac02上生成全备和ASM中生成备份。http://www.cndba.cn/hbhe0316/article/107877

1.rac01上的备份脚本如下:http://www.cndba.cn/hbhe0316/article/107877http://www.cndba.cn/hbhe0316/article/107877http://www.cndba.cn/hbhe0316/article/107877

[oracle@rac01 ~]$ cat node01_rman_backup.sh 
#!/bin/bash
ORACLE_SID=testdb1
ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1
ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=$ORACLE_SID
export ORACLE_HOME=$ORACLE_HOME
export ORACLE_BASE=$ORACLE_BASE
backtime=`date +%Y%m%d`
echo $backtime
$ORACLE_HOME/bin/rman log=/tmp/node1_backupall_$backtime.log <<EOF
connect target /
run{ 
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 2;
allocate channel c1 type disk FORMAT '/u01/backup/node1_%d_%T_%u_%p','+DATA/testdb/backup/node1_%d_%T_%u_%p' ;
allocate channel c2 type disk FORMAT '/u01/backup/node1_%d_%T_%u_%p','+DATA/testdb/backup/node1_%d_%T_%u_%p';
backup database ;
backup archivelog all  delete input;
report obsolete; 
delete noprompt  obsolete; 
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired backup;
release channel c1;
release channel c2;
}
EOF
echo "backup complete!"
scp /tmp/node1_backupall_$backtime.log oracle@rac02:/tmp
exit

2.rac02节点脚本如下http://www.cndba.cn/hbhe0316/article/107877http://www.cndba.cn/hbhe0316/article/107877

http://www.cndba.cn/hbhe0316/article/107877
http://www.cndba.cn/hbhe0316/article/107877

[root@rac02 backup]# cat /home/oracle/node02_rman_backup.sh 
#!/bin/bash
ORACLE_SID=testdb2
ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1
ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=$ORACLE_SID
export ORACLE_HOME=$ORACLE_HOME
export ORACLE_BASE=$ORACLE_BASE
backtime=`date +%Y%m%d`
echo $backtime
if [ -f /tmp/node1_backupall_$backtime.log ]
then
        echo "node1 backup have been success!"
exit
else
        echo "node1 backup have been filed,start node2 backup!"
$ORACLE_HOME/bin/rman log=/tmp/node2_backupall_$backtime.log <<EOF
connect target /
run{ 
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 2;
allocate channel c1 type disk FORMAT '/u01/backup/node2_%d_%T_%u_%p','+DATA/testdb/backup/node2_%d_%T_%u_%p' ;
allocate channel c2 type disk FORMAT '/u01/backup/node2_%d_%T_%u_%p','+DATA/testdb/backup/node2_%d_%T_%u_%p';
backup database ;
backup archivelog all  delete input;
report obsolete; 
delete noprompt  obsolete; 
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired backup;
release channel c1;
release channel c2;
}
EOF
echo "node2 backup complete!"
fi
exit

将脚本加入crontab 调度
rac01 和rac02的调度crontab中,每天晚上2点钟开始使用备份脚本,rac02节点每天4点执行备份脚本http://www.cndba.cn/hbhe0316/article/107877http://www.cndba.cn/hbhe0316/article/107877

[oracle@rac01 ~]$ crontab -l
0 2 * * * /home/oracle/node01_rman_backup.sh >> /home/oracle/node1_rman_bak.log 2>&1

[oracle@rac02 ~]$ crontab -l
0 4 * * * /home/oracle/node02_rman_backup.sh >> /home/oracle/node2_rman_bak.log 2>&1

版权声明:本文为博主原创文章,未经博主允许不得转载。

oracle

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
hbhe0316

hbhe0316

关注

1.只有承认无知,才能装下新的东西; 2.进步来自一点点滴滴的积累; 3.广博让你更优秀,而专业让你无法替代; 4.挫折和失败能够转换为一种财富。

  • 889
    原创
  • 1
    翻译
  • 13
    转载
  • 24
    评论
  • 访问:1039255次
  • 积分:1523
  • 等级:核心会员
  • 排名:第6名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ