パーティションがいっぱいになったため、データファイルを追加する必要のあるテーブルスペースがあります。新しいデータファイルはまだ入力されていません。データファイル間でデータを移動できますか?
表領域に複数のデータファイルがある場合、Oracleは何をどのデータファイルに入れるかを管理します。あなたはこれを制御できません。これを行うのに十分なディスク容量がある場合は、次のデータジャグリング操作をお勧めします。
サイドノート。データファイルでMAXSIZEを使用していた場合は、おそらく今のところこのような状況ではなかったでしょう...ディスクスペース不足ではなくデータファイルサイズが不足するため、MAXSIZEを控えめなサイズに設定する傾向があります...
あなたを始めるためのいくつかのツール
テーブルを移動するDMLステートメントを作成する
select distinct 'ALTER TABLE ' || owner || '.' || segment_name || ' MOVE TABLESPACE target_tablespace;'
from dba_segments
where tablespace_name = 'old_tablespace'
and segment_type = 'TABLE';
インデックスを移動するDMLステートメントを作成する
select distinct 'ALTER INDEX ' || owner || '.' || index_name || ' REBUILD TABLESPACE target_tablespace;'
from dba_indexes
where tablespace_name = 'old_tablespace'
and index_type != 'LOB';
データファイルのサイズ変更
ALTER DATABASE DATAFILE 'D:\ORADATA\file.DBF' RESIZE xxxMB MAXSIZE xxxMB;
インデックスの再構築
ALTER INDEX <SCHEMA>.<INDEX> REBUILD;
データを新しいパーティションにall移動することを気にしない場合の代替(およびより簡単な)ソリューション:
データファイルの移動に関する優れたマニュアルは次のとおりです。
http://www.Oracle-base.com/articles/misc/renaming-or-moving-Oracle-files.php#datafiles