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

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

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

calendar

reload

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

こんにちは😀

今回は、データベースの続きで、その操作と障害管理をまとめます。

スポンサーリンク

ストアドプロシージャとは

データベースを操作する一連の処理手順(SQL文)を1つのプログラムにまとめ、DBMS側にあらかじめ保存しておくことをストアドプロシージャと言います。

クライアントサーバシステムにおいて、データベースサーバに保存されたストアドプロシージャは、そのプロシージャ名を指定するだけでクライアントから実行することが可能です。

1つ1つSQL文を流す必要がないので、ネットワークの負荷が軽減できます。
また、プロシージャはSQL文の解析も済ませた即実行可能な形式なので、処理速度の向上が見込めます。

データベースの障害回復とは

データベースには業務に必要なデータが大量に溜め込まれているため、障害が発生すると作業やサービスが止まってしまいます。

データベースは障害の発生に備えて定期的にバックアップを取ることが基本になります。
また、バックアップ後の更新は、ジャーナルと呼ばれるログファイルに、更新前と更新後の状態をその都度更新して、データベースの更新履歴を管理します。

コミットとは

データベースは、トランザクション単位で更新処理を管理します。
これは、一連の処理が問題なく完了できた時、最後にその更新を確定することで、データベースへと更新内容を反映させます。
これをコミットと言います。

ロールバックとは

一方で、トランザクション処理中に何らかの障害が発生して更新に失敗した場合、その時点までに行なった処置は、すべて無かったことにする必要があります。
そこでこのような場合、データベース更新前の状態を更新前ジャーナルから取得して、データベースをトランザクション開始直前の状態まで戻します。
この処理をロールバックと言います。

ロールフォワードとは

トランザクションの処理中でなく、ディスク障害などでデータベースが故障した場合、定期的に保存してあるバックアップファイルからデータを復元する必要がでてきます。

その場合、データベースに行なった更新処理を、バックアップ以降の更新後ジャーナルから取得して、データベースを障害発生の直前の状態まで復旧させます。

バックアップファイルによる復元から、ここに到るまでの一連の処理をロールフォワードと言います。

今回の一言・・・

データベースは特定の機器で起動している以上、故障は避けられません。
そのためのデータ復旧処理の基本的なものが今回まとめた手法になります。

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

IT入門一覧はこちら】