有个应用联系我说他们在进行业务数据导入的时候提示表空间不足,于是他们问我该表空间是自动扩展的,为什么还会提示空间不足呢?
对于这个问题我自己也有2个疑问,
第一个是自动扩展为什么还会提示空间不足呢?
第二个是autoextend on 默认的next值是多少?
我做了以下的试验,USERS表空间下有1个数据文件,在对其开启了自动扩展以后,我们查看它的DDL语句发现NEXT值为8192,也就是说一次会扩展1个块8K的大小.
对于上面提到的问题,我还注意到maxsize值为10M,也就是说该文件虽说开启了自动扩展,但最大只能使用至10M,这也就是为什么会提示空间不足的真正原因,被maxsize值限制了,这个值默认是unlimited,这个10M可能是在创建表空间时指定的,所以第一个问题解答了。
SYS@em12c>set long 99999999
SYS@em12c>select dbms_metadata.get_ddl('TABLESPACE','&tbsname') from dual;
Enter value for tbsname: USERS
old 1: select dbms_metadata.get_ddl('TABLESPACE','&tbsname') from dual
new 1: select dbms_metadata.get_ddl('TABLESPACE','USERS') from dual
DBMS_METADATA.GET_DDL('TABLESPACE','USERS')
--------------------------------------------------------------------------------
CREATE TABLESPACE &#
对于这个问题我自己也有2个疑问,
第一个是自动扩展为什么还会提示空间不足呢?
第二个是autoextend on 默认的next值是多少?
我做了以下的试验,USERS表空间下有1个数据文件,在对其开启了自动扩展以后,我们查看它的DDL语句发现NEXT值为8192,也就是说一次会扩展1个块8K的大小.
对于上面提到的问题,我还注意到maxsize值为10M,也就是说该文件虽说开启了自动扩展,但最大只能使用至10M,这也就是为什么会提示空间不足的真正原因,被maxsize值限制了,这个值默认是unlimited,这个10M可能是在创建表空间时指定的,所以第一个问题解答了。
SYS@em12c>set long 99999999
SYS@em12c>select dbms_metadata.get_ddl('TABLESPACE','&tbsname') from dual;
Enter value for tbsname: USERS
old 1: select dbms_metadata.get_ddl('TABLESPACE','&tbsname') from dual
new 1: select dbms_metadata.get_ddl('TABLESPACE','USERS') from dual
DBMS_METADATA.GET_DDL('TABLESPACE','USERS')
--------------------------------------------------------------------------------
CREATE TABLESPACE &#