こんにちは😀
今回は、前回のデータベースの障害管理の続きをやっていきます。
チェックポイントとは
DBMSの中には、処理効率向上のために更新データをすぐには補助記憶装置へと書き出さずに、主記憶装置上のバッファに保持するものがあります。
この方法の方が、データベースを直接更新するより処理が早くなります。
こうしたバッファ内のデータは、一定の間隔で補助記憶装置側のデータベースへと反映されます。
この反映を行う処理のことを、チェックポイントと言います。
ただし、この場合、タイミングによってはシステムに障害が発生した時に、バッファ上の更新データがデータベースに反映されないまま消失してしまう可能性があります。
その場合、DBMSはチェックポイント地点から再開し、それ以降の更新をロールフォワードすることで障害の復旧を行います。
分散データベースとは
物理的に分かれている複数のデータベースを、見かけ上1つのデータベースとして処理できるようにしたシステムを分散データベースと言います。
操作する人は、1つのデータベースとして扱えますが、その実体は各地のデータベースと連携して動いているという仕組みになります。
このような分散データベースでは、トランザクション処理が各データベースに渡り行われるため、全体の同期をとってコミットやロールバックを行わないと、一部のデータだけが更新されたりなど、全体のデータの整合性がとなくなります。
2相コミットとは
分散データベースのデータ整合性を取るために、全データベースに対して問い合わせを行い、その結果によりコミットやロールバックを行います。
この方式を、2相コミットと言います。
以下に、2相コミットの流れをまとめます。
①全てのデータベースに対して、コミットの可否を問い合わせます。
↓
②各データベースからの返答が返ってきます。
↓
③−1
全データベースがコミット可の場合、全データベースにコミットを支持します。
または、
③−2
一部データベースからでも不可なら、全データベースにロールバックを指示します。
今回の一言・・・
今回は主に、データベースに障害があった場合の復旧方法をまとめました。
データベースの構成や設定もいくつかあるので、それに合わせて復旧方法も工夫する必要があります。
前回と今回みたのは、あくまで基本的なものになるので、基礎をしっかり把握した上でデータベースも関わっていきたいと思います。
ここまで読んでくれてありがとう。
では、また次回。
コメント