REDOログファイルを初期化または削除する

Pocket

【概要】
REDOログファイルを削除または初期化する手順を示します。
【SQL文】
/*
|| ■REDOログファイルを初期化または削除する
*/
 SQL*PlusでOracleに接続
$ sqlplus /nolog
SQL> conn / as sysdba

–変更前の状態を確認
SQL> select * from v$log;
SQL> select * from v$logfile;

–グループの削除
SQL> ALTER DATABASE (db_name) DROP LOGFILE GROUP 1;

–※ALTER DATABASE文でREDOログメンバを削除しても、OSファイルが物理的に削除されることはない。

–メンバーの削除
ALTER DATABASE DROP LOGFILE MEMBER ‘/oracle_dir/redo_file01.log’;

–※ALTER DATABASE文でREDOログメンバを削除しても、OSファイルが物理的に削除されることはない。

–変更後の状態を確認(ファイルは物理的にコピーされる)
SQL> select * from v$log;
SQL> select * from v$logfile;
/*
●次の場合、REDOロググループの削除はできない
REDOロググループの削除によってインスタンス内のロググループが一つになってしまう場合
アクティブなREDOロググループを削除しようとした場合
アーカイブモードで稼動しているデータベースで、アーカイブされていないREDOロググループを削除しようとした場合

●次の場合、REDOログメンバの削除はできない
削除されるメンバが所属グループ最後の有効メンバである場合
アーカイブモードで稼動しているデータベースで、アーカイブされていないREDOロググループのメンバを削除しようとした場合
*/
–REDOログファイルの初期化
SQL> ALTER DATABASE (db_name) CLEAR LOGFILE (GROUP 3) (‘/oracle_dir/redo_file03_1.log’
2 , ‘/oracle_dir/redo_file03_2.log’);

–※REDOログファイルの初期化は、削除/追加と同じ動作であるが、アーカイブされていない場合など削除できない場合に使用すると便利である。

以上です (^^♪