博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle RAC 实验环境RMAN备份v1.01
阅读量:5961 次
发布时间:2019-06-19

本文共 3657 字,大约阅读时间需要 12 分钟。

Oracle RAC 实验环境RMAN备份v1.01

环境:RHEL 6.5 + Oracle GI 11.2.0.4 + RAC 11.2.0.4 (2 nodes)

需求:制定RAMN备份策略
版本:v1.01
说明:之前说过本系列的实验环境宗旨就是完全模拟生产环境,所有的操作记录在案,每次版本变更都需要详细记录。

1.前期准备

确认备份路径?

备份路径是NAS存储的一个目录,通过NFS映射过来。
/etc/fstab增加一行:

192.168.1.196:/mnt/HD/HD_a2/Public     /public nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600

注:这里之所以有很多参数,可参考:

然后创建挂载点目录,挂载:

mkdir /publicmount -a

备份路径规划为:/public/hotback/jyzhao

mkdir -p /public/hotback/jyzhao

确认备份策略?

根据我这里测试环境的数据量,制定出如下备份策略:

  • 制定备份保留策略为保留最近的3份备份
  • 每天11:30进行0级全备,删除保留策略之外的陈旧备份
  • 每天6:00、12:00、18:00进行归档日志备份
  • 每天13:00删除备份目录下的陈旧备份文件夹

注:我这里的备份时间都是白天时段,是因为我的实验环境都是白天开启,晚上关机。而如果是7*24的生产环境,一般都选择晚上业务闲暇时进行定时备份。

2.备份脚本

依据之前的文章,根据本实验环境的具体情况进行备份策略和脚本的制定。

备份脚本部署在RAC节点1(192.168.1.50)的oracle用户下:

2.1 数据库0级备份脚本

vi db0_backup.rman

#!/bin/bash#db0 level backupfoldername=`date +%Y%m%d`BACKUP_BASE=/public/hotback/jyzhaocd $BACKUP_BASEif [ -d $foldername ]then        echo    'go on'else        echo    'need mkdir'        mkdir $foldernamefi export ORACLE_BASE=/opt/app/oracleexport ORACLE_HOME=/opt/app/oracle/product/11.2.0/dbhome_1export ORACLE_SID=jyzhao1export NLS_LANG="simplified chinese_china.ZHS16GBK"export NLS_DATE_FORMAT="YYYY-MM-DD HH24:Mi:SS"export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/sbin:/bin:/usr/sbin:/usr/binrman target /  log=$BACKUP_BASE/$foldername/full_LOG.log << RMAN_BACKUPrun{CONFIGURE RETENTION POLICY TO REDUNDANCY 3;CONFIGURE CONTROLFILE AUTOBACKUP ON;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '$BACKUP_BASE/$foldername/controlfile%F';allocate channel c1 device type disk;backup incremental level 0 tag 'db0' database format '$BACKUP_BASE/$foldername/db0_%d_%T_%s' include current controlfile;delete noprompt obsolete;release channel c1;}RMAN_BACKUP

2.2 数据库归档日志备份脚本

arch_backup.rman

#!/bin/bash#arch backupfoldername=`date +%Y%m%d`BACKUP_BASE=/public/hotback/jyzhaocd $BACKUP_BASEif [ -d $foldername ]then        echo    'go on'else        echo    'need mkdir'        mkdir $foldernamefi export ORACLE_BASE=/opt/app/oracleexport ORACLE_HOME=/opt/app/oracle/product/11.2.0/dbhome_1export ORACLE_SID=jyzhao1export NLS_LANG="simplified chinese_china.ZHS16GBK"export NLS_DATE_FORMAT="YYYY-MM-DD HH24:Mi:SS"export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/sbin:/bin:/usr/sbin:/usr/binrman target /  log=$BACKUP_BASE/$foldername/arch_LOG.log << RMAN_BACKUPrun{CONFIGURE RETENTION POLICY TO REDUNDANCY 3;allocate channel c1 device type disk;sql 'alter system archive log current';backup archivelog all delete input format '$BACKUP_BASE/$foldername/arch_%d_%T_%s';release channel c1;}crosscheck archivelog all;delete noprompt expired archivelog all;RMAN_BACKUP

2.3 删除历史无用文件夹

虽然已经制定了保留策略可以删除历史的陈旧备份,但是由于我这里的备份思路是每天建立一个新的文件夹,那么久而久之就会有很多的文件夹存留,不方便查看和管理,所以这里定期在系统级别删除过期备份的空文件夹。
比如我这里的冗余策略是3,那么我就删除5天以上都没有修改的文件夹,防止误删除有用的备份。

vi del_old.sh

#!/bin/bash#del old foldersfind /public/hotback/jyzhao/. -mtime +5

2.4 赋予以上脚本可执行权限

赋予脚本可执行的权限:

[oracle@jyrac1 rman_scripts]$ pwd/home/oracle/rman_scripts[oracle@jyrac1 rman_scripts]$ chmod u+x *[oracle@jyrac1 rman_scripts]$ ls -lrthtotal 12K-rwxr--r-- 1 oracle oinstall 1.1K Aug  6 17:02 db0_backup.rman-rwxr--r-- 1 oracle oinstall   69 Aug  6 17:03 del_old.sh-rwxr--r-- 1 oracle oinstall  960 Aug  6 17:17 arch_backup.rman

3.定时执行

根据备份策略,编辑定时执行的语句。

[oracle@jyrac1 ~]$ crontab -l30 11 * * * /home/oracle/rman_scripts/db0_backup.rman > /dev/null 2&>1#0 6,12,18 * * * /home/oracle/rman_scripts/arch_backup.rman > /dev/null 2&>1#0 13 * * * /home/oracle/rman_scripts/del_old.sh > /dev/null 2&>1#

至此完成实验RAC环境RMAN备份策略的制定。

转载地址:http://jyjax.baihongyu.com/

你可能感兴趣的文章
Java方式 MySQL数据库连接
查看>>
TPYBoard MicroPython 固件开发教程使用mpy-cross工具生成mpy文件
查看>>
android微信分享不出去?四步搞定!
查看>>
SpringCloud之Eureka入门使用
查看>>
C# 泛型约束 xxx Where T:约束(二)
查看>>
如何解决web大流量,高并发问题
查看>>
phpmyadmin内存溢出
查看>>
StrutsTestCase测试Struts应用程序
查看>>
使用ArcGIS Engine开发ArcGIS Server的胖客户端浏览程序
查看>>
在VirtualBox下安装CentOS教程(截图版)
查看>>
centos 7 安装JDK (Linux安装jdk)
查看>>
被忽视的Compaction策略-有关NoSQL Compaction策略的一点思考
查看>>
【UR #7】水题走四方 题解
查看>>
[转摘] 关于C#中委托和事件机制的一个最佳实例
查看>>
数据库复习
查看>>
unix 环境高级编程
查看>>
为数据库建立索引
查看>>
composer使用
查看>>
常用的Web.config配置节设置(customErrors、connectionStrings、appSettings)
查看>>
web相关概念
查看>>