【空间管理】ORA-01652: 无法通过 128 (在表空间 TEST01 中) 扩展 temp 段

      在做一个关于空间使用问题的实验的时候,遇到了题目所讲到的“ORA-01652: 无法通过 128 (在表空间 TEST01 中) 扩展 temp 段”。看到报错,应该是空间扩展的时候出现了问题。

     下面是相关的测试数据,新建的表空间TEST01,最大可分配大小为17M。新建的表SALES01,是分区表,大小为 16646144字节,大概16M多一点。

SQL> create tablespace test01
  2  logging
  3  datafile 'D:\APP\ASUS\ORADATA\TEST\TEST01.DBF'
  4  SIZE 10M
  5  AUTOEXTEND ON
  6  NEXT 2M MAXSIZE 17M
  7  EXTENT MANAGEMENT LOCAL;

表空间已创建。
SQL> SELECT SEGMENT_NAME,SUM(BYTES) BYTES FROM DBA_SEGMENTS WHERE SEGMENT_NAME ='SALES' GROUP BY SEGMENT_NAME;

SEGMENT_NAME              BYTES
-------------------- ----------
SALES                  16646144

然后,我查看了一下该表空间的空间使用情况。发现bytes和maxbytes相等了,也就是表空间已经扩展到了最大值,无法再扩展,因此而报错了!


SQL> CREATE TABLE SALES01 TABLESPACE TEST01 AS
  2  SELECT * FROM SH.SALES;
CREATE TABLE SALES01 TABLESPACE TEST01 AS
*
第 1 行出现错误:
ORA-01652: 无法通过 128 (在表空间 TEST01 中) 扩展 temp 段


SQL> SELECT TABLESPACE_NAME,BYTES,MAXBYTES FROM DBA_DATA_FILES WHERE TABLESPACE_NAME ='TEST01';

TABLESPACE_NAME                     BYTES   MAXBYTES
------------------------------ ---------- ----------
TEST01                           17825792   17825792

       为此,现在需要的就是扩展空间,扩展方法有添加数据文件,修改数据文件的最大大小。

-----方法一:为表空间TEST01增加数据文件
SQL> alter tablespace test01
  2  add datafile 'D:\APP\ASUS\ORADATA\TEST\TEST02.DBF'
  3  SIZE 30M
  4  AUTOEXTEND ON
  5  NEXT 5M MAXSIZE UNLIMITED;

表空间已更改。

----方法二:重新设置该数据文件的大小
SQL> ALTER DATABASE
  2  DATAFILE 'D:\APP\ASUS\ORADATA\TEST\TEST01.DBF'
  3  RESIZE 19M;

数据库已更改。

----方法三:修改该数据文件的最大大小
----注意:autoextend on不可缺
SQL> ALTER DATABASE
  2  DATAFILE 'D:\APP\ASUS\ORADATA\TEST\TEST01.DBF'
  3  AUTOEXTEND ON
  4  MAXSIZE 25M;

数据库已更改。

SQL>

你可能感兴趣的:(Oracle,Management)