92- Oracle-RMAN 知识准备

Oracle RMAN(Recovery Manager)是其核心备份与恢复工具,其重要性在于为数据安全与业务连续性提供了官方级保障。作为Oracle原生的物理备份解决方案,RMAN通过高效、自动化的机制确保数据库在遭遇硬件故障、人为误操作或灾难时能够快速恢复,最大限度减少停机时间并满足合规性要求。同时是Oracle每一阶段认证的必考内容。同时RMAN提供接口给于第三方调用,业界能够备份oracle、提供各个级别备份和恢复的第三方工具必然会用到RMAN。

一、RMAN 功能与技术定位

RMAN(Recocovery Manager)​​ 是Oracle数据库内置的物理级备份与恢复工具,通过深度集成数据库内核,提供高效、安全的块级(Block-Level)​​ 数据处理能力。与逻辑备份工具(如EXPDP/IMPDP)不同,RMAN直接操作数据库物理文件(数据文件、控制文件、归档日志等),避免了逻辑一致性问题,支持在线热备份​(无需停库)。
核心价值​:
  • 高效性​:增量备份仅备份修改的数据块,压缩空块,显著减少I/O和存储开销。
  • 可靠性​:自动校验备份完整性,支持块级恢复(修复损坏块无需全文件恢复)。
  • 自动化​:脚本化备份策略、自动管理备份集生命周期。

二、RMAN 架构与核心组件

RMAN采用客户端-服务进程模型,关键模块如下:
目标数据库(Target Database)​
  • 需备份的数据库实例,RMAN操作对象。
  • 关键限制​:不备份联机重做日志、密码文件、初始化参数文件(pfile)。
RMAN客户端(RMAN Executable)​
  • 用户交互接口(命令行或OEM),解析命令并发送至目标数据库服务进程。
服务进程(Server Process)​
  • 后台进程,执行实际I/O操作(备份/恢复)。每个通道(Channel)对应一个服务进程。
通道(Channel)​
  • 数据传输核心通路,控制I/O设备(磁盘/磁带)资源分配。
  • 配置方式:
 -- 手动分配  
RUN { ALLOCATE CHANNEL ch1 DEVICE TYPE DISK FORMAT '/backup/%U'; }
 -- 自动分配  
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2G;
  •  并行度​:通过多通道实现并行备份/恢复(需与PARALLELISM参数匹配)。
恢复目录(Recovery Catalog)​
  • 可选组件,独立数据库(非目标库),存储备份元数据(备份集位置、SCN范围等)。
  • 优势​:
    • 长期保留备份历史(控制文件循环覆盖默认保留7天)。
    • 集中管理多目标库,存储备份脚本。
  • 创建步骤​:
CREATE TABLESPACE cattbs DATAFILE 'cattbs01.dbf' SIZE 100M;  
CREATE USER rman IDENTIFIED BY rman DEFAULT TABLESPACE cattbs;  
GRANT RECOVERY_CATALOG_OWNER TO rman;  
RMAN> CREATE CATALOG;  
介质管理层(Media Management Layer, MML)
  • 第三方工具接口(如Veritas NetBackup),现在比较火的Veeam等,支持备份至磁带设备。

三、备份技术原理​

物理备份类型​

​类型​

​说明​

​命令示例​

备份集(BackupSet)​

默认格式,逻辑集合(含多个备份片),压缩空块节省空间

BACKUP AS BACKUPSET DATABASE;

​镜像副本(Image Copy)​

文件系统级副本(类cp命令),可直接用于恢复

BACKUP AS COPY DATAFILE 1;

​增量备份(Incremental)​

仅备份修改块(依赖块修改跟踪文件加速定位)

BACKUP INCREMENTAL LEVEL 1 DATABASE;

增量备份策略
  • Level 0​:基准全备份(所有数据块)。
  • Level 1​:
    • 差异(DIFFERENTIAL)​​:备份上次Level 0/1后变化的块(默认)。
    • 累积(CUMULATIVE)​​:备份上次Level 0后所有变化的块。
  • 增量更新备份(Incremental Updated Backup)​​:
RUN {  
  RECOVER COPY OF DATABASE WITH TAG 'daily_copy';  -- 应用增量到镜像副本  
  BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'daily_copy' DATABASE;  
}  
(通过增量更新镜像副本,减少全备频率)
备份优化技术
  • 块修改跟踪(Block Change Tracking)​​:记录修改块位图,增量备份无需全扫描。
  • 双工备份(Duplexing)​​:同时生成多个备份集副本(最多4个),提升容灾能力。
  • 加密与压缩​:AES加密、二进制压缩(COMPRESSED BACKUPSET)。

四、RMAN的技术演进与版本革新​

RMAN自诞生以来,随Oracle数据库版本迭代持续升级,其架构优化与功能增强显著提升了备份效率与可靠性。演进阶段:

1. 奠基期:Oracle 8i–9i(1999–2001)​
  • 初代架构​:
    • Oracle 8i首次集成RMAN,支持物理备份集(BackupSet)​​ 和块级增量备份,替代传统OS备份。
    • 引入恢复目录(Recovery Catalog)​,实现元数据集中管理,突破控制文件7天保留限制。
  • 关键革新(9i)​​:
    • 增量备份分级​:Level 0(基准全备)与Level 1(差异/累积增量),减少备份量。
    • 块介质恢复(BMR)​​:支持单数据块修复,避免全文件恢复。
    • 控制文件自动备份​:CONFIGURE CONTROLFILE AUTOBACKUP ON,降低控制文件丢失风险。
2. 企业级强化期:10g–11g(2003–2009)​
  • 性能优化​:
    • 10g引入增量更新备份(Incrementally Updated Backups)​​:合并增量备份到镜像副本,缩短恢复时间。
    • 压缩备份​:二进制压缩减少存储占用(COMPRESSED BACKUPSET)。
  • 高可用增强(11g)​​:
    • 活动数据库复制(Active Database Duplication)​​:网络直接克隆,无需预备份。
    • 归档日志优化​:DELETE ARCHIVELOG支持按时间/序列批量清理,避免空间溢出。
3. 云与多租户适应期:12c–19c(2013–2019)​
  • 多租户支持(12c)​​:
    • 容器数据库(CDB)​可插拔数据库(PDB)​​ 独立备份策略,支持PDB级BACKUP PLUGGABLE DATABASE。
    • 多段备份(Multisection Backups)​​:TB级大文件并行备份(SECTION SIZE)。
  • 自动化提升(18c/19c)​​:
    • 自动归档清理​:根据保留策略自动删除过期归档(需配置恢复目录)。
    • 备份加密集成​:支持TDE(透明数据加密)备份集,增强安全性。
4. 智能化与自动化:21c及以后(2020–至今)​
  • AI驱动优化​:
    • 自适应压缩算法​:动态选择压缩率平衡CPU与存储成本。
    • 恢复预测模型​:基于历史数据估算恢复时间(RTO)。
  • 云原生集成​:
    • Oracle Cloud Backup Module​:直接备份至OCI对象存储,替代传统磁带。
    • Zero-Downtime迁移​:RMAN备份直接转换为云数据库实例。

五、核心功能演进对比​ 

​特性​

9i

11gR2

12c

19c

​增量备份​

Level 0/1

Level 0/1

多段增量

自适应增量

​压缩支持​

基础压缩

高级压缩

智能压缩

​多租户管理​

CDB/PDB

PDB热克隆

​归档自动化清理​

半自动

全自动

​云存储集成​

基础支持

深度集成

、恢复机制关键技术

恢复类型
  • 完全恢复(Complete Recovery)​​:应用所有归档日志至最新状态。
  • 时间点恢复(PITR)​​:恢复到指定SCN/时间点(需归档日志连续)。
  • 块介质恢复(BMR)​​:仅修复损坏数据块(RECOVER BLOCK)。
恢复流程

 1、​还原(Restore)​​:将备份文件复制到目标位置(物理替换)。

RESTORE DATABASE;                 -- 全库还原  
RESTORE TABLESPACE users;         -- 表空间还原  

 2、 恢复(Recover)​​:应用归档/在线日志同步数据(逻辑一致)。

RECOVER DATABASE;                  -- 全库恢复  
RECOVER TABLESPACE users;          -- 表空间恢复  
注:使用RESETLOGS重置日志序列号的条件(不完全恢复/备份控制文件恢复)。
关键场景恢复
  • 控制文件丢失​:
STARTUP NOMOUNT;  
RESTORE CONTROLFILE FROM AUTOBACKUP; -- 依赖自动备份  
ALTER DATABASE MOUNT;  
  • 无恢复目录时的恢复​:依赖目标库控制文件(需开启CONTROLFILE AUTOBACKUP)

、维护与监控核心操作

备份生命周期管理

  • 保留策略(Retention Policy)​​:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;  -- 恢复窗口策略  
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;               -- 冗余策略  
  •  过时(Obsolete)备份清理​:
REPORT OBSOLETE;          -- 报告过时备份  
DELETE OBSOLETE;          -- 删除过时备份  
REPORT OBSOLETE;          -- 报告过时备份  
--
REPORT OBSOLETE;
using target database control file instead of recovery catalog
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
Report of obsolete backups and copies
Type                 Key    Completion Time    Filename/Handle
-------------------- ------ ------------------ --------------------
Backup Set           1      13-JUN-25
  Backup Piece       1      13-JUN-25          /opt/oracle/DB_FRA/FREE/autobackup/2025_06_13/o1_mf_s_1203693020_n4qmpwhg_.bkp
Backup Set           2      14-JUN-25
  Backup Piece       2      14-JUN-25          /opt/oracle/DB_FRA/FREE/autobackup/2025_06_14/o1_mf_s_1203791825_n4tn6ks0_.bkp
DELETE OBSOLETE;          -- 删除过时备份  
--Backup Set           17     25-JUN-25
  Backup Piece       17     25-JUN-25          /opt/oracle/DB_FRA/FREE/autobackup/2025_06_25/o1_mf_s_1204708097_n5pm023z_.bkp
Backup Set           18     25-JUN-25
  Backup Piece       18     25-JUN-25          /opt/oracle/DB_FRA/FREE/autobackup/2025_06_25/o1_mf_s_1204742033_n5qn4kt5_.bkp

Do you really want to delete the above objects (enter YES or NO)? yes
元数据校验与同步
  • 交叉检查(Crosscheck)​​:验证备份文件物理存在性。
CROSSCHECK BACKUP;        -- 检查所有备份  
--
RMAN> CROSSCHECK BACKUP;
CROSSCHECK BACKUP;
using channel ORA_DISK_1
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/opt/oracle/DB_FRA/FREE/375897C9631A1373E0636100020A8B39/backupset/2025_06_22/o1_mf_nnndf_TAG20250622T083646_n5gn0z8v_.bkp RECID=10 STAMP=1204447007
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/opt/oracle/DB_FRA/FREE/backupset/2025_06_22/o1_mf_nnndf_TAG20250622T083646_n5gn1rl1_.bkp RECID=11 STAMP=1204447032
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/opt/oracle/DB_FRA/FREE/33849D816603293CE063EA865E6444D9/backupset/2025_06_22/o1_mf_nnndf_TAG20250622T083646_n5gn2kyh_.bkp RECID=12 STAMP=1204447057
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/opt/oracle/DB_FRA/FREE/backupset/2025_06_22/o1_mf_annnn_GLOBAL_BACKUP_n5gn2scb_.bkp RECID=13 STAMP=1204447065
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/opt/oracle/DB_FRA/FREE/autobackup/2025_06_25/o1_mf_s_1204742934_n5qo0poq_.bkp RECID=19 STAMP=1204742934
Crosschecked 5 objects
--
CROSSCHECK ARCHIVELOG ALL;  
--
RMAN> CROSSCHECK ARCHIVELOG ALL;
CROSSCHECK ARCHIVELOG ALL;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=37 device type=DISK
validation succeeded for archived log
archived log file name=/opt/oracle/DB_FRA/FREE/archivelog/2025_06_22/o1_mf_1_58_n5gn2rty_.arc RECID=54 STAMP=1204447064
validation succeeded for archived log
archived log file name=/opt/oracle/DB_FRA/FREE/archivelog/2025_06_22/o1_mf_1_59_n5h4425w_.arc RECID=55 STAMP=1204463491
  •  删除失效记录(Expired)​​:
DELETE EXPIRED BACKUP;    -- 删除状态为EXPIRED的记录  
--RMAN> DELETE EXPIRED BACKUP;
DELETE EXPIRED BACKUP;
using channel ORA_DISK_1
监控与报告
  • 备份有效性检查​:
VALIDATE BACKUPSET 22;    -- 校验备份集完整性,分片22  
  •  报告需求备份文件​:
REPORT NEED BACKUP DAYS 3;     -- 报告3天未备份的文件  
--
RMAN> REPORT NEED BACKUP DAYS 3;
REPORT NEED BACKUP DAYS 3;
Report of files whose recovery needs more than 3 days of archived logs
File Days  Name
---- ----- -----------------------------------------------------
1    5     /opt/oracle/oradata/FREE/system01.dbf
3    5     /opt/oracle/oradata/FREE/sysaux01.dbf
7    5     /opt/oracle/oradata/FREE/users01.dbf
11   5     /opt/oracle/oradata/FREE/undotbs01.dbf
12   5     /opt/oracle/oradata/FREE/FREEPDB1/system01.dbf
13   5     /opt/oracle/oradata/FREE/FREEPDB1/sysaux01.dbf
14   5     /opt/oracle/oradata/FREE/FREEPDB1/undotbs01.dbf
15   5     /opt/oracle/oradata/FREE/FREEPDB1/users01.dbf
16   5     /opt/oracle/product/23ai/dbhomeFree/dbs/hr_data01.dbf
17   5     /opt/oracle/product/23ai/dbhomeFree/dbs/OE_data01.dbf
18   5     /opt/oracle/product/23ai/dbhomeFree/dbs/SH_data01.dbf
20   5     /opt/oracle/product/23ai/dbhomeFree/dbs/CO_data01.dbf
21   5     /opt/oracle/oradata/FREE/FREE/375897C9631A1373E0636100020A8B39/datafile/o1_mf_shrink_t_n4wq0rmz_.dbf
23   5     /opt/oracle/product/23ai/dbhomeFree/dbs/SECURE_LOB_TS.dbf
24   5     /opt/oracle/product/23ai/dbhomeFree/dbs/assm_ts.dbf

REPORT UNRECOVERABLE;          -- 报告不可恢复文件(NOLOGGING操作导致)
--
REPORT UNRECOVERABLE;
Report of files that need backup due to unrecoverable operations
File Type of Backup Required Name
---- ----------------------- -----------------------------------

、技术储备要点总结

前置知识要求​:
  • Oracle物理存储结构(数据文件/控制文件/日志组)。
  • 归档模式(ARCHIVELOG)与数据库运行状态(MOUNT/OPEN)。
环境配置要点​:
  • 内存分配(大池避免共享池冲突)。
  • 通道并行度与I/O带宽调优。
灾难恢复设计​:
  • 恢复目录独立部署(避免单点故障)。
  • 控制文件自动备份(CONFIGURE CONTROLFILE AUTOBACKUP ON;)。
备份恢复难得的经典力作 Getting Started with RMAN in Oracle Database 11g 1 Oracle Database 11g Backup and Recovery Architecture Tour . . . . . . . . . . . . . . 3 2 Introduction to the RMAN Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 PART II Setup Principles and Practices 3 RMAN Setup and Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4 Media Management Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 5 Oracle Secure Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6 Backing Up to Amazon Web Services Using the Oracle Secure Backup Cloud Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 7 Enhancing RMAN with VERITAS NetBackupTM for Oracle . . . . . . . . . . . . . . . . . . 153 8 Configuring HP Data Protector for Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 9 RMAN and Tivoli Storage Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 10 Using the Recovery Catalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 11 RMAN Backups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 12 RMAN Restore and Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 PART III Using RMAN Effectively 13 Using Oracle Enterprise Manager for Backup and Recovery . . . . . . . . . . . . . . . . 307 14 RMAN Advanced Recovery Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 15 Surviving User Errors: Flashback Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 16 Maintaining RMAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 17 Monitoring and Reporting on RMAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 18 Performance Tuning RMAN Backup and Recovery Operations . . . . . . . . . . . . . . 445 PART IV RMAN in the Oracle Ecosystem 19 Duplication: Cloning the Target Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 20 RMAN and Data Guard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 21 RMAN and Real Application Clusters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 22 RMAN in Sync and Split Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 23 RMAN in the Workplace: Case Studies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 PART V Appendixes A RMAN Syntax Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 B RMAN Scripting Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 C Setting Up an RMAN Test Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值