Oracleの表領域の空き領域を増やすにはどうすればよいか
Oracleの表領域を拡張するには、次の手順に従います。
- 現在の表領域の使用状況を確認するには、次の SQL ステートメントを使用します。
SELECT tablespace_name, file_name, bytes / 1024 / 1024 AS "Size (MB)",
(bytes - free_space) / 1024 / 1024 AS "Used (MB)",
free_space / 1024 / 1024 AS "Free (MB)",
(free_space / bytes) * 100 AS "Free (%)"
FROM dba_free_space;
- 使用状況を確認し、拡張する必要がある表領域を判断します。
- 例:拡張する表領域名が EXAMPLE の場合、以下の SQL文でデータファイルを追加できます。
ALTER TABLESPACE EXAMPLE ADD DATAFILE '/path/to/new_datafile.dbf' SIZE 100M;
ここで/path/to/new_datafile.dbfは新しいデータファイルのパスと名前、100Mは拡張後のサイズです。
- テンポラリ表領域ファイルを拡張する(必要な場合):次のSQL文を使用してテンポラリ表領域ファイルを拡張できます(拡張するテンポラリ表領域がTEMPであると仮定する場合):
ALTER TABLESPACE TEMP ADD TEMPFILE '/path/to/new_tempfile.dbf' SIZE 100M;
新しい一時ファイルのパスと名前は /path/to/new_tempfile.dbf で、サイズは拡張後の 100M です。
- 十分な量の領域をオブジェクトに再割り当て:テーブルスペースが拡張された後に既存の領域がオブジェクトのデータを含める可能性がない場合、以下のSQL文を使用してオブジェクトに十分な領域を再割り当てすることができます:
ALTER TABLE <table_name> MOVE;
対象となるテーブル
- 手順1のSQL文で表領域の使用状況を確認し、拡張操作が成功したかどうかを確認します。
操作に進む前に、データベースを バックアップ することを推奨します。万が一の場合に備えるためです。