トランザクション障害

トランザクション障害に関する解説

運用設計では障害からの回復を考慮し設計する必要があります。DBMSではトランザクション障害は頻繁に起こり得る障害です。トランザクション障害の概念を理解することが重要です

 

トランザクションとは

トランザクションとはDBMS内で実行される、分けることができない一連の処理の単位のことです

 

トランザクション障害とは

トランザクション障害とは、一連の処理であるトランザクションの途中で障害となり、更新中のデータに不整合が発生する障害です。ここでデータベースとして重要なことは、チェックポイント(CHECKPOINT)が取られる前のトランザクションか、チェックポイント(CHECKPOINT)が取られた後のトランザクションかということです

 

チェックポイントとは

チェックポイントとは、データベースバッファキャッシュ内にある更新済みのデータをディスクに書き込むイベントです。コミット(COMMIT)を発行しても実際にはディスクに書き込みされていません。このチェックポイント(CHECKPOINT)が実行されて初めて確定されたことになります

 

 

障害発生の動き

あるシステムにおいて何等かの障害が発生した時

コミット(COMMIT)され、チェックポイント(CHECKPOINT)が取られた後のトランザクションは障害回復の対象外です

チェックポイント(CHECKPOINT)が取られる前のトランザクションは一旦すべてロールバック(ROLLBACK)されます

さらに、コミット(COMMIT)が発行されているトランザクションに対してはロールフォワード(ROLLFOWARD)で障害回復を行います

これがデータベースにおけるコミット(COMMIT)、チェックポイント(CHECKPOINT)、ロールバック(ROLLBACK)、UNDO、ロールフォワード(ROLLFOWARD)、REDOの関係です

dba
Author

dba

One thought on “トランザクション障害

Comments are closed.