暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

处理Oracle数据库报错:ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDOTBS1' 中)、扩展表空间解决

巴韭特锁螺丝 2024-11-08
410

一、问题背景

程序执行出错,提示:

    IPCrossConnection数据处理失败: java.sql.BatchUpdateException: ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDOTBS1' 中)

    二、查询表空间信息

    SELECT * FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = 'UNDOTBS1';

      SELECT * FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = 'UNDOTBS1';


      FILE_NAME FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUTOEXTENSIBLE MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ONLINE_STATUS LOST_WRITE_PROTECT
      1 opt/oracle/oradata/CSGZTDBDG/datafile/o1_mf_undotbs1_k98g46ro_.dbf 4 UNDOTBS1 34359721984 4194302 AVAILABLE 4 YES 34359721984 4194302 640 34358624256 4194168 ONLINE OFF
      2 opt/oracle/oradata/CSGZTDBDG/datafile/o1_mf_undotbs1_01.dbf 201 UNDOTBS1 33554432000 4096000 AVAILABLE 201 YES 33554432000 4096000 64000 33553383424 4095872 ONLINE OFF
      3 opt/oracle/oradata/CSGZTDBDG/datafile/newtemp_0920_.dbf 202 UNDOTBS1 209715200 25600 AVAILABLE 202 NO 0 0 0 208666624 25472 ONLINE OFF
      4 opt/oracle/oradata/CSGZTDBDG/datafile/newtemp2_0920_.dbf 203 UNDOTBS1 209715200 25600 AVAILABLE 203 NO 0 0 0 208666624 25472 ONLINE OFF
      5 opt/oracle/oradata/CSGZTDBDG/datafile/newtemp3_0920_.dbf 204 UNDOTBS1 209715200 25600 AVAILABLE 204 NO 0 0 0 208666624 25472 ONLINE OFF
      6 data_mpathc/oradata/CSGZTDBDG/datafile/UNDOTBS1_152.dbf 216 UNDOTBS1 34359721984 4194302 AVAILABLE 216 YES 34359721984 4194302 262144 34358624256 4194168 ONLINE OFF
      7 /data_mpathc/oradata/CSGZTDBDG/datafile/UNDOTBS1_153.dbf 221 UNDOTBS1 32212254720 3932160 AVAILABLE 221 NO 0 0 0 32211206144 3932032 ONLINE OFF


        FILE_NAME: 数据文件的文件名,包含文件路径。
        FILE_ID: 数据文件在数据库中的唯一标识符。
        TABLESPACE_NAME: 表空间的名称。
        BYTES: 数据文件的大小,以字节为单位。
        BLOCKS: 数据文件包含的块数。一个块通常是8KB。
        STATUS: 数据文件的当前状态,这里显示为AVAILABLE,表示该数据文件可用。
        RELATIVE_FNO: 相对文件编号。
        AUTOEXTENSIBLE: 是否允许数据文件自动扩展,YES表示允许,NO表示不允许。
        MAXBYTES: 数据文件允许的最大大小,以字节为单位。
        MAXBLOCKS: 数据文件允许的最大块数。
        INCREMENT_BY: 当数据文件自动扩展时,每次扩展的大小,以块为单位。
        USER_BYTES: 表空间中用户数据使用的大小,以字节为单位。
        USER_BLOCKS: 表空间中用户数据使用的块数。
        ONLINE_STATUS: 表空间的当前状态,ONLINE表示表空间在线,可用。
        LOST_WRITE_PROTECT: 数据文件是否丢失了写入保护,OFF表示没有丢失写入保护。
        分析:


        UNDOTBS1表空间包含7个数据文件。
        数据文件大小各不相同,最大的两个文件分别是/opt/oracle/oradata/CSGZTDBDG/datafile/o1_mf_undotbs1_k98g46ro_.dbf和/data_mpathc/oradata/CSGZTDBDG/datafile/UNDOTBS1_152.dbf,大小均为34359721984字节。
        除了最大的两个文件,其他文件都设置为不可自动扩展 (AUTOEXTENSIBLE 为 NO)。
        所有数据文件都处于在线状态 (ONLINE_STATUS 为 ONLINE),并且没有丢失写入保护 (LOST_WRITE_PROTECT 为 OFF)。
        补充说明:


        UNDOTBS1 表空间通常用来存放回滚段,用于事务的回滚操作。
        newtemp开头的文件可能是临时表空间的组成部分,用于存放临时数据。
        数据库管理员可以根据实际情况调整表空间的大小、自动扩展设置等参数。

        二、增加表空间并检查

          ALTER TABLESPACE UNDOTBS1 ADD DATAFILE '/data_mpathc/oradata/CSGZTDBDG/datafile/UNDOTBS1_157.dbf' SIZE 32768M  ;

          增加表空间并自动扩展

            ALTER TABLESPACE UNDOTBS1 ADD DATAFILE '/data_mpathc/oradata/CSGZTDBDG/datafile/UNDOTBS1_157.dbf' SIZE 32768M  AUTOEXTEND ON NEXT 1024MAXSIZE UNLIMITED;

            查看是否存在表空间限制:

              SELECT * FROM DBA_TS_QUOTAS WHERE TABLESPACE_NAME = 'UNDOTBS1';

              若存在限制,则进行修改:

                ALTER TABLESPACE UNDOTBS1  MAXSIZE UNLIMITED;

                查看该表总表空间大小:

                  ###单位以MB显示
                  SELECT SUM(bytes) / 1024 / 1024 AS "Total Tablespace Size (MB)"
                  FROM dba_data_files
                  WHERE tablespace_name = 'UNDOTBS1';


                  ###单位以GB显示
                  SELECT SUM(bytes) / 1024 / 1024 / 1024 AS "Total Tablespace Size (GB)"
                  FROM dba_data_files
                  WHERE tablespace_name = 'UNDOTBS1';



                  文章转载自巴韭特锁螺丝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论