質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.10%

データベースクラスタについて

解決済

回答 4

投稿

  • 評価
  • クリップ 1
  • VIEW 1,223
退会済みユーザー

退会済みユーザー

データベースクラスタについての質問です。
こちらのサイトを見て勉強していたのですが、いまいちわからない記述がいくつかあります。
https://thinkit.co.jp/story/2010/10/05/1784

「障害発生時、サーバーが1台の場合は、あらかじめバックアップしておいたデータを復元し、これにバックアップ以降の更新ログ(トランザクション・ログ)を適用して、データベースを復旧する必要があります。バックアップしただけでは、バックアップ取得後の変更が失われてしまうので、バックアアップ処理以降の変更を反映する必要があるのです。」

システムのどこに障害が発生するのか明記されていないため、予測になりますが、おそらく上の文章でデータベースについて述べているため、データベースに障害が発生した時、ということになるかと思います。
そうすると、リストアして、リカバリーして、ロールフォワードしなければならないわけですが、この時にサーバの台数は関係あるのでしょうか?
上の文章では「サーバーが一台の場合」はと書かれているのですが、関係あるように思えません。

「サーバーがハードウエア障害によってクラッシュした場合は、新しいサーバーを入手してデータベースのバックアップを復元し、さらに変更を反映する必要があります。このため、ソフトウエア障害に比べて復旧までの時間が長くなり、数日単位の時間がかかります。データベースの運用として、許容されることではありません。」
上の文章ではサーバ(おそらくAPサーバのことだと思います)がダウンした時、データベースのバックアップが必要と書いているのですが、サーバがダウンすると、データベースのデータは失われるのでしょうか?
基本的に別のプロセスだと思うので、サーバがダウンしてもデータベースには影響がないように思えるのです。(もちろんサーバがダウンするので、クエリは送られなくなりますが)

以上、2点について、回答をお願いいたします。
よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+2

例えば、2台のサーバで常にデータが同期される運用(OracleのRACのような運用)がされているなら、一方のサーバで障害が起きても、別のサーバに切り替える事で運用を続けることが出来ます。
システムの冗長化で障害時のリカバリーを迅速にするというのは、1台のサーバでは実現不可能です。
サーバ1台の構成と、サーバが複数台の構成の間には、リカバリの点で大きな差があります。

サーバのハードウェアクラッシュの場合に、データベースの内容(ハードディスクのデータ)が失われるとは限りません。冗長性の高いRAIDディスクシステムが使われているのが普通なので、データが助かる可能性は高いです。
しかし、社内で対応可能なデータのリカバリーとは異なり、ハードウェアの置き換え(新しいサーバ機を買って、設置して、設定して、、、)には、機種設定、販売店との折衝、予算確保、古いサーバの撤去と新しいサーバの設置作業、等々が必要で手間と時間が必要になります。

データベースの運用では、データベースの先に顧客が居ることを忘れてはなりません。
データベースが使えない事で業務に支障をきたしている顧客に対して、「サーバがダウンしてもデータベースには影響がないように思えるのです」などと言えるものではありません。

銀行のATMが故障している場合を考えてください。あなたは預金を引き出せなくて困っています。そこにやってきた銀行員が「お金は銀行の金庫に保管されていますから、安心してください」というのを聞いたら、自分に影響がないように思えますか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/10/08 12:35

    データベースの運用の実際まで言及していただきありがとうございます。
    一つ質問なのですが、例えばディスクの構成を冗長性のないものにしていたとしてください。
    そのようなディスクでサーバのハードウェア障害にはデータは失われるのでしょうか?
    サーバとストレージ(データベース)はここでは切り離して考えていると思うのですが、サーバがダウンしてしまったことで、データが失われるというのはよくある話なのでしょうか?(仮にデータベースに影響がない場合でもサーバがダウンしてしまうことによる、不利益については理解できました)

    キャンセル

  • 2016/10/08 16:36

    回答ありがとうございましたl。

    キャンセル

checkベストアンサー

0

上の文章では「サーバーが一台の場合」はと書かれているのですが、関係あるように思えません。

これは、サーバ1台で運用していて、DBのデータに致命的な障害が発生した場合のことを言っているようです。2台での構成をするとこんなにいいという話が続いています。

上の文章ではサーバ(おそらくAPサーバのことだと思います)がダウンした時、データベースのバックアップが必要と書いているのですが、サーバがダウンすると、データベースのデータは失われるのでしょうか? 

DBサーバのハードウェアの話です。データだけなら数時間で復旧可能だけどハードが壊れたら調達含めると大変なことになるよという話です。(2010年の記事なのでクラウド運用は一般的ではなかった。)

APサーバだけではなくDBサーバも冗長化したほうかいいよねという話をしているようです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/10/08 12:06

    この記事におけるサーバとはデータベースシステムのストレージ機器以外の部分という認識なのでしょうか?
    そうだとすると、DBのデータに致命的な障害が発生した場合、ストレージ以外の機器が一つであろうと、二つであろうと、変わらないように思えるのですが。。

    キャンセル

  • 2016/10/08 13:43

    > この記事におけるサーバとはデータベースシステムのストレージ機器以外の部分という認識なのでしょうか?

    ストレージも含めてサーバです。通常データベースシステムとは、ストレージではなくDBサーバのサービスを指します。データベースマネージメントシステムでDBMSと呼び、一連のサービスを提供するものと考えています。

    > そうだとすると、DBのデータに致命的な障害が発生した場合、ストレージ以外の機器が一つであろうと、二つであろうと、変わらないように思えるのですが。。

    そうですね。ただ、ストレージを含めたサーバまるごと2つあれば、ストレージを含めたどの機器の障害にも対応出来ます。また、2つのサーバの同期をどのように取るかで対応できるデータの障害が変わってきます。その点についての説明が3.3からの構成になります。(ような障害に強くて、このような場合に弱いとは書いていないのが残念ですが・・・)

    キャンセル

  • 2016/10/08 16:36

    回答ありがとうございました。

    キャンセル

0

https://thinkit.co.jp/story/2010/10/05/1784の方が言われているは、クラスタを説明する際にデータべースサーバが一台(非クラスタ)とクラスタデータベース(通常複数台)を比較するための記述と思われますので、この場合のサーバとはデータベースサーパを指しているのではないでしょうか?
他のAPサーバやファイルサーバ等は含んでいないと思います。

ハードウエア障害の下りでは、サーバの調達を行い(同じ大きさのサーバを2台用意していない)データベースサーバを構築して、さらにデータリカバリーするとなると、時間が大変掛かる事になるとを言いたかったのではないでしょうか?なのでここのサーバもデータベースサーバと考えて良いかと思います。

その後の高可用性での稼働時間のフォーナイン(99.99)の話に繋げるためかな。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/10/08 12:26

    データベースというのはストレージで、データベースサーバというのはデータベースシステムを構成するストレージ以外の部分という認識でよろしいでしょうか?
    そのように考えると、ハードウェア障害の時にデータベースをリカバリーする必要があるというのは、普通の私たちが普段使っているようなパソコンでいきなり電源が落ちると、データは基本的になくなってしまう、というのと同じことと考えていいのですか?

    キャンセル

  • 2016/10/08 12:51

    クラスタに説明の対比の文章ですので、データベースサーバは、エンジンとストレージを合わせたものとして読んでも良いかと思います。(単純な形として) データベースのハード障害例として、ディスククラッシュとして考え、データ復帰が難しい場合は、ディスクを交換して、システムを構築して、データをリカバリする作業を想定して、クラスタの利点を理解するに繋げてはどうでしょうか。

    キャンセル

  • 2016/10/08 16:36

    回答ありがとうございました。

    キャンセル

0

勝手に行間を埋めさせてもらいました。こんな感じの行が隠れているのではないでしょうか。

一方、サーバが2台以上の場合(バックアップサーバ含む)、データが同期されておりごく少量の更新ログを適用するだけですむためサーバが1台だけの場合と比べ復旧に手間が掛かりません。
あくまでこれはソフトウェア障害の場合です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/10/08 16:37

    回答ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.10%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る