データベースのオープン中にREDOログファイルを変更する

1. sqlplusからデータベースにでsysdba権限で接続します

sqlplus /nolog
CONN / AS sysdba

2. 一時的に使用するREDOロググループを作成します(下記例は従来のREDOロググループが3つの場合)。
%REDO_DIR%はREDOログファイルの作成されるディレクトリとなります。

ALTER DATABASE  ADD LOGFILE GROUP 4 ('%REDO_DIR%\log4_1.log' , '%REDO_DIR%\log4_2.log') SIZE 100M;
ALTER DATABASE  ADD LOGFILE GROUP 5 ('%REDO_DIR%\log5_1.log' , '%REDO_DIR%\log5_2.log') SIZE 100M;

3. 既存のREDOロググループをデータベース上から削除します。

SELECT GROUP#,STATUS FROM V$LOG;
#でグループ1の状態を確認。currentの場合は次のSQLでスイッチを発生させます。
ALTER SYSTEM SWITCH LOGFILE;
SELECT GROUP#,STATUS FROM V$LOG;

ALTER DATABASE  DROP LOGFILE GROUP 1;
SELECT GROUP#,STATUS FROM V$LOG;
#でグループ2の状態を確認。currentの場合は次のSQLでスイッチを発生させます。
ALTER SYSTEM SWITCH LOGFILE;
SELECT GROUP#,STATUS FROM V$LOG;

ALTER DATABASE  DROP LOGFILE GROUP 2;
SELECT GROUP#,STATUS FROM V$LOG;
#でグループ3の状態を確認。currentの場合は次のSQLでスイッチを発生させます。
ALTER SYSTEM SWITCH LOGFILE;
SELECT GROUP#,STATUS FROM V$LOG;

ALTER DATABASE  DROP LOGFILE GROUP 3;
SELECT GROUP#,STATUS FROM V$LOG;

4. 使わなくなったファイルをOSコマンドでRENAMEします

REN %REDO_DIR%\log1_1.log log1_1.log_bk
REN %REDO_DIR%\log1_2.log log1_2.log_bk
REN %REDO_DIR%\log2_1.log log2_1.log_bk
REN %REDO_DIR%\log2_2.log log2_2.log_bk
REN %REDO_DIR%\log3_1.log log3_1.log_bk
REN %REDO_DIR%\log3_2.log log3_2.log_bk

5. 新規にREDOロググループを作成します。

ALTER DATABASE  ADD LOGFILE GROUP 1 ('%REDO_DIR%\log1_1.log' , '%REDO_DIR%\log1_2.log') SIZE 100M;
ALTER DATABASE  ADD LOGFILE GROUP 2 ('%REDO_DIR%\log2_1.log' , '%REDO_DIR%\log2_2.log') SIZE 100M;
ALTER DATABASE  ADD LOGFILE GROUP 3 ('%REDO_DIR%\log3_1.log' , '%REDO_DIR%\log3_2.log') SIZE 100M;


6. 一時的に作成したREDOログ・ファイル・グループを削除します。

SELECT GROUP#,STATUS FROM V$LOG;
#でグループ4の状態を確認。currentの場合は次のSQLでスイッチを発生させる。
#ALTER SYSTEM SWITCH LOGFILE;

ALTER DATABASE  DROP LOGFILE GROUP 4;
SELECT GROUP#,STATUS FROM V$LOG;


SELECT GROUP#,STATUS FROM V$LOG;
#でグループ5の状態を確認。currentの場合は次のSQLでスイッチを発生させる。
#ALTER SYSTEM SWITCH LOGFILE;

ALTER DATABASE  DROP LOGFILE GROUP 5;
SELECT GROUP#,STATUS FROM V$LOG;

7. 一時的に作成したREDOログ・ファイルをOSコマンドで削除します。

DEL %REDO_DIR%\log4_1.log
DEL %REDO_DIR%\log4_2.log
DEL %REDO_DIR%\log5_1.log
DEL %REDO_DIR%\log5_2.log