oracle RAC RMAN自动备份脚本

来源:互联网 发布:电脑硬盘坏了恢复数据 编辑:程序博客网 时间:2024/06/05 21:05

双节点服务器配置信息如下

编号

名称

用户

版本

备注

1

Oracle linux

TEST

7.3

 

2

Grid Infrastructure

Grid

12.2.0.1.0

 

3

Oracle database

Oracle

12.2.0.1.0

 


备份要求

条件一:在node1每晚进行全量备份,同时删除过期备份和归档日志文件;

条件二:为保证节点备份的可用性,备份时node1本地保存一份,ASM存储保存一份;

条件三:本地node1点发生故障时,node2可以接管备份操作,在node2上生成全备和ASM中生成备份。


脚本如下:

node1 节点脚本node1_rmanbak.sh

#!/bin/bashORACLE_SID=ORCL1ORACLE_HOME=/oracle/app/oracle/product/12.2.0/dbhome_1ORACLE_BASE=/oracle/app/oracleexport ORACLE_SID=$ORACLE_SIDexport ORACLE_HOME=$ORACLE_HOMEexport ORACLE_BASE=$ORACLE_BASEbacktime=`date +%Y%m%d`echo $backtime$ORACLE_HOME/bin/rman log=/oracle/rmanbak/log/node1_backupall_$backtime.log <<EOFconnect 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 '/oracle/rmanbak/ORCL/node1_%d_%T_%u_%p','+FRA/ORCL/BACKUPSET/node1_%d_%T_%u_%p' ;allocate channel c2 type disk FORMAT '/oracle/rmanbak/ORCL/node1_%d_%T_%u_%p','+FRA/ORCL/BACKUPSET/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;}EOFecho "backup complete!"scp /oracle/rmanbak/log/node1_backupall_$backtime.log oracle@OracleNode2:/oracle/rmanbak/log/exit
node2 备份脚本node2_rmanbak.sh

#!/bin/bashORACLE_SID=ORCL2ORACLE_HOME=/oracle/app/oracle/product/12.2.0/dbhome_1ORACLE_BASE=/oracle/app/oracleexport ORACLE_SID=$ORACLE_SIDexport ORACLE_HOME=$ORACLE_HOMEexport ORACLE_BASE=$ORACLE_BASEbacktime=`date +%Y%m%d`echo $backtimeif [ -f /oracle/rmanbak/log/node1_backupall_$backtime.log ]thenecho "node1 backup have been success!"exitelseecho "node1 backup have been filed,start node2 backup!"$ORACLE_HOME/bin/rman log=/oracle/rmanbak/log/node2_backupall_$backtime.log <<EOFconnect 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 '/oracle/rmanbak/ORCL/node2_%d_%T_%u_%p','+FRA/ORCL/BACKUPSET/node1_%d_%T_%u_%p' ;allocate channel c2 type disk FORMAT '/oracle/rmanbak/ORCL/node2_%d_%T_%u_%p','+FRA/ORCL/BACKUPSET/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;}EOFecho "node2 backup complete!"fi#scp /oracle/rmanbak/log/node1_backupall_$backtime.log oracle@OracleNode2:/oracle/rmanbak/log/exit

将脚本加入crontab 调度

node1 的调度crontab中,每天晚上1点钟开始使用备份脚本

#RAC rman backup scripts0 1 * * * /oracle/rmanbak/node1_rmanbak.sh >> /oracle/rmanbak/log/node1_rmanbak.log
node2 的调度,每天晚上2点钟检测1节点是否备份正常,如不正常则开始接管全备

#RAC rman backup scripts0 2 * * * /oracle/rmanbak/node2_rmanbak.sh >> /oracle/rmanbak/log/node2_rmanbak.log

本地的备份/oracle/rmanbak/ORCL下使用操作系统命令即可查看。

ASM磁盘组中的备份集我们用如下方法进入

使用oracle或者grid用户登录,输入ASM的环境变量

. orenv 输入ASM实例名:+ASM1(数字为节点N)

ASMCMD进入后使用基本linux命令查看即可。





原创粉丝点击