Oracle 11gR2 RMAN备份操作文档
环境信息
| 项目 | 配置说明 |
|---|---|
| 操作系统 | RHEL 7.9 |
| 数据库版本 | Oracle 11gR2 (11.2.0.4) |
| 主机IP | 192.168.1.100 |
| 数据库实例 | orcl |
| 归档模式 | ENABLED |
| 备份目录 | /u01/backup/orcl |
| 归档日志路径 | /u01/arch/orcl |
第一部分:RMAN核心配置参数详解
RMAN配置参数分为永久性配置(CONFIGURE)和会话级配置(ALLOCATE CHANNEL)。以下为关键参数说明:
1. 永久性配置参数(使用CONFIGURE)
-- 查看当前配置
RMAN> SHOW ALL;
| 参数 | 说明 | 示例脚本 |
|---|---|---|
| RETENTION POLICY | 备份保留策略 | CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; |
| DEFAULT DEVICE TYPE | 默认备份设备(DISK/SBT) | CONFIGURE DEFAULT DEVICE TYPE TO DISK; |
| CONTROLFILE AUTOBACKUP | 自动备份控制文件 | CONFIGURE CONTROLFILE AUTOBACKUP ON; |
| CONTROLFILE AUTOBACKUP FORMAT | 控制文件备份路径 | CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/orcl/ctrl_%F'; |
| ARCHIVELOG DELETION POLICY | 归档日志删除策略 | CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK; |
| COMPRESSION ALGORITHM | 备份压缩算法(BASIC/LOW/HIGH) | CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE; |
| MAXSETSIZE | 备份集最大大小 | CONFIGURE MAXSETSIZE TO 10G; |
| SNAPSHOT CONTROLFILE NAME | 快照控制文件路径 | CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/backup/snapcf_orcl.f'; |
2. 通道配置参数(ALLOCATE CHANNEL)
RUN {
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK
FORMAT '/u01/backup/orcl/full_%d_%T_%U'
MAXPIECESIZE 5G;
}
| 参数 | 说明 |
|---|---|
FORMAT |
备份文件命名格式(%d=数据库名,%T=时间戳,%U=唯一ID) |
MAXPIECESIZE |
单个备份片最大大小 |
RATE |
I/O速率限制(MB/S) |
第二部分:备份操作全流程
步骤1:环境准备
# 创建备份目录并授权
mkdir -p /u01/backup/orcl
mkdir -p /u01/arch/orcl
chown -R oracle:oinstall /u01/backup /u01/arch
chmod -R 775 /u01/backup /u01/arch
# 检查归档模式
sqlplus / as sysdba <<EOF
ALTER SYSTEM SET log_archive_dest_1=‘LOCATION=/u01/arch/orcl’ SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
EOF
步骤2:初始化RMAN配置
rman target / # 连接本地数据库
– 永久配置
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/u01/backup/orcl/ctrl_%F’;
CONFIGURE DEVICE TYPE DISK PARALLELISM 2; – 并行通道数
步骤3:全量数据库备份
RUN {
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK
FORMAT '/u01/backup/orcl/full_%d_%T_%U';
ALLOCATE CHANNEL ch2 DEVICE TYPE DISK
FORMAT '/u01/backup/orcl/full_%d_%T_%U';
BACKUP AS COMPRESSED BACKUPSET
DATABASE
INCLUDE CURRENT CONTROLFILE
PLUS ARCHIVELOG
DELETE ALL INPUT; – 备份后删除已归档日志
BACKUP SPFILE; – 备份参数文件
RELEASE CHANNEL ch1;
RELEASE CHANNEL ch2;
}
步骤4:增量备份
-- 0级增量(基础备份)
BACKUP INCREMENTAL LEVEL 0
AS COMPRESSED BACKUPSET
DATABASE
TAG 'INC_L0';
– 1级增量(差异备份)
BACKUP INCREMENTAL LEVEL 1
AS COMPRESSED BACKUPSET
DATABASE
TAG ‘INC_L1’;
步骤5:归档日志备份
BACKUP ARCHIVELOG ALL
FORMAT '/u01/backup/orcl/arch_%d_%T_%U'
DELETE ALL INPUT;
步骤6:验证备份
-- 检查备份集
LIST BACKUP SUMMARY;
– 验证备份可恢复性
VALIDATE BACKUPSET <备份集ID>;
– 交叉校验备份
CROSSCHECK BACKUP;
CROSSCHECK ARCHIVELOG ALL;
步骤7:清理过期备份
DELETE OBSOLETE; -- 删除超过保留策略的备份
DELETE EXPIRED BACKUP; -- 删除无效备份
第三部分:自动备份脚本
备份脚本 (/u01/scripts/rman_backup.sh)
#!/bin/bash
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
rman target / <<EOF
RUN {
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
BACKUP AS COMPRESSED BACKUPSET
DATABASE
FORMAT ‘/u01/backup/orcl/full_%d_%T_%U’
PLUS ARCHIVELOG
DELETE ALL INPUT;
BACKUP CURRENT CONTROLFILE;
}
EOF
定时任务(cron)
# 每天凌晨2点执行全备
0 2 * * * /bin/bash /u01/scripts/rman_backup.sh > /u01/backup/orcl/rman.log 2>&1
关键注意事项
备份保留策略
RECOVERY WINDOW:确保有足够时间点恢复REDUNDANCY:保留副本数(示例:CONFIGURE RETENTION POLICY TO REDUNDANCY 3;)
备份压缩
- 使用
BASIC压缩减少空间占用(需Oracle Advanced Compression许可)
- 使用
备份验证
- 定期执行
RESTORE VALIDATE DATABASE模拟恢复
- 定期执行
空间监控
-- 检查备份目录空间 SELECT * FROM V$RECOVERY_FILE_DEST;RMAN日志
- 备份日志保存路径:
/u01/backup/orcl/rman_$(date +%Y%m%d).log
- 备份日志保存路径:
说明:
- 所有路径需根据实际环境调整
- 测试环境建议使用
NOARCHIVELOG模式验证备份还原流程- 生产环境务必启用
ARCHIVELOG并定期验证备份




