SECTION SIZE仅对大(>50GB)数据文件生效,必须配合显式ALLOCATE CHANNEL才触发多通道并行分段读取;对TEMPFILE、UNDO、控制文件、归档日志无效,且值过小(如10M)会增加调度开销。
section size 不是“开了就快”的开关,它只对大文件有效,且必须配合显式并行通道才起作用。
SECTION SIZE 对哪些文件生效
只对
有效,对
、
表空间、控制文件、归档日志完全无效。如果你的数据库里 SYSTEM 或 USERS 表空间单个数据文件超过 50GB,不加
,哪怕开了 8 个通道,RMAN 也只会让一个通道读这个文件——其余 7 个干等。
典型场景:SYSTEM 表空间数据文件 120GB,未设
→ 实际并发度 = 1
同场景 +
→ 切出约 600 个 section → 可被多个通道分摊调度
注意:
值不是越小越好;太小(如 10M)会显著增加元数据开销和 channel 切换成本
SECTION SIZE 和 ALLOCATE CHANNEL 必须配对使用
只设上限,不自动分配通道;真正触发并行切片的是
块里的显式声明。
漏写
→
被忽略,退化为串行备份
只写 2 个
,但
切出 600 个 section → 最多同时跑 2 个 section,其余排队
通道名重复(如两次
)→ 报错
,整个 RUN 块失败
CPU 高但备份慢?先看是不是 SECTION SIZE 没起效
常见现象:开启多个通道后,
里看到大量
状态会话,
显示 CPU 占用高但磁盘读速只有 20MB/s —— 这大概率是大文件没分段,所有通道在争抢同一个文件的读锁。
oracle知识库
oracle知识库下载
下载
查证方法:
,看是否有 >50GB 的文件
验证是否生效:备份时开
或查
,观察
列是否非空
关键动作:把
改成
,别漏参数
最容易被忽略的一点:SECTION SIZE 不影响压缩、不改变备份集结构、也不减少归档日志扫描量——它只解决“大文件无法并行读”这一个卡点。如果 CPU 高来自归档日志密集扫描或压缩算法本身,得另调
或关掉
限速。
DATAFILETEMPFILEUNDOSECTION SIZESECTION SIZESECTION SIZE=200MSECTION SIZECONFIGURE DEVICE TYPE DISK PARALLELISM 4RUN { ALLOCATE CHANNEL c1 ...; ALLOCATE CHANNEL c2 ... }ALLOCATE CHANNELSECTION SIZEALLOCATE CHANNELSECTION SIZEc1RMAN-06017v$sessionbackup synctopSELECT file#, bytes/1024/1024 MB FROM v$datafile ORDER BY 2 DESCTRACEv$rman_statusSECTION_SIZEBACKUP DATAFILE 1BACKUP DATAFILE 1 SECTION SIZE=200MCOMPRESSION ALGORITHMrate