ジャーナリングの概要
ジャーナリングの概要
InterSystems IRIS® データ・プラットフォームの各インスタンスはジャーナルを保持します。ジャーナルとは、最後のバックアップ以後にデータベースに対して行われた更新を時間順で保持している一連のファイルです。その処理は冗長性があり、論理的で、InterSystems IRIS ライト・デーモンを使用しません。InterSystems IRIS のトランザクション処理は、障害の後にデータの論理的整合性を維持するために、ジャーナリングと共に機能します。
また、バックアップとジャーナリングにより、データベースを再作成することが可能になります。データベースが破損する、アクセスできない、または使用不可能になるような障害が発生した場合、最新のバックアップをリストアし、ジャーナル内の変更を適用して、障害発生時点のデータベースを再作成できます。物理的整合性の損失を回復するこの技術は、“ロール・フォワード” リカバリと呼びます。また、ジャーナルは不完全なトランザクションをロールバックするためにも使用されます。
ジャーナル状態は、個々のグローバルのプロパティではなく、データベースのプロパティです。データベースのグローバル・ジャーナル状態は、Yes または No のいずれかになります。既定では、作成するすべてのデータベースがジャーナリングされます ([グローバルジャーナル状態] が [Yes])。新規にインストールされた InterSystems IRIS インスタンスでは、IRISAUDIT、IRISSYS、および USER の各データベースはジャーナリングされます。IRISLIB、IRISTEMP、および IRISLOCALDATA の各データベースはジャーナリングされません。IRISTEMP 内のグローバルに対する操作は、ジャーナリングされません。InterSystems IRIS 一時データベースである IRISTEMP に一時グローバルをマッピングしてください。
InterSystems IRIS を起動すると、最後のライト・デーモン・パス以降のすべてのジャーナル・エントリが再適用されます。ユーザは、ライト・デーモンを使用せずにジャーナルの更新を同時に処理するので、この方法によりクラッシュ前の更新の保存を保証します。
ジャーナリングされるデータベースに対するすべての更新を記録するだけでなく、ジャーナルにはトランザクションの一部であるジャーナリングされないデータベースに対するすべての更新も含まれます (主 Set 操作と Kill 操作)。これによって、システムの信頼性が大きく向上します。つまり、回復後、グローバルの更新の中にジャーナルに記録されていないものがあったり、トランザクションの対象にならないものがあったりするために発生する矛盾を防止できます (ローカルでの Set および Kill の操作、およびプロセス・プライベート変数はジャーナルに記録されません)。
クラスタにマウントされたデータベースのグローバル処理をジャーナリングするかどうかは、データベース設定によって決まります。ローカル InterSystems IRIS インスタンスでは、リモート・ノードのグローバルのトランザクション処理はジャーナルしません。ネットワーク構成の場合、ジャーナリングは、グローバルが実際に格納されているノードをサポートしますが、Set または Kill コマンドを要求したノードはサポートしません。したがって、ノード B がノード A の要求で Set コマンドを実行する場合、ジャーナル・エントリは、ノード A ではなく、ノード B のジャーナルに表示されます。