スライド 11 / 21
説明:
Oracle RDBMSにおいて、システムがダウンした場合、ダウンした直前までに完全復旧できるのは、このRedoログ・ファイルがあるからです。その重要な役割をしている
Redoログ・ファイル
について説明します。
Redoログ・ファイルは、データベースのあらゆる変更情報をすべて記録するジャーナル・ファイルです。
トランザクションのCOMMITは、このRedoログ・ファイルにデータの変更情報を書き込むことで完了となります。(実際のデータ・ファイルに値が書き込まれていなくても良い)
万一データベースがダウンした場合、次回データベースを起動する際に、このRedoログ・ファイルを参照し、データベースに反映されていないところからRedoログ・ファイルに書き込まれているすべてをデータベースに反映します。(『ロール・フォワード』と言います)その後、整合性の取れる位置までロールバックします。(Oracleでは、SCN番号にてトランザクションが管理されています)
Redoログ・ファイルは、複数グループから構成され、循環して使用されます。Redoログ・ファイルは2つ以上のグループが必要です。一般的に3つ以上のグループを作っておきます。(データ・ディクショナリ v$log にて確認できます)
現在使用されているRedoログ・ファイルを『
オンラインRedoログ・ファイル
』と言います。
そのRedoログ・ファイルが一杯になると切り離し、次のグループのRedoログ・ファイルをオンラインにし使用します。これを『
ログスイッチ
』と言います。
ログスイッチは、手動にて発生(切り替え)させることもできます。
ALTER SYSTEM SWITCH LOGFILE;
ログスイッチが行われると、アラート・ファイルに記録されます。
ログスイッチ時、チェックポイントも発生します。
切り離されたRedoログ・ファイルをバックグラウンド・プロセスであるアーカイバー(arch)が、アーカイブ・ファイルにコピーを取り、今後ログスイッチが発生した場合、使用できるように準備します。
Redoログ・ファイルには、『
ログ順序番号
』が付いています。アーカイブ・ファイルには、このログ順序番号がファイル名になります。
データベースを復旧させる時、現在のRedoログ・ファイルだけで復旧できない場合は、このログ順序番号にて聞いてきますので、解りやすくしておきます。
※ アーカイブ・ファイルを作成するには、データベースを『アーカイブ・ログ・モード』に切り替える必要があります。
svrmgr を起動し、archive log list にて確認。
データベースをオープン startup mount し、アーカイブモードに切り替え alter database archivelog; ます。そして alter database open;
※ アーカイブ・ファイルは、どんどん増えますので注意して下さい。(ディスクが一杯になりコピーが取れなくなるとデータベースは停止します)
※ アーカイブ・ファイルは、データベースを停止し、完全バックアップを取った後、すべて削除しても良いです。
Redoログ・ファイルは、トランザクション処理において非常に重要な役割をしますので、二重化をおこないます。この二重化したファイルを『メンバー』と言います。(データ・ディクショナリ v$logfile にて確認できます)
オンラインRedoログ・ファイルが壊れると、データベースは停止します。複数のメンバーがある場合は、すべてのメンバーが壊れるまでデータベースは動作します。
各メンバーは、二重化の為作成されていますので、異なったスピンドル(=ハードディスク =ドライブ =スライス)に配置するのが原則です。
(C) 2004 HiroLaboratory. All rights reserved.