configure device type disk parallelism 仅设通道数上限,不自动启用并发;真正并发需在run { }中显式allocate channel并满足唯一命名、路径隔离、及时release及大文件配section size。

CONFIGURE DEVICE TYPE DISK PARALLELISM 只设上限,不自动开通道
这个参数常被当成“设了就并发”,其实它只是给 ALLOCATE CHANNEL 划红线:最多允许你手动起几个磁盘通道。哪怕你执行了 CONFIGURE DEVICE TYPE DISK PARALLELISM 8,只要 RUN { } 块里没写 ALLOCATE CHANNEL,RMAN 仍只用默认的 1 个通道干活。
常见错误现象:RMAN-01009: syntax error: found "identifier"——八成是 RUN 后漏了 {,或大括号没顶格写、中间有空格;也可能是通道名重复(比如写了两次 ch1),触发 RMAN-06017。
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 的真实作用:后面所有 ALLOCATE CHANNEL 加起来不能超 4 个,超了的语句直接被忽略。它不启动任何通道,也不影响备份行为本身。
RUN { } 中必须显式分配并释放通道
真正控制并发的唯一方式,是在 RUN { } 块里手写 ALLOCATE CHANNEL,且每个通道都要满足三个硬性条件:
- 通道名必须唯一:比如
ch1、ch2……不能两个都叫ch1,否则报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 反而拖慢速度。每个通道都对应一个独立服务器进程,会抢 PGA、归档读取上下文,甚至引发 enq: cf - contention 或 LGWR 延迟。
验证是否真并发:查 V$SESSION_LONGOPS 中 OPNAME = 'RMAN backup & recovery' 的 SO FAR 和 TOTALWORK,如果长期卡在单个值附近,说明没真正并发。
真正生效的路径只有一条:
– 先 CONFIGURE DEVICE TYPE DISK PARALLELISM N 设上限
– 再在 RUN { } 中显式写满 N 个 ALLOCATE CHANNEL
– 每个通道配独立 FORMAT 路径 + 对应 SECTION SIZE 切分
最容易被忽略的点是:SECTION SIZE 必须和 BACKUP 命令绑定写在同一行,且只对 DATAFILE 有效;通道名重复、路径未隔离、漏 release,任何一个都会让并行失效。











