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

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

新規登録して質問してみよう
ただいま回答率
85.48%
データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

4回答

1616閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

1クリップ

投稿2016/10/07 07:27

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

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

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

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

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

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

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

投稿2016/10/07 08:17

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/08 03:35

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

退会済みユーザー

2016/10/08 07:36

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

0

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

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

投稿2016/10/07 08:27

matsu

総合スコア702

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/08 07:37

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

0

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

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

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

投稿2016/10/07 08:05

A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/08 03:26

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

2016/10/08 03:51

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

退会済みユーザー

2016/10/08 07:36

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

0

ベストアンサー

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

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

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

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

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

投稿2016/10/07 07:55

iwamoto_takaaki

総合スコア2883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/08 03:06

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

2016/10/08 04:43

> この記事におけるサーバとはデータベースシステムのストレージ機器以外の部分という認識なのでしょうか? ストレージも含めてサーバです。通常データベースシステムとは、ストレージではなくDBサーバのサービスを指します。データベースマネージメントシステムでDBMSと呼び、一連のサービスを提供するものと考えています。 > そうだとすると、DBのデータに致命的な障害が発生した場合、ストレージ以外の機器が一つであろうと、二つであろうと、変わらないように思えるのですが。。 そうですね。ただ、ストレージを含めたサーバまるごと2つあれば、ストレージを含めたどの機器の障害にも対応出来ます。また、2つのサーバの同期をどのように取るかで対応できるデータの障害が変わってきます。その点についての説明が3.3からの構成になります。(ような障害に強くて、このような場合に弱いとは書いていないのが残念ですが・・・)
退会済みユーザー

退会済みユーザー

2016/10/08 07:36

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問