
一、操作时间2026 年 5 月 3 日 09:30二、操作环境平台Oracle Database ApplianceODA数据库版本Oracle Database 19c19.25.0.0.0主机teierp1实例erpcdb1CDBERPCDBPDBYJXT存储ASMDATA操作方式在线扩容本次操作为 Oracle 表空间在线扩容不涉及业务数据修改不需要停库。三、登录数据库并进入 YJXT PDB首先登录 ODA 主机并切换至oracle用户su - oracle确认当前 Oracle 实例echo $ORACLE_SID结果显示erpcdb1使用本地认证方式登录数据库sqlplus / as sysdba登录后确认当前 CDB 下的 PDB 状态show pdbs;查询结果显示CON_ID CON_NAME OPEN MODE ----- -------- ---------- 2 PDB$SEED READ ONLY 3 YJXT READ WRITE 7 ECOLOGY READ WRITE其中YJXTPDB 为READ WRITE状态可以进行表空间扩容操作。切换到YJXTPDBalter session set containeryjxt;再次确认当前 PDBshow pdbs;结果显示当前会话已进入YJXT READ WRITE至此后续所有表空间查询和扩容操作均在YJXTPDB 内执行。四、查询表空间使用率定位高使用率表空间进入YJXTPDB 后先查询业务表空间使用情况发现以下表空间使用率偏高表空间总大小 MB已用 MB空闲 MB使用率DS_ZTFW80,89476,7714,12395%DS_TXYX10,7529,90784592%DS_GGMK16,38411,4344,95070%DS_PXNL12,2888,5263,76269%其中DS_ZTFW使用率 95%已处于高风险状态。DS_TXYX使用率 92%剩余空间不足 1GB也需要优先处理。DS_GGMK、DS_PXNL使用率接近 70%本次一并进行预防性扩容。五、确认 ASM DATA 剩余空间扩容前先确认 ASMDATA磁盘组剩余空间避免盲目扩容。执行set lines 200 col name for a15 select name, total_mb, free_mb, round(free_mb / total_mb * 100, 2) as free_pct from v$asm_diskgroup where name DATA;查询结果磁盘组总空间 MB剩余空间 MB剩余比例DATA35,163,07226,932,28076.59%结论DATA剩余空间约25.69TB空间充足满足本次扩容条件。六、判断是否可以扩大原数据文件扩容前需要判断目标表空间的数据文件是否还可以继续扩大。执行以下 SQLset lines 260 pages 200 col tablespace_name for a20 col file_name for a90 col autoextensible for a15 select tablespace_name, file_id, file_name, round(bytes/1024/1024) as size_mb, autoextensible, round(maxbytes/1024/1024) as max_mb, round(increment_by * (select value from v$parameter where name db_block_size) / 1024 / 1024) as next_mb from dba_data_files where tablespace_name in (DS_ZTFW,DS_TXYX,DS_GGMK,DS_PXNL) order by tablespace_name, file_id;这个 SQL 后续可以复用只需要替换表空间名称即可。例如只查一个表空间where tablespace_name DS_TXYX查询多个表空间where tablespace_name in (DS_ZTFW,DS_TXYX,DS_GGMK,DS_PXNL)判断原则如下判断条件处理方式SIZE_MB MAX_MB原数据文件未到上限优先resize扩大原文件SIZE_MB MAX_MB原数据文件已到上限需要新增数据文件AUTOEXTENSIBLE YES数据文件已开启自动扩展AUTOEXTENSIBLE NO需要评估是否开启自动扩展或手工扩容一句话总结能扩大原文件就优先 resize原文件到上限了再 add datafile。七、具体扩容操作过程1. DS_TXYX 表空间扩容查询发现DS_TXYX数据文件状态如下表空间当前大小 MB最大大小 MB自动扩展DS_TXYX10,75232,767YES判断DS_TXYX原数据文件还未达到最大值可以直接扩大原数据文件不需要新增数据文件。执行扩容alter database datafile DATA/ERPCDB/4F6774285AAC51A9E0630B0D010A2BD1/DATAFILE/ds_txyx.321.1230565079 resize 20G;执行结果Database altered.扩容后验证表空间总大小 MB已用 MB空闲 MB使用率DS_TXYX20,4809,90710,57348%处理结果DS_TXYX使用率由92% 降至 48%。2. DS_ZTFW 表空间扩容查询发现DS_ZTFW存在多个数据文件其中部分数据文件已达到单文件上限文件当前大小 MB最大大小 MB判断file_id 12832,76732,767已到上限file_id 12932,76732,767已到上限file_id 13115,36032,767仍可扩展判断DS_ZTFW已有两个数据文件达到 32,767MB 单文件上限继续只依赖原文件扩展不够稳妥因此采用新增数据文件方式。第一次新增数据文件alter tablespace DS_ZTFW add datafile DATA size 20G autoextend on next 1G maxsize 32767M;执行结果Tablespace altered.第二次新增数据文件alter tablespace DS_ZTFW add datafile DATA size 20G autoextend on next 1G maxsize 32767M;执行结果Tablespace altered.本次为DS_ZTFW新增2 个 20G 数据文件合计新增约40G。扩容后验证表空间总大小 MB已用 MB空闲 MB使用率DS_ZTFW121,85476,77345,08163%处理结果DS_ZTFW使用率由95% 降至 63%。3. DS_GGMK 表空间扩容查询发现DS_GGMK数据文件状态如下表空间当前大小 MB最大大小 MB自动扩展DS_GGMK16,38432,767YES判断DS_GGMK原数据文件未达到最大值可以直接扩大原数据文件。执行扩容alter database datafile DATA/ERPCDB/4F6774285AAC51A9E0630B0D010A2BD1/DATAFILE/ds_ggmk.329.1230565067 resize 24G;执行结果Database altered.扩容后验证表空间总大小 MB已用 MB空闲 MB使用率DS_GGMK24,57611,43413,14247%处理结果DS_GGMK使用率由70% 降至 47%。4. DS_PXNL 表空间扩容查询发现DS_PXNL数据文件状态如下表空间当前大小 MB最大大小 MB自动扩展DS_PXNL12,28832,767YES判断DS_PXNL原数据文件未达到最大值可以直接扩大原数据文件。执行扩容alter database datafile DATA/ERPCDB/4F6774285AAC51A9E0630B0D010A2BD1/DATAFILE/ds_pxnl.328.1230565061 resize 24G;执行结果Database altered.扩容后验证表空间总大小 MB已用 MB空闲 MB使用率DS_PXNL24,5768,52616,05035%处理结果DS_PXNL使用率由69% 降至 35%。八、扩容后整体结果本次扩容完成后重新查询表空间使用率结果如下表空间处理前使用率处理方式处理后使用率DS_ZTFW95%新增 2 个 20G 数据文件63%DS_TXYX92%原数据文件扩至 20G48%DS_GGMK70%原数据文件扩至 24G47%DS_PXNL69%原数据文件扩至 24G35%扩容后相关业务表空间均已降至合理使用区间。九、验证 SQL扩容后使用以下 SQL 验证目标表空间使用率select df.tablespace_name, round(df.total_mb, 0) as total_mb, round(df.total_mb - fs.free_mb, 0) as used_mb, round(fs.free_mb, 0) as free_mb, round((df.total_mb - fs.free_mb) / df.total_mb * 100, 2) as pct_used from (select tablespace_name, sum(bytes)/1024/1024 total_mb from dba_data_files where tablespace_name in (DS_ZTFW,DS_TXYX,DS_GGMK,DS_PXNL) group by tablespace_name) df left join (select tablespace_name, sum(bytes)/1024/1024 free_mb from dba_free_space where tablespace_name in (DS_ZTFW,DS_TXYX,DS_GGMK,DS_PXNL) group by tablespace_name) fs on df.tablespace_name fs.tablespace_name order by pct_used desc;也可以再次查看数据文件情况select tablespace_name, file_id, file_name, round(bytes/1024/1024) as size_mb, autoextensible, round(maxbytes/1024/1024) as max_mb from dba_data_files where tablespace_name in (DS_ZTFW,DS_TXYX,DS_GGMK,DS_PXNL) order by tablespace_name, file_id;十、最终结论2026 年 5 月 3 日 09:30在 ODA 平台YJXTPDB 上完成业务表空间在线扩容处理。本次操作遵循以下处理逻辑先登录 ODA 主机切换oracle用户并确认当前实例为erpcdb1。使用sqlplus / as sysdba登录 CDB。通过show pdbs确认YJXTPDB 为READ WRITE状态。使用alter session set containeryjxt进入YJXTPDB。查询表空间使用率定位高使用率表空间。查询 ASMDATA剩余空间确认具备扩容条件。查询数据文件大小、最大值和自动扩展状态。对未达到单文件上限的数据文件优先使用resize扩大原文件。对已达到或接近单文件上限的表空间采用新增数据文件方式。扩容完成后再次验证表空间使用率确认状态正常。本次扩容后DS_ZTFW、DS_TXYX、DS_GGMK、DS_PXNL表空间使用率均已明显下降当前状态正常。