備忘録:Oracleのログモード変更方法

完全な備忘録ながら、せっかくなのでブログにも書いておく。

アーカイブログモード

OracleではREDOログファイル(REDOロググループ)は循環して使用されるため、二周目以降はログの内容が上書きされて消えてしまう。ログが上書きされる前に内容をアーカイブして別の位置に保存しておくことができる。このモードをアーカイブログモードという。反対にアーカイブログをとらない設定のことを、ノーアーカイブログモードという。

  • ログモードの確認


select log_mode from v$database;

  • ログモードの切り替え


alter database [archivelog|noarchivelog]

ログモードの切り替えは、データベースをマウント状態にして行う。

  • 1.データベースをオープン状態からマウント状態に変更。


SQL> select log_mode from v$database;
LOG_MODE

                      • -

NOARCHIVELOG

SQL> shutdown immediate
データベースがクローズされました。
データベースがアンマウントされました。
ORACLEインスタンスがシャットダウンされました。

SQL> startup mount
ORACLEインスタンスが起動しました。
Total System Global Area 109868016 bytes
Fixed Size 283632 bytes
Variable Size 75497472 bytes
Database Buffers 33554432 bytes
Redo Buffers 532480 bytes
データベースがマウントされました。

SQL> select status from v$instance;

STATUS

                                                                      • -

MOUNTED

  • 2.ログモードの変更


SQL> alter database archivelog;
データベースが変更されました。

SQL> alter database open;
データベースが変更されました。

SQL> select log_mode from v$database;
LOG_MODE

                      • -

ARCHIVELOG

SQL> archive log list
データベース・ログ・モード アーカイブ・モード
自動アーカイブ 有効
アーカイブ先 USE_DB_RECOVERY_FILE_DEST
最も古いオンライン・ログ順序 111
アーカイブする次のログ順序 113
現行のログ順序 113

  • 3.データベースをオープンして変更終了


SQL> alter database open;

データベースが変更されました。

SQL> select log_mode from v$database;

LOG_MODE

                                                                      • -

ARCHIVELOG