こんにちわ。
> SYSTEM01.DBFの縮小する方法がわかりません。
例えば、'/opt/oracle/oradata/orcl/system01.dbf' を5GB まで
縮小させるには、以下のコマンドを実行します。
SQL> alter database datafile
'/opt/oracle/oradata/orcl/system01.dbf' resize 5120m;
但し、データファイルの5GB より後ろの領域が使われていると
縮小には失敗します。
データファイルが拡張していると言う事は、何かのセグメントが
大量に領域を使用しているんだと思います。
先ずは、何が領域を大量に使用しているか確認した方が良いですね。
手順は、こんな感じです。
1) SQL> select file_id, file_name from dba_datafiles;
上のSQL でSYSTEM01.DBF のfile_id を調べる。
2) SQL> select tablespace_name, block_size from dba_tablespaces;
上のSQL でSYSTEM 表領域 (SYSTEM01.DBF を使用している表領域) の
ブロックサイズを調べる。
3) SQL> select segment_type, segment_name, max(block_id)
where file_id = <1) で確認したfile_id> and
block_id > 655360 order by 3 desc;
上のSQL で5GB より後ろの領域を使っているセグメントを調べる。
※ block_size が8KB の場合を想定しています。
5120 × 1024 ÷ 8 = 655360
それと、使用しているOracle のバージョンを教えて下さい。
お礼
ご回答、ありがとうございます。