在 Oracle RMAN 中,设置CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 8G后,单个备份片仍超过 100G,通常与以下原因有关,可逐一排查:
1. 配置未实际生效
- 检查当前配置:执行
SHOW CHANNEL;或SHOW ALL;确认MAXPIECESIZE是否真的被设置为 8G。可能存在配置命令拼写错误(如单位错误、语法错误)导致配置未保存。 - 临时通道覆盖:如果在备份命令中显式指定了
CHANNEL子句(如BACKUP CHANNEL dev1 DEVICE TYPE DISK ...),且该子句未包含MAXPIECESIZE,则会覆盖全局配置,导致全局设置失效。
编辑备份脚本vi ~/clone/dbbkupfull11g.sh
#!/bin/bash
export ORACLE_HOME=/bzebs/prod/db/tech_st/11.2.0
export ORACLE_SID=BZPROD
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
backtime=`date +"%y%m%d%H%M"`
$ORACLE_HOME/bin/rman target / log=dbfullbkup_$backtime.log <<EOF
run{
allocate channel c01 device type disk maxpiecesize 8G;
allocate channel c02 device type disk maxpiecesize 8G;
allocate channel c03 device type disk maxpiecesize 8G;
allocate channel c04 device type disk maxpiecesize 8G;
allocate channel c05 device type disk maxpiecesize 8G;
allocate channel c06 device type disk maxpiecesize 8G;
allocate channel c07 device type disk maxpiecesize 8G;
allocate channel c08 device type disk maxpiecesize 8G;
allocate channel c09 device type disk maxpiecesize 8G;
allocate channel c10 device type disk maxpiecesize 8G;
allocate channel c11 device type disk maxpiecesize 8G;
allocate channel c12 device type disk maxpiecesize 8G;
allocate channel c13 device type disk maxpiecesize 8G;
allocate channel c14 device type disk maxpiecesize 8G;
allocate channel c15 device type disk maxpiecesize 8G;
allocate channel c16 device type disk maxpiecesize 8G;
backup as compressed backupset full database format '/ebsbackup/BZPROD/db_%d_%T_%U';
backup current controlfile format '/ebsbackup/BZPROD/ctl_%d_%T_%s_%p.bak';
backup spfile format '/ebsbackup/BZPROD/spfile_%d_%T_%s_%p.bak';
release channel c01;
release channel c02;
release channel c03;
release channel c04;
release channel c05;
release channel c06;
release channel c07;
release channel c08;
release channel c09;
release channel c10;
release channel c11;
release channel c12;
release channel c13;
release channel c14;
release channel c15;
release channel c16;
}
exit;
EOF
2. 备份类型为 “镜像复制(IMAGE COPY)”
MAXPIECESIZE仅对 备份集(Backup Set) 生效,对 镜像复制(IMAGE COPY) 不生效。镜像复制是数据文件 / 控制文件的精确副本(与原文件大小一致),不会被分割。如果执行的是BACKUP AS COPY命令(或COPY命令),生成的复制文件大小会和原文件相同(例如 100G 的数据文件,复制后仍是 100G)。
3. 混淆 “备份集” 与 “备份片” 的概念
- 一个 备份集(Backup Set) 可以包含多个 备份片(Backup Piece),
MAXPIECESIZE限制的是单个备份片的大小,而非备份集的总大小。例如:100G 的数据文件被备份为备份集时,会被分割成 50 个左右 2G 的备份片(总大小≈100G)。如果误将备份集的总大小当作单个备份片大小,会产生误解。
4. 并行备份的通道配置问题
- 如果启用了并行备份(如
CONFIGURE DEVICE TYPE DISK PARALLELISM n;),需确保所有通道都应用了MAXPIECESIZE。例如:若仅配置了默认通道,而并行通道未单独指定MAXPIECESIZE,可能导致部分通道的备份片不受限制。
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 8G;
CONFIGURE DEVICE TYPE DISK PARALLELISM 16 BACKUP TYPE TO COMPRESSED BACKUPSET;
排查建议
- 执行
SHOW CHANNEL;确认当前MAXPIECESIZE配置是否正确。 - 检查备份命令是否为
BACKUP(备份集)而非BACKUP AS COPY(镜像复制)。 - 查看备份生成的物理文件(如
/backup/目录下的文件),确认单个文件大小是否超过 8G(而非备份集总大小)。 - 若使用了
CHANNEL子句,确保在子句中显式指定MAXPIECESIZE 8G(如CHANNEL dev1 DEVICE TYPE DISK MAXPIECESIZE 8G)。

徐万新之路

