您的位置:首页 > 其它

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

2013-08-02 14:27 549 查看
在做一个关于空间使用问题的实验的时候,遇到了题目所讲到的“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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: