首页主机资讯Linux上Oracle如何配置备份策略

Linux上Oracle如何配置备份策略

时间2025-12-18 22:47:03发布访客分类主机资讯浏览350
导读:Linux上Oracle备份策略配置指南 一、策略选型与容量规划 备份方式建议以RMAN物理备份为主,按恢复窗口或冗余度设置保留策略;在ARCHIVELOG模式下进行热备,确保业务不停机。可结合Data Pump(expdp)做按Sche...

Linux上Oracle备份策略配置指南

一、策略选型与容量规划

  • 备份方式建议以RMAN物理备份为主,按恢复窗口冗余度设置保留策略;在ARCHIVELOG模式下进行热备,确保业务不停机。可结合Data Pump(expdp)做按Schema/表的逻辑备份,用于迁移与快速时点恢复。
  • 使用FRA(闪回恢复区)统一管理备份与归档:当空间不足时,Oracle会自动删除已迁移至磁带已过期的文件;若备份频繁上云/上带,可适当增大FRA配额以减少从磁带恢复的概率。
  • 容量估算公式(FRA磁盘配额):
    • 场景A(每日增量、滚动更新L0副本):Disk Quota = 1份数据库全备 + 1天L1增量 + (Y+1)天归档日志,其中Y为执行BACKUP RECOVERY AREA的间隔天数。
    • 场景B(每周全备、每日归档上带):Disk Quota = 1份数据库全备 + (Y+1)天归档日志
      以上有助于在满足RPO/RTO的同时控制磁盘占用。

二、RMAN基础配置与常用参数

  • 归档模式运行数据库(可在OPEN状态热备):
    • SQL> archive log list; (确认为Archive Mode)
    • 如未开启:SQL> shutdown immediate; → SQL> startup mount; → SQL> alter database archivelog; → SQL> alter database open;
  • 常用RMAN配置(示例保留7天):
    • CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
    • CONFIGURE BACKUP OPTIMIZATION ON;
    • CONFIGURE DEFAULT DEVICE TYPE TO DISK;
    • CONFIGURE CONTROLFILE AUTOBACKUP ON;
    • CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/backup/rman/control_%F’;
    • CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
    • 如需上带:CONFIGURE DEVICE TYPE sbt PARMS=‘…’ PARALLELISM 1; (厂商参数)
  • 注意:当使用控制文件记录RMAN元数据且未使用恢复目录时,务必开启控制文件自动备份,避免元数据丢失后难以恢复。

三、三种可落地备份策略与脚本

  • 策略A(推荐,增量更新全备,磁盘为主,定期上带)
    • 适用:变化块较少、需快速恢复。
    • 思路:在FRA中维护一份L0镜像,每日生成L1增量滚动前移;定期将FRA内容BACKUP RECOVERY AREA磁带,并清理过期备份。
    • 关键RMAN脚本:
      • 每日执行:
        • RECOVER COPY OF DATABASE WITH TAG “daily_backup”;
        • BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG “daily_backup” DATABASE;
        • BACKUP RECOVERY AREA;
        • DELETE OBSOLETE DEVICE TYPE sbt;
  • 策略B(每周全备,每日归档上带)
    • 适用:每周变化较大、需完整基线。
    • 思路:每周做一次数据库全备到FRA,随后每日将FRA内容(含归档)上带并清理磁带过期备份。
    • 关键RMAN脚本:
      • 每周日:BACKUP AS COPY DATABASE; BACKUP RECOVERY AREA; DELETE OBSOLETE DEVICE TYPE sbt;
      • 周一到周六:BACKUP RECOVERY AREA; DELETE OBSOLETE DEVICE TYPE sbt;
  • 策略C(仅磁盘,按保留窗口自动过期)
    • 适用:无磁带/对象存储,纯磁盘保留7–14天
    • 思路:每日全库+归档,并行通道,完成后交叉校验并删除过期/废弃备份。
    • 示例RMAN脚本:
      • RUN {
        • CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
        • CONFIGURE CONTROLFILE AUTOBACKUP ON;
        • ALLOCATE CHANNEL c1 DEVICE TYPE DISK FORMAT ‘/backup/rman/full_%T_%U’ MAXPIECESIZE 3G;
        • ALLOCATE CHANNEL c2 DEVICE TYPE DISK FORMAT ‘/backup/rman/full_%T_%U’ MAXPIECESIZE 3G;
        • BACKUP DATABASE PLUS ARCHIVELOG DELETE ALL INPUT;
        • BACKUP CURRENT CONTROLFILE FORMAT ‘/backup/rman/ctl_%T_%U’;
        • BACKUP SPFILE FORMAT ‘/backup/rman/spfile_%T_%U’;
        • RELEASE CHANNEL c1; RELEASE CHANNEL c2;
        • }
      • CROSSCHECK BACKUPSET; DELETE NOPROMPT EXPIRED BACKUP; DELETE NOPROMPT OBSOLETE;
      • CROSSCHECK ARCHIVELOG ALL; DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;
        以上策略与脚本要点来自Oracle官方场景与常用实践,可按实际RPO/RTO与存储结构调整参数与频率。

四、Linux侧自动化与异地容灾

  • 目录与权限:
    • mkdir -p /backup/rman; chown oracle:oinstall /backup/rman; chmod 755 /backup/rman
  • 备份脚本示例(仅磁盘,按日全备):
    • 文件:/home/oracle/bin/rman_backup.sh
      • #!/bin/bash
        • source /home/oracle/.bash_profile
        • export BACKUP_DIR=/backup/rman
        • /u01/app/oracle/product/19.3.0/dbhome_1/bin/rman target / nocatalog < < ‘EOF’
          • RUN {
            • CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
            • CONFIGURE CONTROLFILE AUTOBACKUP ON;
            • ALLOCATE CHANNEL c1 DEVICE TYPE DISK FORMAT ‘${ BACKUP_DIR} /full_%T_%U’ MAXPIECESIZE 3G;
            • ALLOCATE CHANNEL c2 DEVICE TYPE DISK FORMAT ‘${ BACKUP_DIR} /full_%T_%U’ MAXPIECESIZE 3G;
            • BACKUP DATABASE PLUS ARCHIVELOG DELETE ALL INPUT;
            • BACKUP CURRENT CONTROLFILE FORMAT ‘${ BACKUP_DIR} /ctl_%T_%U’;
            • BACKUP SPFILE FORMAT ‘${ BACKUP_DIR} /spfile_%T_%U’;
            • RELEASE CHANNEL c1; RELEASE CHANNEL c2;
            • }
          • CROSSCHECK BACKUPSET; DELETE NOPROMPT EXPIRED BACKUP; DELETE NOPROMPT OBSOLETE;
          • CROSSCHECK ARCHIVELOG ALL; DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;
        • EOF
  • 定时任务(oracle用户):
    • crontab -e
      • 0 2 * * * /home/oracle/bin/rman_backup.sh > > /backup/rman/run_$(date +%Y%m%d).log 2> & 1
  • 异地容灾(可选):
    • 将当日备份打包压缩并FTP/rsync至远程服务器;远程侧按30天保留策略删除旧包。
    • 示例打包与传输(简化):
      • tar czf /backup/rman/full_$(date +%F).tar.gz -C /backup/rman full_.bkp ctl_.ctl spfile_*.bkp
      • ftp/rsync 推送至远端;远端 find … -mtime +30 -delete。

五、验证与监控要点

  • 任务执行:
    • 查看cron日志:tail -f /var/log/cron
    • 检查RMAN进程:ps -ef | grep rman | grep -v grep;
    • 核对备份文件:ls -lh /backup/rman
  • RMAN内验证:
    • LIST BACKUP SUMMARY; LIST ARCHIVELOG ALL;
    • REPORT OBSOLETE; REPORT UNRECOVERABLE;
    • CROSSCHECK BACKUP; CROSSCHECK ARCHIVELOG ALL;
  • 容量与保留:
    • 监控FRA使用:SELECT name, space_limit/1024/1024/1024 “LimitGB”, space_used/1024/1024/1024 “UsedGB” FROM v$recovery_file_dest;
    • 结合保留策略定期清理,确保恢复窗口内备份完整可用。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux上Oracle如何配置备份策略
本文地址: https://pptw.com/jishu/775595.html
如何确保Linux Oracle的数据安全性 Oracle数据库在Linux上如何实现负载均衡

游客 回复需填写必要信息