ハジカラ 〜はじめからでも、プログラミング勉強〜

入門向けに、IT関連(javaやKotlin)をコツコツ書いたり検証したりします。

Home » IT入門 » 【IT入門】データベースの操作と障害管理②

【IT入門】データベースの操作と障害管理②

calendar

reload

【IT入門】データベースの操作と障害管理②

こんにちは😀

今回は、前回のデータベースの障害管理の続きをやっていきます。

スポンサーリンク

チェックポイントとは

DBMSの中には、処理効率向上のために更新データをすぐには補助記憶装置へと書き出さずに、主記憶装置上のバッファに保持するものがあります。
この方法の方が、データベースを直接更新するより処理が早くなります。

こうしたバッファ内のデータは、一定の間隔で補助記憶装置側のデータベースへと反映されます。
この反映を行う処理のことを、チェックポイントと言います。

ただし、この場合、タイミングによってはシステムに障害が発生した時に、バッファ上の更新データがデータベースに反映されないまま消失してしまう可能性があります。
その場合、DBMSはチェックポイント地点から再開し、それ以降の更新をロールフォワードすることで障害の復旧を行います。

分散データベースとは

物理的に分かれている複数のデータベースを、見かけ上1つのデータベースとして処理できるようにしたシステムを分散データベースと言います。

操作する人は、1つのデータベースとして扱えますが、その実体は各地のデータベースと連携して動いているという仕組みになります。

このような分散データベースでは、トランザクション処理が各データベースに渡り行われるため、全体の同期をとってコミットやロールバックを行わないと、一部のデータだけが更新されたりなど、全体のデータの整合性がとなくなります。

2相コミットとは

分散データベースのデータ整合性を取るために、全データベースに対して問い合わせを行い、その結果によりコミットやロールバックを行います。
この方式を、2相コミットと言います。

以下に、2相コミットの流れをまとめます。

①全てのデータベースに対して、コミットの可否を問い合わせます。

②各データベースからの返答が返ってきます。

③−1
全データベースがコミット可の場合、全データベースにコミットを支持します。
または、
③−2
一部データベースからでも不可なら、全データベースにロールバックを指示します。

今回の一言・・・

今回は主に、データベースに障害があった場合の復旧方法をまとめました。
データベースの構成や設定もいくつかあるので、それに合わせて復旧方法も工夫する必要があります。
前回と今回みたのは、あくまで基本的なものになるので、基礎をしっかり把握した上でデータベースも関わっていきたいと思います。

ここまで読んでくれてありがとう。
では、また次回。

IT入門一覧はこちら】

この記事をシェアする

コメント

コメントはありません。

down コメントを残す