• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

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

    发布者: 山止川行 | 发布时间: 2025-6-18 09:28| 查看数: 109| 评论数: 0|帖子模式

    一、概述

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

    二、脚本实现


    2.1,rman备份脚本编写


    2.1.1,数据文件备份

    此处我分配4个本地通道进行备份,通道指定备份路径(自己挂载的备份盘)。具体备份语句如下:
    1. run{
    2.     allocate channel c1 type disk format '/backup/hpdb_%d_DB_%u_%T';
    3.     allocate channel c2 type disk format '/backup/hpdb_%d_DB_%u_%T';
    4.     allocate channel c3 type disk format '/backup/hpdb_%d_DB_%u_%T';
    5.     allocate channel c4 type disk format '/backup/hpdb_%d_DB_%u_%T';
    6.     sql 'alter system archive log current';
    7.     backup full (database include current controlfile);
    8.     release channel c1;
    9.     release channel c2;
    10.     release channel c3;
    11.     release channel c4;
    12. }
    复制代码
    2.1.2,归档日志文件备份

    归档日志备份时,为避免有时候人工删除文件导致备份失败,我们每次备份进行crosscheck,确保备份成功,且对备份成功的归档日志文件进行删除,确保目录空间不被撑满,具体如下:
    1. crosscheck archivelog all;
    2. run{
    3.     allocate channel c1 type disk format '/backup/arch_%d_DB_%u_%T';
    4.     allocate channel c2 type disk format '/backup/arch_%d_DB_%u_%T';
    5.     allocate channel c3 type disk format '/backup/arch_%d_DB_%u_%T';
    6.     sql 'alter system archive log current';
    7.     backup (archivelog all delete input);
    8.     release channel c1;
    9.     release channel c2;
    10.     release channel c3;
    11. }
    复制代码
    2.2,任务脚本编写

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

    2.2.1,方式一
    1. find /backup -type f -mtime +5 | xargs rm -f
    2. su - oracle -c "rman target / cmdfile=/home/oracle/backup/backup.sh msglog=/home/oracle/backup/rman.log"
    复制代码
    2.1.2,方式二

    第二种方式我们可以通过全脚本的形式写入到内部进行
    1. su - oracle -c "rman target / << !EOFrun{
    2.     allocate channel c1 type disk format '/backup/hpdb_%d_DB_%u_%T';
    3.     allocate channel c2 type disk format '/backup/hpdb_%d_DB_%u_%T';
    4.     allocate channel c3 type disk format '/backup/hpdb_%d_DB_%u_%T';
    5.     allocate channel c4 type disk format '/backup/hpdb_%d_DB_%u_%T';
    6.     sql 'alter system archive log current';
    7.     backup full (database include current controlfile);
    8.     release channel c1;
    9.     release channel c2;
    10.     release channel c3;
    11.     release channel c4;
    12. }quit!EOF"
    复制代码
    三、配置定时任务

    我们配置每天晚上10点进行相应的备份任务,进行crond配置如下:
    1. crontab -e
    2. 00 22 * * * sh /home/oracle/backupcrond.sh
    复制代码
    到此这篇关于Linux服务器下oracle实现rman自动备份的方式的文章就介绍到这了,更多相关Linux oracle rman自动备份内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/database/330816olg.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表