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
よさそうです。