CentOS6.4-RMAN定时任务备份 on 11GR2
1、rman备份脚本位置:
/home/oracle
./scripts/
./bin -----存放rman脚本
./log -----存放定时任务执行日志
2、/bin脚本规划:
| rmancfg.sh | rman参数配置脚本 | 执行一次即可 |
| inc0.sh | rman零级备份 | 备份路径参数 |
| inc1.sh | rman一级备份 | 备份路径参数 |
| inc0cron.sh | 零级备份定时脚本 | oracle环境变量 |
| inc1cron.sh | 一级备份定时脚本 | oracle环境变量 |
| del.sh | 删除过期备份数据 | |
| delcron.sh | 过期备份校验删除定时脚本 | oracle环境变量 |
3、rman脚本内容
将用到的环境变量添加到oracle用户的.bash_profile,
在后面cron脚本中source ~/.bash_profile即可。
vi ./bin/profile.env
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
export rman_bakpath=/rman/bak
export dt=`date +"%y%m%d%H%M"`
export days=15
export catlu=rmanbak
export catlp=rmanbak
======================================================================================================
./inc0.sh (使用catalog库存放备份信息)
rman target / catalog $catlu/$catlp << EOF
run{
backup as compressed backupset incremental level 0 database format '$rman_bakpath/%d_level0_%s_%Y%M%D.bak';
sql 'alter system archive log current';
backup as compressed backupset archivelog all format '$rman_bakpath/%d_arch_%s_%Y%M%D_%U.bak' delete all input;
backup as compressed backupset current controlfile format '$rman_bakpath/%d_control_%s_%Y%M%D_%U.bak';
}
EOF
======================================================================================================
./inc1.sh (使用catalog库存放备份信息)
rman target / catalog $catlu/$catlp << EOF
run{
backup as compressed backupset incremental level 1 database format '$rman_bakpath/%d_level1_%s_%Y%M%D.bak';
sql 'alter system archive log current';
backup as compressed backupset archivelog all format '$rman_bakpath/%d_arch_%s_%Y%M%D_%U.bak' delete all input;
backup as compressed backupset current controlfile format '$rman_bakpath/%d_control_%s_%Y%M%D_%U.bak';
}
EOF
======================================================================================================
./del.sh
rman target / catalog $catlu/$catlp << EOF
run{
crosscheck archivelog all;
crosscheck backup;
delete noprompt expired backup;
delete noprompt expired archivelog all;
delete noprompt obsolete;
delete noprompt archivelog until time 'sysdate-$days';
delete noprompt backup until time 'sysdate-$days';
}
EOF
=====================================================================================================
4、crontab定时任务脚本内容
./inc0cron.sh
source ~/.bash_profile
cd /home/oracle/scripts/bin/ && ./inc0.sh > ../log/inc0_$dt.log
----------------------------------------------------------------------------------------------------------------------------------------
./inc1cron.sh
source ~/.bash_profile
cd /home/oracle/scripts/bin/ && ./inc1.sh > ../log/inc1_$dt.log
----------------------------------------------------------------------------------------------------------------------------------------
./delcron.sh
source ~/.bash_profile
cd /home/oracle/scripts/bin/ && ./del.sh > ../log/del_$dt.log
----------------------------------------------------------------------------------------------------------------------------------------
./rmancfg.sh 这个脚本手工执行一次即可。无需source ~/.bash_profile
cat ~/scripts/bin/profile.env >> ~/.bash_profile
cores=(`lscpu | grep "^CPU(s)"|awk {'print $2'}`)
if [ $cores -gt 16 ]; then
cores=16
fi
rman target / << EOF
run{
CONFIGURE DEVICE TYPE DISK PARALLELISM $cores BACKUP TYPE TO BACKUPSET;
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF $days DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
}
EOF
----------------------------------------------------------------------------------------------------------------------------------------
5、su - oracle 添加定时任务
$crontab -e
30 23 */14 * * /home/oracle/scripts/bin/inc0cron.sh
30 23 * * 5 /home/oracle/scripts/bin/inc1cron.sh
0 0 */15 * * /home/oracle/scripts/bin/delcron.sh
----------------------------------------------------------------------------------------------------------------------------------------
oracle用户的定时任务:
cron定时任务程序只是用oracle用户来执行脚本,而并未登录到oracle用户,
因此,需要在脚本中source好oracle用户环境变量。否则定时任务无法执行。
./*.sh是fork的方法,source *.sh和. *sh(点加空格加脚本文件)是source的方法。
执行子级命令后继续执行父级命令,同时子级设置的环境变量会影响到父级的环境变量。
source与fork的区别是不新开一个sub-shell来执行被调用的脚本,而是在同一个shell中执行.
所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中得到和使用.
调试执行计划任务过程中,可使用tail -f /var/spool/mail/oracle监控执行计划任务报错信息。
注意:~/scripts/bin/profile.env需要根据实际环境进行配置。
转:http://m.blog.csdn.net/article/details?id=52537568
CentOS6.4-RMAN定时任务备份 on 11GR2的更多相关文章
- Windows Server系统定时任务备份ORACLE数据库
Windows Server系统定时任务备份ORACLE数据库 一.编辑备份脚本 RMAN备份数据库 1.在备份脚本目录下,创建bat文件db_rman.bat set ORACLE_SID=orcl ...
- oracle11gRAC环境使用RMAN增量备份方案
转摘:http://blog.itpub.net/29819001/viewspace-1320977/ [oracle@zx ~]$ rman target /Recovery Manager: R ...
- 中小型数据库 RMAN CATALOG 备份恢复方案(二)
中小型数据库呈现的是数据库并发少,数据库容量小,版本功能受限以及N多单实例等特点.尽管如此,数据库的损失程度也会存在零丢失的情形.企业不愿意花太多的钱又要保证数据库的可靠稳定,可是苦煞了我这些搞DB的 ...
- RMAN简单备份
检查目标数据库是否处于归档模式: . 检查数据库模式: sqlplus /nolog conn /as sysdba archive log list (查看数据库是否处于归档模式中) 若为非归档,则 ...
- RMAN增量备份-备份保留策略-设置备份集属性
RMAN增量备份:增量备份级别:0,1,2,3,4BACKUP DATABASE也是创建数据库的完整备份,但是这种备份不同于增量备份的0级备份.这种备份不包含增量备份的0级备份,并不支持在此基础上再创 ...
- OCP读书笔记(5) - 使用RMAN创建备份
5.Creating Backups with RMAN 创建备份集 RMAN> backup as backupset format '/u01/app/oracle/backup/rmanb ...
- Oracle Rman 控制RMAN的备份时间,减少IO消耗
一.问题描述 由于服务器配置不高,备份策略为周末全备.周一至周六差异备份. 平时服务器CPU使用30%左右. 全备份时,开启两个通道,CPU达到70%-80%左右,业务不卡顿.不掉单,session不 ...
- RMAN删除备份
删除备份--DELETE命令 用于删除RMAN备份记录及相应的物理文件.当使用RMAN执行备份操作时,会在RMAN资料库(RMAN Repository)中生成RMAN备份记录,默认情况下RMAN备份 ...
- Oracle Rman 增量备份与差异备份
一.增量与差异 关于Incremental增量备份级别: Oracle 9i 共有五种级别 0 1 2 3 4,0级最高-4级最低,0级是1级的基础以此类推. Oracle 10g官方文档明确指出增量 ...
随机推荐
- ios category类别的使用
ios category类别的使用 Objective-C提供了一个非常灵活的类(Class)扩展机制-类别(Category).类别用于对一个已经存在的类添加方法(Methods).你只需要知道这个 ...
- mysql批量写入
MySQL批量写入语法是: INSERT INTO table (field1,field2,field3) VALUES (“a”,”b”,”c”), (“a1”,”b1”,”c1”),(“a2”, ...
- Ant、Maven、Gradle
android Gradle project http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/ http://www.voge ...
- error C3163: “_vsnprintf”: 属性与以前的声明不一致
这是在vs2008中遇到的错误,vs2008以前没有,vs2008以后的vs也没有. c:\program files\microsoft visual studio 9.0\vc\include\s ...
- Android WindowManager悬浮窗:不需要申请权限实现悬浮
Android WindowManager悬浮窗:不需要申请权限实现悬浮 附录文章1介绍了Android平台上的悬浮窗WindowManager,WindowManager悬浮窗可以悬浮在And ...
- 小P的图论课 (模拟退火)
uses math; ; INF=; var n,m,i,x,y,sum,ans,delta:longint; map:..maxn,..maxn] of longint; flag:..maxn] ...
- 把input类型剔出来
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- mysql主从同步报slave_sql_running:no的解决方案
1.没有正确设置server_id(如没有正确设置从配置项) ps:可手动设置server_id 2.slave stop;set global sql_slave_skip_counter=1;sl ...
- 【转】Polymer API开发指南 (一)(翻译)
原文转自:http://segmentfault.com/blog/windwhinny/1190000000592324 翻译的不好,轻拍 Polymer是google的一款前端开发框架,其基于Sh ...
- shell脚本 gawk语言 综采话单 对账 字段核对
今天被分配到对账组下的字段程序的了解和修改,在 SecureCRT 下的 run.sh 是字段对账的主程序,其中run.sh文件中含有gawk的代码. 程序的主要功能为 有两个文件夹 source存的 ...