トランザクション障害に関する解説
運用設計では障害からの回復を考慮し設計する必要があります。DBMSではトランザクション障害は頻繁に起こり得る障害です。トランザクション障害の概念を理解することが重要です
トランザクションとは
トランザクションとはDBMS内で実行される、分けることができない一連の処理の単位のことです
トランザクション障害とは
トランザクション障害とは、一連の処理であるトランザクションの途中で障害となり、更新中のデータに不整合が発生する障害です。ここでデータベースとして重要なことは、チェックポイント(CHECKPOINT)が取られる前のトランザクションか、チェックポイント(CHECKPOINT)が取られた後のトランザクションかということです
チェックポイントとは
チェックポイントとは、データベースバッファキャッシュ内にある更新済みのデータをディスクに書き込むイベントです。コミット(COMMIT)を発行しても実際にはディスクに書き込みされていません。このチェックポイント(CHECKPOINT)が実行されて初めて確定されたことになります
障害発生の動き
あるシステムにおいて何等かの障害が発生した時
コミット(COMMIT)され、チェックポイント(CHECKPOINT)が取られた後のトランザクションは障害回復の対象外です
チェックポイント(CHECKPOINT)が取られる前のトランザクションは一旦すべてロールバック(ROLLBACK)されます
さらに、コミット(COMMIT)が発行されているトランザクションに対してはロールフォワード(ROLLFOWARD)で障害回復を行います
これがデータベースにおけるコミット(COMMIT)、チェックポイント(CHECKPOINT)、ロールバック(ROLLBACK)、UNDO、ロールフォワード(ROLLFOWARD)、REDOの関係です
One thought on “トランザクション障害”
Comments are closed.