当前位置: 首页 > article >正文

Linux服务器下oracle自动rman备份的实现

一、概述

    为确保oracle数据库数据的安全和一致性,一般我们都需要利用备份手段进行数据库的备份。在oracle数据库中,rman因其强大的功能和完善的手段,成为数据库备份的首选。Linux服务器中,要实现自动脚本备份,一般都是通过root用户设置crond定时任务执行脚本完成(oracle用户执行调取的涉及到环境变量等配置问题,弄起来更麻烦),故以下通过两种方式配置脚本,实现rman自动备份。

二、脚本实现

2.1,rman备份脚本编写

2.1.1,数据文件备份

    此处我分配4个本地通道进行备份,通道指定备份路径(自己挂载的备份盘)。具体备份语句如下:

run{
    allocate channel c1 type disk format '/backup/hpdb_%d_DB_%u_%T';
    allocate channel c2 type disk format '/backup/hpdb_%d_DB_%u_%T';
    allocate channel c3 type disk format '/backup/hpdb_%d_DB_%u_%T';
    allocate channel c4 type disk format '/backup/hpdb_%d_DB_%u_%T';
    sql 'alter system archive log current';
    backup full (database include current controlfile);
    release channel c1;
    release channel c2;
    release channel c3;
    release channel c4;
}

2.1.2,归档日志文件备份

    归档日志备份时,为避免有时候人工删除文件导致备份失败,我们每次备份进行crosscheck,确保备份成功,且对备份成功的归档日志文件进行删除,确保目录空间不被撑满,具体如下:

crosscheck archivelog all;
run{
    allocate channel c1 type disk format '/backup/arch_%d_DB_%u_%T';
    allocate channel c2 type disk format '/backup/arch_%d_DB_%u_%T';
    allocate channel c3 type disk format '/backup/arch_%d_DB_%u_%T';
    sql 'alter system archive log current';
    backup (archivelog all delete input);
    release channel c1;
    release channel c2;
    release channel c3;
}

2.2,任务脚本编写

    任务脚本我们可以有两种方式进行编写,具体如下:

2.2.1,方式一

find /backup -type f -mtime +5 | xargs rm -f 
su - oracle -c "rman target / cmdfile=/home/oracle/backup/backup.sh msglog=/home/oracle/backup/rman.log"

2.1.2,方式二

    第二种方式我们可以通过全脚本的形式写入到内部进行

su - oracle -c "rman target / << !EOF
run{
    allocate channel c1 type disk format '/backup/hpdb_%d_DB_%u_%T';
    allocate channel c2 type disk format '/backup/hpdb_%d_DB_%u_%T';
    allocate channel c3 type disk format '/backup/hpdb_%d_DB_%u_%T';
    allocate channel c4 type disk format '/backup/hpdb_%d_DB_%u_%T';
    sql 'alter system archive log current';
    backup full (database include current controlfile);
    release channel c1;
    release channel c2;
    release channel c3;
    release channel c4;
}
quit
!EOF
"

三、配置定时任务

    我们配置每天晚上10点进行相应的备份任务,进行crond配置如下:

crontab -e
00 22 * * * sh /home/oracle/backupcrond.sh

    至此定时备份任务配置完成。


http://www.kler.cn/a/392978.html

相关文章:

  • 前端请求后端php接口跨域 cors问题
  • 文件夹被占用了无法删除怎么办?强制粉碎文件夹你可以这样操作
  • vivo 游戏中心包体积优化方案与实践
  • springboot 之 整合springdoc2.6 (swagger 3)
  • 重构代码之内联临时变量
  • gpu-V100显卡相关知识
  • 从“大吼”到“轻触”,防爆手机如何改变危险油气环境通信?
  • 【JavaScript】
  • CentOS下如何安装Nginx
  • 音频采样数据格式
  • YOLOv7-0.1部分代码阅读笔记-general.py
  • 服务器集群的作用有什么?
  • vue2使用 <component> 标签动态渲染不同的表单组件
  • HarmonyOS Next星河版笔记--界面开发(4)
  • 算法——二分查找(leetcode704)
  • kafka和Flume的整合
  • Linux 系统管理和监控命令---- auditctl命令
  • 【机器学习】29. 关联规则挖掘(Association Rule Mining)
  • Linux下的vim和gdb
  • day55 图论章节刷题Part07([53.寻宝]prim算法、kruskal算法)
  • Window.history API学习笔记
  • 基于flask+jwt+vue前后端分离架构
  • 如何提高业务系统的稳定性
  • 浅谈C#之内存管理
  • 【无人机设计与控制】无人机集群路径规划:5种最新优化算法(ECO、AOA、SFOA、MGO、PLO)求解无人机集群路径规划
  • 鸿蒙学习生态应用开发能力全景图-三方库(3)