Oracle RMAN 通道与并行详解

Oracle RMAN 通道与并行详解

适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

RMAN 通道与并行决定备份恢复性能[1]:

详细见:Oracle RMAN 备份恢复全集


2. 通道类型

2.1 DISK

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/backup/%U';

2.2 SBT_TAPE

CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'ENV=(...)';

2.3 混合

CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 2;

3. PARALLELISM

3.1 配置

CONFIGURE DEVICE TYPE DISK PARALLELISM 4;

3.2 选择

- CPU 核数
- 磁盘 I/O
- 文件数量
- 一般 4-8

3.3 临时

BACKUP DATABASE PARALLELISM 4;

4. ALLOCATE CHANNEL

4.1 手动

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;
  
  BACKUP DATABASE;
  
  RELEASE CHANNEL ch1;
  RELEASE CHANNEL ch2;
  RELEASE CHANNEL ch3;
  RELEASE CHANNEL ch4;
}

4.2 不同路径

RUN {
  ALLOCATE CHANNEL ch1 DEVICE TYPE DISK 
    FORMAT '/u01/backup/%U';
  ALLOCATE CHANNEL ch2 DEVICE TYPE DISK 
    FORMAT '/u02/backup/%U';
  ALLOCATE CHANNEL ch3 DEVICE TYPE DISK 
    FORMAT '/u03/backup/%U';
  ALLOCATE CHANNEL ch4 DEVICE TYPE DISK 
    FORMAT '/u04/backup/%U';
  
  BACKUP DATABASE;
  
  RELEASE CHANNEL ch1;
  RELEASE CHANNEL ch2;
  RELEASE CHANNEL ch3;
  RELEASE CHANNEL ch4;
}

5. FILESPERSET

5.1 配置

BACKUP DATABASE FILESPERSET 4;

5.2 选择

- 小文件多:8-16
- 大文件少:1-2
- 平衡 I/O

6. MAXOPENFILES

BACKUP DATABASE MAXOPENFILES 8;

7. MAXPIECESIZE

CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 10G;
BACKUP DATABASE MAXPIECESIZE 10G;

8. SECTION SIZE

8.1 大文件并行

BACKUP DATABASE SECTION SIZE 10G;
-- 大文件分片并行

8.2 优势

- 大数据文件
- 多通道处理单文件
- 加速

9. 多路复用

9.1 原理

- 多文件同时读
- 一个备份集
- 平衡 I/O

9.2 配置

CONFIGURE MAXOPENFILES TO 8;

10. 性能调优

10.1 磁盘 I/O

- 多磁盘
- 分散 I/O
- 通道映射到不同磁盘

10.2 网络

- SBT_TAPE 网络带宽
- 压缩

10.3 CPU

- 并行度
- BCT
- 增量

10.4 内存

- LARGE_POOL
- 共享池

11. 监控

11.1 通道

SELECT sid, serial#, opname, sofar, totalwork
FROM v$session_longops
WHERE opname LIKE 'RMAN%';

11.2 等待

SELECT event, total_waits, time_waited
FROM v$session_event
WHERE sid IN (SELECT sid FROM v$session WHERE program LIKE '%rman%');

11.3 性能

SELECT * FROM v$backup_async_io;
SELECT * FROM v$backup_sync_io;

12. 应用场景

12.1 大数据库

- 并行 8+
- 多磁盘
- SECTION SIZE

12.2 小数据库

- 并行 2-4
- 简单

12.3 磁带

- SBT_TAPE
- 并行 2-4
- 压缩

13. 配置示例

13.1 全配置

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/u01/backup/%U' MAXPIECESIZE 10G;
CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/u02/backup/%U' MAXPIECESIZE 10G;
CONFIGURE CHANNEL 3 DEVICE TYPE DISK FORMAT '/u03/backup/%U' MAXPIECESIZE 10G;
CONFIGURE CHANNEL 4 DEVICE TYPE DISK FORMAT '/u04/backup/%U' MAXPIECESIZE 10G;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE MAXSETSIZE TO UNLIMITED;

14. 常见坑与排错

14.1 ORA-19573

- 文件被占用
- 检查

14.2 性能差

- 并行不足
- I/O 瓶颈
- 单磁盘

14.3 通道失败

- 权限
- 磁盘空间
- 网络

15. 最佳实践

  1. PARALLELISM:4-8
  2. 多磁盘:分散
  3. FILESPERSET:合理
  4. MAXPIECESIZE:管理
  5. SECTION SIZE:大文件
  6. BCT:增量
  7. 监控:性能
  8. 测试:参数
  9. 自动化:配置
  10. 文档:配置

16. 参考资料

[1] Oracle Database Backup and Recovery User’s Guide 19c, “Channels” https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/