- 首页 >
- 问答 >
-
云计算 >
- oracle数据库centos下的备份策略
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 环境按节点配置通道,任一存活节点可发起恢复。
- 校验与保留:定期 CROSSCHECK 与 DELETE 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 日志,监控 备份成功率、耗时、失败原因 与 可用空间;对异常及时告警与处置。