Oracleのテーブルスペースにデータファイルを追加する

運用しているDBのテーブルスペース、自動拡張の上限に達したらしい。データファイルを追加して欲しいとの要望。
まず現状を調べる。

dba_data_filesをチェック

SQL> select * from dba_data_files where tablespace_name='USERS' ;
FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID TABLESPACE_NAME		       BYTES	 BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
/db/hoge/oradata/hoge/hoge/users01.dbf
	 4 USERS			  3.4358E+10	4194064 AVAILABLE
	   4 YES 3.4360E+10    4194302	      12800 3.4357E+10	   4193936
ONLINE

上限値はMAXBYTESのところ。3.4360×10の10乗ってことでえーといくつなんだ。

$ ls -ltr /db/hoge/oradata/hoge/hoge/users01.dbf
-rw-r----- 1 oracle oinstall 34357780480  6月  3 09:52 2015 /db/hoge/oradata/hoge/hoge/users01.dbf

なんか数字がそれっぽいので上限なんでしょう。割と適当。

データファイルを追加する。

alter tablespaceを使います。

SQL>  alter tablespace USERS add datafile '/db/hoge/oradata/hoge/hoge/users02.dbf' size 500M autoextend on next 100M ; 

Tablespace altered.

ちゃんと追加されたか確認

 select tablespace_name, file_name, status, bytes/1024/1024 mbytes,increment_by, autoextensible, online_status from dba_data_files where tablespace_name = 'USERS' ;

TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
STATUS	      MBYTES INCREMENT_BY AUT ONLINE_
--------- ---------- ------------ --- -------
USERS
/db/hoge/oradata/hoge/hoge/users01.dbf
AVAILABLE 14045.5625	    12800 YES ONLINE

USERS
/db/cyhope/oradata/hoge/hoge/users02.dbf
AVAILABLE	 500	    12800 YES ONLINE

よさそうです。