手工建库后表空间数据文件非自动扩展引起的错误:ORA-01653: unable to extend* in tablespace*

手工建库时,未将表空间数据文件设置为自动扩展引起的错误:ORA-01653: unable to extend * in tablespace * 的解决:

查看数据库alert日志文件时,发现出现大量如下的错误:
Sun Dec 01 10:00:42 2013

ORA-1653: unable to extend table SYS.SCHEDULER$_EVENT_LOG by 8 in                 tablespace SYSAUX
Errors in file /u01/app/oracle/product/11.2.0/dbhome_1/log/diag/rdbms/bys3/bys3/trace/bys3_j000_15569.trc:
ORA-01653: unable to extend table . by  in tablespace
ORA-01653: unable to extend table SYS.SCHEDULER$_EVENT_LOG by 8 in tablespace SYSAUX
Sun Dec 01 11:00:27 2013
ORA-1653: unable to extend table SYS.WRI$_ADV_PARAMETERS by 128 in                 tablespace SYSAUX
Sun Dec 01 12:00:32 2013
ORA-1653: unable to extend table SYS.WRI$_ADV_PARAMETERS by 128 in                 tablespace SYSAUX
Sun Dec 01 13:00:36 2013
ORA-1653: unable to extend table SYS.WRI$_ADV_PARAMETERS by 128 in                 tablespace SYSAUX
Sun Dec 01 14:00:40 2013
ORA-1653: unable to extend table SYS.SCHEDULER$_EVENT_LOG by 8 in                 tablespace SYSAUX
ORA-1653: unable to extend table SYS.SCHEDULER$_EVENT_LOG by 8 in                 tablespace SYSAUX
Sun Dec 01 14:00:41 2013
ORA-1653: unable to extend table SYS.WRI$_ADV_PARAMETERS by 128 in                 tablespace SYSAUX
Sun Dec 01 15:00:45 2013
ORA-1653: unable to extend table SYS.WRH$_IOSTAT_FILETYPE by 8 in                 tablespace SYSAUX
MMON Flush encountered SYSAUX out of space error(1653).
MMON (emergency) purge of WR snapshots (188) and older
Sun Dec 01 15:00:49 2013
从报错信息可以很直观的看出:SYSAUX表空间中的表无法扩展, 原因一般为:数据文件空间不足且未设置autoextend on属性或者用户磁盘限额不足导致用户的表无法扩展。
验证数据文件使用率及属性如下:
SYS@ bys3>col file_name for a40
SYS@ bys3>select file_name ,autoextensible,increment_by from dba_data_files;    查数据文件是否设置autoextend on属性 要从 dba_data_files 查
FILE_NAME                                AUT INCREMENT_BY
---------------------------------------- --- ------------
/u01/oradata/bys3/system01.dbf           NO             0
/u01/oradata/bys3/sysaux01.dbf           NO             0
/u01/oradata/bys3/undotbs01.dbf          NO             0
/u01/oradata/bys3/user01.dbf             NO             0
SYS@ bys3> select TABLESPACE_NAME,sum(bytes/1024/1024) from dba_free_space group by tablespace_name;     通过这语句查各表空间使用率,因SYSAUX没有FREE SPACE,在这没显示。
TABLESPACE_NAME                SUM(BYTES/1024/1024)
------------------------------ --------------------
UNDOTBS1                                    58.0625
USERS                                       48.6875
SYSTEM                                      155.375

确定问题后,解决方法:将sysaux表空间的数据文件属性改为自动扩展 autoextend on

SYS@ bys3>alter tablespace sysaux autoextend on;    ---此语句只能修改大文件表空间时使用。
alter tablespace sysaux autoextend on
*
ERROR at line 1:
ORA-32773: operation not supported for smallfile tablespace SYSAUX

SYS@ bys3> alter database datafile '/u01/oradata/bys3/sysaux01.dbf' autoextend on;                --使用此语句修改数据文件的属性
Database altered.
SYS@ bys3>select file_name,autoextensible,increment_by from dba_data_files;   ---修改后查询数据文件属性,已经更改为autoextend on
FILE_NAME                                AUT INCREMENT_BY
---------------------------------------- --- ------------
/u01/oradata/bys3/system01.dbf           NO             0
/u01/oradata/bys3/sysaux01.dbf           YES            1
/u01/oradata/bys3/undotbs01.dbf          NO             0
/u01/oradata/bys3/user01.dbf             NO             0
SYS@ bys3>select TABLESPACE_NAME,sum(bytes/1024/1024) free_mb from dba_free_space group by tablespace_name;   --修改后查询表空间剩余,SYSAUX已经自动扩展了一个区--64K. 详见:http://blog.csdn.net/q947817003/article/details/11370881
TABLESPACE_NAME                   FREE_MB
------------------------------ ----------
SYSAUX                              .0625               ---这里即扩展了一个extent,
UNDOTBS1                          58.0625
USERS                             48.6875
SYSTEM                            155.375

到这里,问题就已经得到解决!

可以将SYSTEM及user表空间的数据文件都设置为autoextend on

SYS@ bys3>alter database datafile '/u01/oradata/bys3/system01.dbf' autoextend on;

Database altered.
SYS@ bys3>alter database datafile '/u01/oradata/bys3/user01.dbf' autoextend on;
Database altered.
SYS@ bys3>select file_name,bytes/1024/1024 total_MB,user_bytes/1024/1024 user_mb,AUTOEXTENSIBLE from dba_data_files;
FILE_NAME                                  TOTAL_MB    USER_MB AUT
---------------------------------------- ---------- ---------- ---
/u01/oradata/bys3/system01.dbf                  500        499 YES
/u01/oradata/bys3/sysaux01.dbf                  325        324 YES
/u01/oradata/bys3/undotbs01.dbf                 200        199 NO
/u01/oradata/bys3/user01.dbf                     50         49 YES

你可能感兴趣的:(手工建库后表空间数据文件非自动扩展引起的错误:ORA-01653: unable to extend* in tablespace*)