現状の確認
DBA_DATA_FILESを参照し現状の確認します。
現状確認SQL
SELECT FILE_ID,FILE_NAME,TABLESPACE_NAME,BYTES/1024/1024 M_BYTE,ONLINE_STATUS FROM DBA_DATA_FILES ORDER BY TABLESPACE_NAME,FILE_NAME ;
SQL> SELECT FILE_ID,FILE_NAME,TABLESPACE_NAME,BYTES/1024/1024 M_BYTE,ONLINE_STATUS
2 FROM DBA_DATA_FILES
3 ORDER BY TABLESPACE_NAME,FILE_NAME
4 ;
FILE_ID FILE_NAME TABLESPACE_NAME M_BYTE ONLINE_STA
---------- -------------------------------------------------- ---------------- ---------- ----------
3 /u01/app/oracle/oradata/ORA19/sysaux01.dbf SYSAUX 620 ONLINE
1 /u01/app/oracle/oradata/ORA19/system01.dbf SYSTEM 910 SYSTEM
4 /u01/app/oracle/oradata/ORA19/undotbs01.dbf UNDOTBS1 340 ONLINE
7 /u01/app/oracle/oradata/ORA19/users01.dbf USERS 5 ONLINE
SQL>
SQL*Plus用
SET LIN 200 SET PAGES 50 COLUMN FILE_NAME FORMAT A50 COLUMN TABLESPACE_NAME FORMAT A16 COLUMN ONLINE_STATUS FORMAT A10
CREATE TABLESPACE で表領域を新規作成する
エクステントの内部管理方式として、ディクショナリ管理/ローカル管理とありますがまず「ローカル管理」で問題なし。(ディクショナリ管理は下位互換のためにあるだけの模様)
CREATE TABLESPACE "TBS01" NOLOGGING DATAFILE '/u01/app/oracle/oradata/ORA19/TBS02_A.dbf' SIZE 2G EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;
LOGGING:表領域に対する変更をREDOログに出力する
NOLOGGING:表領域に対する変更をREDOログに出力しない
SQL> CREATE TABLESPACE "TBS01"
2 NOLOGGING
3 DATAFILE '/u01/app/oracle/oradata/ORA19/TBS02_A.dbf' SIZE 2G
4 EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
5 ;
表領域が作成されました。
SQL>
ALTER TABLESPACEで既存表領域を拡張する
ORA-01653が発生し、既存表領域がいっぱいになった場合にこちらで拡張します。以下はSYSTEM表領域のサイズが随分ひっ迫してきていたのでデータファイルを割り当てて表領域を拡張しています。余計なお世話かもしれませんが、以下補足しておきます。
表領域の拡張(データファイルの追加)はSYSTEM表領域も非SYSTEM表領域も同じ方法となりますが、SYSTEM表領域に追加した「データファイルの削除」についてはおそらくできません。私はかつてSYSTEM表領域に対し誤ってデータファイルを追加したことがあり、削除を試みましたがその方法が見つかりませんでした。リサイズやデータファイル名の変更はできますが。
ALTER TABLESPACE SYSTEM ADD DATAFILE '/u01/app/oracle/oradata/ORA19/system02.dbf' SIZE 2000M ;
新規追加した表領域、拡張した表領域を確認する
SQL> SELECT FILE_ID,FILE_NAME,TABLESPACE_NAME,BYTES/1024/1024 M_BYTE,ONLINE_STATUS
2 FROM DBA_DATA_FILES
3 ORDER BY TABLESPACE_NAME,FILE_NAME
4 ;
FILE_ID FILE_NAME TABLESPACE_NAME M_BYTE ONLINE_STA
---------- -------------------------------------------------- ---------------- ---------- ----------
3 /u01/app/oracle/oradata/ORA19/sysaux01.dbf SYSAUX 620 ONLINE
1 /u01/app/oracle/oradata/ORA19/system01.dbf SYSTEM 910 SYSTEM
2 /u01/app/oracle/oradata/ORA19/system02.dbf SYSTEM 2000 SYSTEM ←既存拡張
5 /u01/app/oracle/oradata/ORA19/TBS02_A.dbf TBS01 2048 ONLINE ←新規追加
4 /u01/app/oracle/oradata/ORA19/undotbs01.dbf UNDOTBS1 340 ONLINE
7 /u01/app/oracle/oradata/ORA19/users01.dbf USERS 5 ONLINE
6行が選択されました。
SQL>