温馨提示×

oracle数据库centos下的备份策略

小樊
40
2025-12-25 07:42:28
栏目: 云计算

适用于 CentOS 的 Oracle 备份策略

一 策略总览与选型

  • 备份类型与适用场景
    • 物理备份(RMAN):面向生产核心库,支持联机热备、增量备份、压缩与加密,可做时间点恢复(PITR)与实例/介质恢复,推荐作为主方案。
    • 逻辑备份(Data Pump):面向对象级迁移/开发/部分表恢复,灵活但非一致性物理备份替代,适合作为补充与迁移通道。
    • 归档日志:必须开启 ARCHIVELOG,用于 PITR 与回滚未提交事务,需与 RMAN 备份协同管理。
  • 运行模式与恢复目标
    • 在线业务优先采用 ARCHIVELOG + RMAN 增量备份;维护窗口可接受时可用 冷备份 简化流程。
    • 明确 RPO/RTO 目标,结合存储与网络带宽设计全备/增量频率与保留周期。
  • 存储与保留
    • 本地 Fast Recovery Area(FRA) 结合 磁带/对象存储 的二级离线/近线保留;定期校验与演练恢复流程。

二 推荐备份方案

  • 方案A 生产库 RMAN 主备(推荐)
    • 归档与 FRA:开启 ARCHIVELOG,配置 FRA(如 DB_RECOVERY_FILE_DEST),统一存放数据文件备份、归档日志与控制文件/SPFILE 自动备份。
    • 备份策略:每周 Level 0 全备 + 每日 Level 1 增量;RMAN 自动备份 控制文件与 SPFILE;备份完成后 删除已备份的归档日志 释放空间。
    • 通道与并行:按 CPU/IO 配置多通道并行;RAC 环境按节点配置通道,任一存活节点可发起恢复。
    • 校验与保留:定期 CROSSCHECKDELETE EXPIRED;按保留策略(如 恢复窗口 7–31 天冗余策略)配置 REPORT OBSOLETE/DELETE OBSOLETE。
  • 方案B Data Pump 逻辑备份(补充/迁移)
    • 适用:按 用户/表空间/全库 导出用于迁移、开发、部分对象恢复或快速“带数据”克隆。
    • 目录对象:在库中创建 DIRECTORY(如 /u01/app/oracle/backup),授予读写权限;导出命令示例:expdp user/pwd DIRECTORY=backup DUMPFILE=expdp_20241225.dmp LOGFILE=expdp_20241225.log PARALLEL=4 COMPRESSION=ALL。
    • 自动化与保留:以 oracle 用户配置 crontab 定时执行;按日保留 7–15 天,每月再保留 1 份 归档副本,脚本中配合 find 清理过期文件。

三 实施步骤与关键配置

  • 启用归档与 FRA(示例)
    • SQL> SHUTDOWN IMMEDIATE;
    • SQL> STARTUP MOUNT;
    • SQL> ALTER DATABASE ARCHIVELOG;
    • SQL> ALTER DATABASE OPEN;
    • SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=50G SCOPE=BOTH;
    • SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST=/u01/app/oracle/fast_recovery_area SCOPE=BOTH;
  • RMAN 基础配置与备份脚本(示例)
    • 连接 RMAN:rman target /
    • 常用配置:
      • CONFIGURE CONTROLFILE AUTOBACKUP ON;
      • CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/u01/app/oracle/fast_recovery_area/%F’;
      • CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/u01/app/oracle/product/19c/dbs/snapcf_ORCL.f’;
      • CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT ‘/u01/app/oracle/backup/%U’ PARALLELISM 4;
    • 备份脚本(示例,周日 L0,其余 L1,保留 7 天):
      • RUN {
        • ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
        • ALLOCATE CHANNEL ch2 DEVICE TYPE DISK;
        • ALLOCATE CHANNEL ch3 DEVICE TYPE DISK;
        • ALLOCATE CHANNEL ch4 DEVICE TYPE DISK;
        • IF TO_CHAR(SYSDATE,‘D’)=1 THEN
          • BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG DELETE INPUT;
        • ELSE
          • BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG DELETE INPUT;
        • END IF;
        • BACKUP CURRENT CONTROLFILE;
        • DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 7 DAYS;
      • }
  • Data Pump 目录与导出(示例)
    • SQL> CREATE OR REPLACE DIRECTORY backup AS ‘/u01/app/oracle/backup’;
    • SQL> GRANT READ,WRITE ON DIRECTORY backup TO system;
    • Shell:/usr/lib/oracle/21/client64/bin/expdp system/oracle@orcl DIRECTORY=backup DUMPFILE=expdp_$(date +%F).dmp LOGFILE=expdp_$(date +%F).log PARALLEL=4 COMPRESSION=ALL
  • 定时与清理(示例)
    • 每天 02:00 全备/增量:0 2 * * * /u01/app/oracle/scripts/rman_backup.sh >> /u01/app/oracle/logs/rman_$(date +%F).log 2>&1
    • 每天清理 7 天前 .dmp/.log:find /u01/app/oracle/backup -mtime +7 ( -name “.dmp" -o -name ".log” ) -delete

四 异地与 RAC 注意事项

  • 异地/共享存储
    • 使用 NFS/CIFS 挂载远程备份目录时,确保挂载点以 oracle:oinstall 可写,且在 /etc/fstab 设置正确的 uid/gid;备份前后校验空间与权限,避免因空间不足导致备份失败。
  • RAC 专项
    • ARCHIVELOG 为数据库级设置,所有实例要么都归档,要么都不归档;任一节点均可发起 RMAN 备份/恢复。
    • 配置 RMAN 快照控制文件 到共享位置(如集群文件系统),保证各节点一致视图。
    • 本地归档方案需通过 NFS 等方式让恢复节点能读取其他节点的归档日志目录;通道可按节点显式分配以控制备份分布。

五 验证与演练

  • 定期恢复演练:从 FRA 或异地副本恢复至测试库,执行 RESTORE DATABASE + RECOVER DATABASE 验证可用性与完整性。
  • 逻辑备份校验:对关键 schema 执行 impdp … TABLE_EXISTS_ACTION=SKIP/TRUNCATE 的导入演练,核对行数与对象数。
  • 监控与告警:记录 RMAN 与 Data Pump 日志,监控 备份成功率、耗时、失败原因可用空间;对异常及时告警与处置。

0