Oradata01とoradata02のスペースが不足しています。 oradata03で移動またはリバランスする方法はありますか?
/opt/Oracle/oradata01/x/undotbs01.dbf 4 100 %
/opt/Oracle/oradata02/x/undotbs02.dbf 17 100 %
/opt/Oracle/oradata03/x/undotbs03.dbf 25 1 %
12cを使用している場合は、簡単です。データファイルをオンラインで移動するだけです。
SQL> ALTER DATABASE MOVE DATAFILE '/opt/Oracle/oradata02/x/undotbs02.dbf' TO '/opt/Oracle/oradata03/x/undotbs02.dbf';
下位バージョンを使用していて、インスタンスを停止する余裕がある場合は、
1)データベースのシャットダウン
2)osコマンドでデータファイルをoradata03に移動します
3)データベースをマウントする
4)データファイルの名前を変更します
SQL> ALTER DATABASE rename file '/opt/Oracle/oradata02/x/undotbs02.dbf' TO '/opt/Oracle/oradata03/x/undotbs02.dbf';
インスタンスを停止できない場合は、別のUNDO表領域を作成して、オンラインで切り替えることができます。 https://docs.Oracle.com/cd/B28359_01/server.111/b28310/undo005.htm#ADMIN1147
データファイルのサイズを変更することもできます。データファイルの最後にアクティブ/保持の元に戻すセグメントがない場合は機能します。
新しい元に戻すTを作成し、古いものを削除するだけです。
show parameter undo
名前タイプ値
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> CREATE UNDO TABLESPACE undotbs2 DATAFILE '+DATA_NEWPATH' SIZE 100M AUTOEXTEND ON;
http://www.Oracle-base.com/articles/9i/AutomaticUndoManagement.php
SQL> alter system set undo_tablespace=undotbs2;
その後、UNDOTBS1を削除できます。 詳細についてはこちらをご覧ください。
よろしく