欢迎投稿

今日深度:

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

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


目录
  • 一、概述
  • 二、脚本实现
    • 2.1,rman备份脚本编写
      • 2.1.1,数据文件备份
      • 2.1.2,归档日志文件备份
    • 2.2,任务脚本编写
      • 2.2.1,方式一
      • 2.1.2,方式二
  • 三、配置定时任务

    一、概述

    为确保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

    到此这篇关于Linux服务器下oracle实现rman自动备份的方式的文章就介绍到这了,更多相关Linux oracle rman自动备份内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!

    您可能感兴趣的文章:
    • Oracle RMAN自动备份控制文件方法介绍
    • Oracle使用RMAN备份数据库的流程步骤
    • Oracle使用RMAN进行数据库恢复的实现步骤
    • Oracle故障处理Rman-06207&Rman-06214的方法
    • Oracle RMAN还原时set newname文件名有空格报错的解决方法

    www.htsjk.Com true http://www.htsjk.com/oracle/48611.html NewsArticle Linux服务器下oracle实现rman自动备份的方式, 目录 一、概述 二、脚本实现 2.1,rman备份脚本编写 2.1.1,数据文件备份 2.1.2,归档日志文件备份 2.2,任务脚本编写 2.2.1,方式一 2.1.2,方式...
    评论暂时关闭