configure device type disk parallelism 仅设上限,不自动启用并行;必须在 run { } 中显式 allocate channel、隔离备份路径、指定 section size 切分大文件,并匹配通道数与 section 数,三者缺一不可。
只配 configure device type disk parallelism 不会自动提速,必须在 run { } 块里显式分配通道、切分文件、隔离路径,否则并行度再高也白搭。
为什么 CONFIGURE DEVICE TYPE DISK PARALLELISM 设了却没效果
这个参数只是“允许最多开几个磁盘通道”的上限,不是“自动开几个”。哪怕你设成 8,只要 RUN { } 里没写 ALLOCATE CHANNEL,RMAN 仍只用默认的 1 个通道干活。
- 常见错误:执行
BACKUP DATABASE前只做了CONFIGURE DEVICE TYPE DISK PARALLELISM 4,结果速度毫无变化 - 验证方法:查
V$SESSION_LONGOPS中OPNAME = 'RMAN backup & recovery'的SO FAR和TOTALWORK,如果长期卡在单个值附近,说明没真正并发 - 报错信号:
RMAN-01009: syntax error: found "identifier"很可能是RUN后漏了{,或大括号没顶格写
如何在 RUN { } 中正确分配并行通道
手动分配是唯一能真正控制并发行为的方式,每个通道必须独立命名、独立路径、及时释放。
- 通道名不能重复:写两次
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK会触发RMAN-06017 - 备份路径必须隔离:所有通道共用
FORMAT '/backup/%U'会导致 NFS lease timeout 或文件写乱;应改为FORMAT '/backup/ch1/%U'、FORMAT '/backup/ch2/%U'等 - 用完立刻释放:不写
RELEASE CHANNEL ch1会持续占用归档读取上下文,影响后续备份 - RAC 环境下必须加
CONNECT 'sys/pass@racdb1',且tnsnames.ora里得有对应单实例别名,否则直抛ORA-12154
SECTION SIZE 是大文件并行的关键开关
没有 SECTION SIZE,再多通道也并行不了单个大文件。RMAN 默认按文件粒度调度,80GB 的 SYSTEM 表空间不会被拆,只会由一个通道从头扫到尾。
- 必须显式指定:
BACKUP DATAFILE 1 SECTION SIZE=200M;漏掉SECTION SIZE就当普通备份处理 -
SECTION SIZE只对DATAFILE生效,对临时表空间、undo 表空间无效 - 建议值参考:SSD 上设
200M–500M,机械盘阵列可设100M;目标是切出的 section 数 ≥ 并行通道数 - 若数据库有 12 个 >10GB 的数据文件,设
SECTION SIZE=200M可能切出 40+ 个 section,此时PARALLELISM至少设为 4,否则空闲通道无法被填满
并行数设多少才算合理
盲目加大 PARALLELISM 反而拖慢速度,关键看瓶颈在哪,而不是“越多越好”。
- CPU 瓶颈信号:
top -H中多个rman进程 CPU 占用持续超 80%,尤其启用COMPRESS ALGORITHM 'MEDIUM'时 - I/O 瓶颈信号:
V$BACKUP_ASYNC_IO.TYPE = 'INPUT'行的WAIT_TIME明显升高,或EFFECTIVE_BYTES_PER_SECOND远低于设备标称吞吐 - 推荐起步值:从
PARALLELISM 2开始,观察V$SESSION_LONGOPS进度波动,逐步加到 4 或 6;超过 8 在多数场景下收益递减 - 存储类型差异:双控制器 RAID6 建议不超过 4;NVMe 单盘可试 8–12,但必须同步监控 CPU 和 I/O 队列深度
真正起效的前提不是“开了几个通道”,而是每个通道读的文件不在同一 ASM diskgroup、写的备份片不在同一挂载点、大文件被切成可调度的 section——这三件事缺一不可。











