データベースには 3 つのログ グループがあり、各グループの REDO ログ ファイルのサイズは 200MB なので、1GB に拡張する必要があります。つまり、最終的なニーズは次のようになります。
SQL> select bytes from v$log;
BYTES
----------
1073741824
1073741824
1073741824
実際には、拡張コマンドのようなものはありません。古いログ グループを削除し、新しいログ グループを追加してサイズを 1GB に指定するだけです。
現在のステータスがログ グループ 1 であると仮定すると、最初にログ グループ 2 と 3 を再構築できます。
-- 操作必须在CDB$ROOT中进行
connect / as sysdba
ALTER DATABASE DROP LOGFILE GROUP 3;
ALTER DATABASE ADD LOGFILE GROUP 3 ('+DATAC1') SIZE 1G;
ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE ADD LOGFILE GROUP 2 ('+DATAC1') SIZE 1G;
次に、ログスイッチを実行します。
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM CHECKPOINT;
ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE ADD LOGFILE GROUP 1 ('+DATAC1') SIZE 1G;
ログファイルを切り替えないと、次のエラーが報告されます。
SQL> ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE DROP LOGFILE GROUP
*
ERROR at line 1:
ORA-01623: log 1 is current log for instance orcl (thread 1) - cannot drop
ORA-00312: online log 1 thread 1:
'+RECO/DB0410_NRT12N/ONLINELOG/group_1.551.1136542627'
チェックポイントが実行されない場合、次のエラーが報告される場合があります。
SYS@orcl>ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE DROP LOGFILE GROUP 1
*
ERROR at line 1:
ORA-01624: log 1 needed for crash recovery of instance orcl (thread 1)
ORA-00312: online log 1 thread 1:
'+DATAC1/ORCL/ONLINELOG/group_1.551.1136542627'
2023 年 5 月 22 日の午後 6 時に、1G から 2G に変更して再度実行しました。
SYS@orcl>select group#, bytes, status from v$log;
GROUP# BYTES STATUS
---------- ---------- ----------------
1 1073741824 CURRENT
2 1073741824 INACTIVE
3 1073741824 INACTIVE
ALTER DATABASE DROP LOGFILE GROUP 3;
ALTER DATABASE ADD LOGFILE GROUP 3 ('+DATAC1') SIZE 2G;
ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE ADD LOGFILE GROUP 2 ('+DATAC1') SIZE 2G;
SYS@orcl>select group#, bytes, status from v$log;
GROUP# BYTES STATUS
---------- ---------- ----------------
1 1073741824 CURRENT
2 2147483648 UNUSED
3 2147483648 UNUSED
SYS@orcl>ALTER SYSTEM SWITCH LOGFILE;
System altered.
SYS@orcl>select group#, bytes, status from v$log;
GROUP# BYTES STATUS
---------- ---------- ----------------
1 1073741824 ACTIVE
2 2147483648 CURRENT
3 2147483648 UNUSED
SYS@orcl>ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE DROP LOGFILE GROUP 1
*
ERROR at line 1:
ORA-01624: log 1 needed for crash recovery of instance orcl (thread 1)
ORA-00312: online log 1 thread 1:
'+DATAC1/ORCL/ONLINELOG/group_1.551.1137263455'
SYS@orcl>ALTER SYSTEM CHECKPOINT;
System altered.
SYS@orcl>ALTER DATABASE DROP LOGFILE GROUP 1;
Database altered.
SYS@orcl>ALTER DATABASE ADD LOGFILE GROUP 1 ('+DATAC1') SIZE 2G;
Database altered.
SYS@orcl>select group#, bytes, status from v$log;
GROUP# BYTES STATUS
---------- ---------- ----------------
1 2147483648 UNUSED
2 2147483648 CURRENT
3 2147483648 UNUSED