手工建庫後表空間數據文件非自動擴展引起的錯誤:ORA-01653: una

分類:編程 時間:2016-11-04
手工建庫時,未將表空間數據文件設置為自動擴展引起的錯誤: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

Tags: product oracle 數據庫 空間 手工

文章來源:


ads
ads

相關文章
ads

相關文章

ad