手工建庫後表空間資料檔案非自動擴充套件引起的錯誤:ORA-01653: unable to extend* in tablespace*

還不算暈發表於2013-12-01
手工建庫時,未將表空間資料檔案設定為自動擴充套件引起的錯誤: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

相關文章