REDOログの仕組み
REDOログの仕組み
0.更新履歴
1.はじめに
Oracle8iにて,障害発生から回復までの仕組みをささえるREDOログの構成について説明する.
2.REDOログバッファとREDOログファイル
- REDOログバッファとREDOログファイルは,データベースの変更履歴が保存されている.
- 障害が発生した時に,変更履歴を適用(再実行)することによって,最新のデータ状態に回復するための仕組みである.
- データベースの変更情報(INSERT文やUPDATE文など)は,まずSGA(メモリ)中のREDOログバッファに格納される.
- LGWRプロセスによって,REDOログバッファの内容がREDOログファイルに書き出される.
- REDOログファイルは,必ず複数のファイルから構成されている.
- Oracle8iの手動構成のデフォルトでは,3ファイルで1ファイルあたり1MBがデフォルトになっている.
- 変更情報はREDOログファイルに順番に書き出され,1つのファイルが一杯になると次のREDOログファイルに移行する. これをログスイッチと呼ぶ.
- 全てのREDOログファイルが一杯になったら,最初のREDOログファイルへログスイッチが行われ,循環する.
- 現在どのREDOログを使用しているかなどの情報は,制御ファイルに記録される.
3.REDOログのアーカイブ
- 通常のREDOログファイルの事を,オンラインREDOログという.
- デフォルト状態では,NOARCHIVELOGモードで稼働している.
- NOARCHIVELOGモードの場合,ログスイッチが発生してREDOログファイルが循環した場合,古い変更履歴は上書きされてしまう.
- よって,全ての変更履歴がREDOログファイルにかかれていると保証されない.
- ARCHIVELOGモードに変更すると,REDOログファイルに格納できなくなった古い変更履歴はARCHIVELOGというファイルに書き出されて保存される.
4.ARCHIVELOGモードに設定する
- ARCHIVELOGモードに設定するには,初期化パラメータファイルに次のように設定すればよい.
init.oraの中身
log_archive_start = true
log_archive_dest_1 = "location=D:\oracle\oradata\vaio\archive"
log_archive_format = %%ORACLE_SID%%T%TS%S.ARC
|
- この設定で吐き出されるようになったARCHIVELOGは,次のとおりになる.
D:\oracle\oradata\vaio\archive>dir
ドライブ D のボリューム ラベルは DOCUMENT です
ボリューム シリアル番号は 151C-1D09 です
D:\oracle\oradata\vaio\archive のディレクトリ
2001/10/08 13:31 <DIR> .
2001/10/08 13:31 <DIR> ..
2001/10/08 16:29 1,049,088 VAIOT001S00203.ARC
2001/10/08 16:34 1,049,088 VAIOT001S00204.ARC
2001/10/08 16:35 1,049,088 VAIOT001S00205.ARC
3 個のファイル 3,147,264 バイト
2 個のディレクトリ 3,836,510,208 バイトの空き領域
D:\oracle\oradata\vaio\archive>
|
- また,稼動中でも次のSQL文を実行する事で稼働することができる.
alter system archive log start |
- しかし,インスタンスを再起動したときは地頭的に実行されないので,初期化パラメータファイルに記述しておくほうが良い.
5.その他
SQL> connect system/manager
接続されました。
SQL> archive log list
ORA-01031: 権限が不足しています。
SQL> connect sys/change_on_install
接続されました。
SQL> archive log list
ORA-01031: 権限が不足しています。
SQL> connect sys/change_on_install as sysdba
接続されました。
SQL> archive log list
データベース・ログ・モード アーカイブ・モード
自動アーカイブ 使用可能
アーカイブ先 D:\oracle\oradata\vaio\archive
最も古いオンライン・ログ順序 205
アーカイブする次のログ順序 207
カレント・ログ順序 207
SQL>
|
SQL> alter system switch logfile
2 ;
システムが変更されました。
SQL>
|