Oracle 11gR2 RMAN备份
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 DISKFORMAT '/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 DISKFORMAT '/u01/backup/orcl/full_%d_%T_%U';ALLOCATE CHANNEL ch2 DEVICE TYPE DISKFORMAT '/u01/backup/orcl/full_%d_%T_%U';BACKUP AS COMPRESSED BACKUPSETDATABASEINCLUDE CURRENT CONTROLFILEPLUS ARCHIVELOGDELETE ALL INPUT; -- 备份后删除已归档日志BACKUP SPFILE; -- 备份参数文件RELEASE CHANNEL ch1;RELEASE CHANNEL ch2;
}
步骤4:增量备份
-- 0级增量(基础备份)
BACKUP INCREMENTAL LEVEL 0AS COMPRESSED BACKUPSETDATABASETAG 'INC_L0';-- 1级增量(差异备份)
BACKUP INCREMENTAL LEVEL 1AS COMPRESSED BACKUPSETDATABASETAG 'INC_L1';
步骤5:归档日志备份
BACKUP ARCHIVELOG ALLFORMAT '/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:$PATHrman target / <<EOF
RUN {ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;BACKUP AS COMPRESSED BACKUPSETDATABASEFORMAT '/u01/backup/orcl/full_%d_%T_%U'PLUS ARCHIVELOGDELETE 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
并定期验证备份