Oracle RAC 实验环境RMAN备份v1.01
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
注:这里之所以有很多参数,可参考:《在NAS设备上用NFS服务为RAC数据库和集群件存储oracle文件时的mount选项》
然后创建挂载点目录,挂载:
mkdir /public
mount -a
备份路径规划为:/public/hotback/jyzhao
mkdir -p /public/hotback/jyzhao
确认备份策略?
根据我这里测试环境的数据量,制定出如下备份策略:
- 制定备份保留策略为保留最近的3份备份
- 每天11:30进行0级全备,删除保留策略之外的陈旧备份
- 每天6:00、12:00、18:00进行归档日志备份
- 每天13:00删除备份目录下的陈旧备份文件夹
注:我这里的备份时间都是白天时段,是因为我的实验环境都是白天开启,晚上关机。而如果是7*24的生产环境,一般都选择晚上业务闲暇时进行定时备份。
2.备份脚本
依据之前的文章[《Oracle RMAN 备份一例》](http://www.cnblogs.com/jyzhao/p/3809099.html),根据本实验环境的具体情况进行备份策略和脚本的制定。
备份脚本部署在RAC节点1(192.168.1.50)的oracle用户下:
2.1 数据库0级备份脚本
vi db0_backup.rman
#!/bin/bash
#db0 level backup
foldername=`date +%Y%m%d`
BACKUP_BASE=/public/hotback/jyzhao
cd $BACKUP_BASE
if [ -d $foldername ]
then
echo 'go on'
else
echo 'need mkdir'
mkdir $foldername
fi
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=/opt/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=jyzhao1
export 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/lib32
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/sbin:/bin:/usr/sbin:/usr/bin
rman target / log=$BACKUP_BASE/$foldername/full_LOG.log << RMAN_BACKUP
run{
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 backup
foldername=`date +%Y%m%d`
BACKUP_BASE=/public/hotback/jyzhao
cd $BACKUP_BASE
if [ -d $foldername ]
then
echo 'go on'
else
echo 'need mkdir'
mkdir $foldername
fi
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=/opt/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=jyzhao1
export 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/lib32
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/sbin:/bin:/usr/sbin:/usr/bin
rman target / log=$BACKUP_BASE/$foldername/arch_LOG.log << RMAN_BACKUP
run{
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 folders
find /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 -lrth
total 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 -l
30 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备份策略的制定。
Oracle RAC 实验环境RMAN备份v1.01的更多相关文章
- 模拟生产搭建Standby RAC实验环境(11.2.0.4 DG)
模拟生产搭建Standby RAC实验环境(11.2.0.4 DG) 环境:RHEL 6.5 + Oracle 11.2.0.4 GI.DB 1.需求背景介绍 2.准备工作 3.主库配置 4.备库配置 ...
- RAC数据库的RMAN备份异机恢复到单节点数据库
1.首先在rac环境用rman备份数据库.[oracle@rac1 admin]$ rman target /run{allocate channel c1 device type disk conn ...
- oracle直通车6关于rman备份恢复数据文件,以及创建分区表的实验
1.创建一张表,在表上创建一个索引,分别查询表,索引各自分配了多少个extents,多少个数据块以及总共占用空间的大小(bytes). 答:创建一张表t,为字段object_id创建索引t_objec ...
- Oracle下如何用rman备份到特定的sequence
本文为摘抄,目的为方便日后阅读: http://docs.oracle.com/cd/B12037_01/server.101/b10734/rcmbackp.htm To determine the ...
- RAC 之 RMAN 备份
这篇主要介绍的是RAC 环境下的RMAN 备份. 关于Oracle 备份与恢复的一些理论知识参考我的Blog: Oracle 备份 与 恢复 概述 http://blog.csdn.net ...
- RAC RMAN备份
这篇主要介绍的是RAC 环境下的RMAN 备份. 关于Oracle 备份与恢复的一些理论知识参考我的Blog: Oracle 备份 与 恢复 概述 http://blog.csdn.net ...
- 【转】Oracle RAC 环境下的连接管理
文章转自:http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-1 ...
- Oracle RMAN备份恢复指导书
目 录 1 目的与范围... 1 2 术语和定义... 1 3 角色和职责... 2 4 使用RMAN备份数据库... 2 4.1.1 检查数据库模式... 2 4.1.2 连接到target数据库. ...
- Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效
崔华老师的文章!!! 这篇文章详细介绍了Oracle RAC环境下的连接管理,分别介绍了什么是 Connect Time Load Balancing.Runtime Connection Load ...
随机推荐
- javascript所有的节点和方法
属性: 1.Attributes 存储节点的属性列表(只读) 2.childNodes 存储节点的子节点列表(只读) 3.dataType 返回此节点的数据类型 4.Definition 以DTD或X ...
- ES6中的export以及import的使用多样性
模块功能主要由两个命令构成:export和import.export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能. 一.export导出模块使用部分的几种方式 一个模块就是一 ...
- ASP.NET Core 源码学习之 Options[3]:IOptionsSnapshot
在 上一章 中,介绍了 IOptions 的使用, 而我们知道,在ConfigurationBuilder的AddJsonFile中,有一个reloadOnChange参数,设置为true时,在配置文 ...
- solr 搜索引擎查询
搜索引擎查询的时候://对于这些filterQuery的字段,必须是indexed="true",如果之前有这个字段后来改这个indexed属性,则需要重新建立索引,否则搜索不到S ...
- 【node】记录项目的开始与完成——pipeline_kafka流式数据库管理项目
前言: 我始终坚信的一点是,学习的效果80%来自总结,甚至全部都是.总结的好处就是让你能翻出你的过往,指出其中的不足,看到未来的改进方法,好的总结更能让知识产生飞跃,所以在工作之余,部署项目之际,总结 ...
- 【Android Developers Training】 34. 添加一个简单的分享行为(Action)
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- ReactiveCocoa源码解析(五) SignalProtocol的observe()、Map、Filter延展实现
上篇博客我们对Signal的基本实现以及Signal的面向协议扩展进行了介绍, 详细内容请移步于<Signal中的静态属性静态方法以及面向协议扩展>.并且聊了Signal的所有的g功能扩展 ...
- DDD理论学习系列(9)-- 领域事件
DDD理论学习系列--案例及目录 1. 引言 A domain event is a full-fledged part of the domain model, a representation o ...
- eclipse 设置 默认编码为 utf-8
学习javaweb时,开发工具都采用utf-8的编码方式,给eclipse设置默认编码为utf-8的编码方法 菜单 Window -> preference -> General -> ...
- 交叉编译 tesseract
官方参考资料说明: tesseract 依赖库: (https://github.com/tesseract-ocr/tesseract/wiki/Compiling#linux) leptoni ...