ORA-01653 発生原因
-- 以下エラーがでた時の状況です。
行1でエラーが発生しました。:
ORA-01653: 表SOONI.TBL27を拡張できません(128分、表領域TBS01)。
これは表領域がいっぱいになった時に発生するエラーです。実際に表領域の空きがなくなった事はこちらのSQLで確認できます。
エラー発生時の表領域使用状況確認
--- 表領域に空きがなくなった事が確認できます。
---
SQL> COLUMN TABLESPACE_NAME FORMAT A24
SQL> COLUMN 全サイズM FORMAT 9999999990
SQL> COLUMN 空サイズM FORMAT 9999999990.9
SQL> COLUMN 使用率 FORMAT 990.99
SQL> SELECT
2 t.TABLESPACE_NAME
3 ,ROUND(a.SPC /1024/1024,1) 全サイズM
4 ,ROUND(f.SPC /1024/1024,1) 空サイズM
5 ,decode(a.SPC-f.SPC,null,100,ROUND((a.SPC-f.SPC)/a.SPC * 100,2)) 使用率
6 FROM
7 DBA_TABLESPACES t
8 left outer join
9 (
10 SELECT TABLESPACE_NAME,SUM(BYTES) SPC FROM SYS.DBA_DATA_FILES
11 GROUP BY TABLESPACE_NAME
12 ) a
13 on t.TABLESPACE_NAME = a.TABLESPACE_NAME
14 left outer join
15 (
16 SELECT TABLESPACE_NAME,SUM(BYTES) SPC FROM SYS.DBA_FREE_SPACE
17 GROUP BY TABLESPACE_NAME ORDER BY TABLESPACE_NAME
18 ) f
19 on t.TABLESPACE_NAME = f.TABLESPACE_NAME
20 order by a.SPC desc nulls last
21 ;
TABLESPACE_NAME 全サイズM 空サイズM 使用率
------------------------ ----------- ------------- -------
TBS01 6048 0.7 99.99
UNDOTBS1 4590 3851.5 16.09
TBS02 2048 1950.9 4.74
SYSTEM 1854 1039.6 43.93
SYSAUX 1300 193.4 85.13
USERS 5 2.9 42.50
TEMP 100.00
7行が選択されました。
SQL>
表領域を拡張します
空き領域がなくなった事確認できたので、以前記載した記事の通り表領域を拡張します。
---
--- 今回いっぱいとなったTBS01表領域は以下のようなデータファイルで構成されていました。
---
FILE_ID FILE_NAME TABLESPACE_NAME M_BYTE ONLINE_STA
---------- -------------------------------------------------- ---------------- ---------- ---------
3 /usr/oracle/app/oradata/ORAU8/datafile/o1_mf_sysau SYSAUX 1300 ONLINE
x_hw3odl8j_.dbf
10 /usr/oracle/app/oradata/ORAU8/datafile/TBS_SYSTEM_ SYSTEM 1024 SYSTEM
0.dbf
1 /usr/oracle/app/oradata/ORAU8/datafile/o1_mf_syste SYSTEM 830 SYSTEM
m_hw3objqp_.dbf
5 /usr/oracle/app/oradata/ORAU8/TBS01_A.dbf TBS01 1000 ONLINE
7 /usr/oracle/app/oradata/ORAU8/TBS01_B.dbf TBS01 1000 ONLINE
8 /usr/oracle/app/oradata/ORAU8/TBS01_C.dbf TBS01 2048 ONLINE
9 /usr/oracle/app/oradata/ORAU8/TBS01_D.dbf TBS01 2000 ONLINE
2 /usr/oracle/app/oradata/ORAU8/TBS02_A.dbf TBS02 2048 ONLINE
4 /usr/oracle/app/oradata/ORAU8/datafile/o1_mf_undot UNDOTBS1 4590 ONLINE
bs1_hw3og9fd_.dbf
6 /usr/oracle/app/oradata/ORAU8/datafile/o1_mf_users USERS 5 ONLINE
_hw3ogbl3_.dbf
10行が選択されました。
SQL>
--
--
--- これを見るとこれまでも何度か拡張していますね、、
--- 今回もまた 2G ほど拡張します。
---
SQL> ALTER TABLESPACE TBS01 ADD DATAFILE '/usr/oracle/app/oradata/ORAU8/TBS01_E.dbf' SIZE 2G
2 ;
表領域が変更されました。
--- もし「ORA-01031: 権限が不足しています。」とエラーが出た場合は
--- DBAロールを保持しているユーザ(systemとか)から以下system権限を付与しましょう。
--- grant ALTER TABLESPACE to sooni
---
SQL>
---
--- 再度表領域の状況を確認したら以下の通り
---
TABLESPACE_NAME 全サイズM 空サイズM 使用率
---------------- ----------- ------------- -------
TBS01 8096 2047.7 74.71
UNDOTBS1 4590 3851.5 16.09
TBS02 2048 1950.9 4.74
SYSTEM 1854 1039.6 43.93
SYSAUX 1300 193.4 85.13
USERS 5 2.9 42.50
TEMP 100.00
7行が選択されました。
SQL>
---
--- これでめでたく解決です