RMAN 备份案例-shell 脚本

简介:

RMAN 备份案例-shell 脚

通过shell 结合RMAN建立数据库的备份,可以简化数据库备份的工作,以下为一个备份案例:


系统环境:

操作系统:RedHat EL6

Oracle: Oracle 11gR2


    本方案结合RMAN的Catalog DB建立备份,通过Catalog DB可以很方便的存储RMAN的备份脚本,方便备份的调用。

wKiom1M71mezn-CXAAA5zhzok5U009.jpg

备份案例:

wKioL1M72YXxCwy5AAA6yed68bw808.jpg

1、删除obsolete bakcup script

------按照备份保留策略,删除recovery windows 15 天以上的备份(obsolete)

create global script global_del_obso comment 'A script for obsolete backup and delete it'

{

crosscheck archivelog all;

delete noprompt expired archivelog all;

allocate channel ch1 device type disk;

delete noprompt obsolete recovery window of 15 days;

release channel ch1;

}

2、backup controlfile script

------备份控制文件

create global script global_bkctl comment 'A script for backup control file'

{

allocate channel ch1 device type disk;

backup as compressed backupset

current controlfile reuse

format='/dsk4/backup/backupctl.ctl'

tag='bkctl';

release channel ch1;

}


3、backup archivelog script

-----备份归档日志

create global script global_arch comment "backup archivelog and then delete it" {

allocate channel ch1 device type disk;

allocate channel ch2 device type disk;

sql "alter system archive log current";

set limit channel ch1 readrate=10240;

set limit channel ch1 kbytes=4096000;

set limit channel ch2 readrate=10240;

set limit channel ch2 kbytes=4096000;

backup as compressed backupset

format='/dsk4/backup/arch_%d_%U'

tag='bkarch'

archivelog all delete input;

release channel ch1;

release channel ch2;

}


   对于数据文件建立增量备份

4、backup datafile script(level 0)

------增量备份 0级

create global script global_inc0 comment "backup database as incrmental level 0"{

execute global script global_del_obso;

allocate channel ch1 device type disk;

allocate channel ch2 device type disk;

set limit channel ch1 readrate=10240;

set limit channel ch1 kbytes=4096000;

set limit channel ch2 readrate=10240;

set limit channel ch2 kbytes=4096000;

backup as compressed backupset

incremental level 0 database

format='/dsk4/backup/inc0_%d_%U'

tag='inc0';

release channel ch1;

release channel ch2;

execute global script global_arch;

execute global script global_bkctl;

}

5、backup datafile script(level 1)

------差异备份 1级

create global script global_inc1 comment "backup database as incrmental level 1"{

execute global script global_del_obso;

allocate channel ch1 device type disk;

allocate channel ch2 device type disk;

set limit channel ch1 readrate=10240;

set limit channel ch1 kbytes=4096000;

set limit channel ch2 readrate=10240;

set limit channel ch2 kbytes=4096000;

backup as compressed backupset

incremental level 1 database

format='/dsk4/backup/inc1_%d_%U'

tag='inc1';

release channel ch1;

release channel ch2;

execute global script global_arch;

execute global script global_bkctl;

}

6、backup datafile script(level 1 cumulative)

----累积增量备份 1级

create global script global_inc1_cu comment "backup database as incrmental cumulative level 1"{

execute global script global_del_obso;

allocate channel ch1 device type disk;

allocate channel ch2 device type disk;

set limit channel ch1 readrate=10240;

set limit channel ch1 kbytes=4096000;

set limit channel ch2 readrate=10240;

set limit channel ch2 kbytes=4096000;

backup as compressed backupset

incremental  level 1 cumulative database

format='/dsk4/backup/inc1_%d_%U'

tag='inc1';

release channel ch1;

release channel ch2;

execute global script global_arch;

execute global script global_bkctl;

}


7、list scripts

------查看catalog 库里的备份脚本


RMAN> list script names;


List of Stored Scripts in Recovery Catalog



   Global Scripts



      Script Name

      Description

      -----------------------------------------------------------------------

      global_arch

      backup archivelog and then delete it


      global_bkctl

      A script for backup control file


      global_del_obso

      A script for obsolete backup and delete it


      global_inc0

      backup database as incrmental level 0


      global_inc1

      backup database as incrmental level 1


      global_inc1_cu

      backup database as incrmental cumulative level 1


RMAN>


8、test scripts


------测试执行备份脚本


run{

execute global script global_inc0;

execute global script global_inc1;

execute global script global_inc1_cu;

}


9、建立RMAN连接Tartget DB和Catalog DB脚本及备份脚本


1、连接 target and  catalog db


[oracle@rh6 script]$ cat connect.rcv

connect target sys/oracle@test1;

connect catalog rman/rman@cuug;


2、连接到target and catalog db ,执行备份


[oracle@rh6 script]$ cat inc0.rcv

@@/home/oracle/script/connect.rcv

run{

execute global script global_inc0;

}


[oracle@rh6 script]$ cat inc1.rcv

@@/home/oracle/script/connect.rcv

run{

execute global script global_inc1;

}


[oracle@rh6 script]$ cat inc1_cu.rcv

@@/home/oracle/script/connect.rcv

run{

execute global script global_inc1_cu;

}


[oracle@rh6 script]$


10、shell 备份脚本


[oracle@rh6 script]$ cat inc0.sh

nohup $ORACLE_HOME/bin/rman cmdfile=/home/oracle/script/inc0.rcv log=/home/oracle/script/inc0.log append &

[oracle@rh6 script]$ cat inc1.sh

nohup $ORACLE_HOME/bin/rman cmdfile=/home/oracle/script/inc1.rcv log=/home/oracle/script/inc1.log append &

[oracle@rh6 script]$ cat inc1_cu.sh

nohup $ORACLE_HOME/bin/rman cmdfile=/home/oracle/script/inc1_cu.rcv log=/home/oracle/script/inc1_cu.log append &


11、crontab 备份计划

[oracle@rh6 script]$ crontab -l

0 0 * * 0 sh /home/oracle/script/inc0.sh

0 0 * * 1 sh /home/oracle/script/inc1.sh

0 0 * * 2 sh /home/oracle/script/inc1.sh

0 0 * * 3 sh /home/oracle/script/inc1.sh

0 0 * * 4 sh /home/oracle/script/inc1_cu.sh

0 0 * * 5 sh /home/oracle/script/inc1.sh

0 0 * * 6 sh /home/oracle/script/inc1.sh










本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1389244,如需转载请自行联系原作者
目录
相关文章
|
9月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
807 9
|
9月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
842 2
|
12月前
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
397 60
|
9月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
11月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1230 1
|
Shell 索引
shell脚本入门到实战(四)- 数组
shell脚本入门到实战(四)- 数组
219 0
|
Shell
shell脚本入门到实战(三) - 变量
shell脚本入门到实战(三) - 变量
238 0
|
Shell Linux 人机交互
shell脚本入门到实战(二)--shell输入和格式化输出
shell脚本入门到实战(二)--shell输入和格式化输出
843 0
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
365 3
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
304 1