質問: データベースクラスタについての質問です。 こちらのサイトを見て勉強していたのですが、いまいちわからない記述がいくつかあります。 https://thinkit.co.jp/story/2010/10/05/1784 「障害発生時、サーバーが1台の場合は、あらかじめバックアップしておいたデータを復元し、これにバックアップ以降の更新ログ(トランザクション・ログ)を適用して、データベースを復旧する必要があります。バックアップしただけでは、バックアップ取得後の変更が失われてしまうので、バックアアップ処理以降の変更を反映する必要があるのです。」 システムのどこに障害が発生するのか明記されていないため、予測になりますが、おそらく上の文章でデータベースについて述べているため、データベースに障害が発生した時、ということになるかと思います。 そうすると、リストアして、リカバリーして、ロールフォワードしなければならないわけですが、この時にサーバの台数は関係あるのでしょうか? 上の文章では「サーバーが一台の場合」はと書かれているのですが、関係あるように思えません。 「サーバーがハードウエア障害によってクラッシュした場合は、新しいサーバーを入手してデータベースのバックアップを復元し、さらに変更を反映する必要があります。このため、ソフトウエア障害に比べて復旧までの時間が長くなり、数日単位の時間がかかります。データベースの運用として、許容されることではありません。」 上の文章ではサーバ(おそらくAPサーバのことだと思います)がダウンした時、データベースのバックアップが必要と書いているのですが、サーバがダウンすると、データベースのデータは失われるのでしょうか? 基本的に別のプロセスだと思うので、サーバがダウンしてもデータベースには影響がないように思えるのです。(もちろんサーバがダウンするので、クエリは送られなくなりますが) 以上、2点について、回答をお願いいたします。 よろしくお願いします。
回答: 例えば、2台のサーバで常にデータが同期される運用(OracleのRACのような運用)がされているなら、一方のサーバで障害が起きても、別のサーバに切り替える事で運用を続けることが出来ます。 システムの冗長化で障害時のリカバリーを迅速にするというのは、1台のサーバでは実現不可能です。 サーバ1台の構成と、サーバが複数台の構成の間には、リカバリの点で大きな差があります。 サーバのハードウェアクラッシュの場合に、データベースの内容(ハードディスクのデータ)が失われるとは限りません。冗長性の高いRAIDディスクシステムが使われているのが普通なので、データが助かる可能性は高いです。 しかし、社内で対応可能なデータのリカバリーとは異なり、ハードウェアの置き換え(新しいサーバ機を買って、設置して、設定して、、、)には、機種設定、販売店との折衝、予算確保、古いサーバの撤去と新しいサーバの設置作業、等々が必要で手間と時間が必要になります。 データベースの運用では、データベースの先に顧客が居ることを忘れてはなりません。 データベースが使えない事で業務に支障をきたしている顧客に対して、「サーバがダウンしてもデータベースには影響がないように思えるのです」などと言えるものではありません。 銀行のATMが故障している場合を考えてください。あなたは預金を引き出せなくて困っています。そこにやってきた銀行員が「お金は銀行の金庫に保管されていますから、安心してください」というのを聞いたら、自分に影響がないように思えますか?