4.9 障害の種類とバックアップリカバリ|エディラボ

お問い合わせ・お申し込みはお気軽に「0120-876-544」

  • 研修コースをさがす
  • サービスをさがす
  • 新着情報
  • 無料セミナー/イベント情報

4.9 障害の種類とバックアップリカバリ

CacheFusion

次に、RACで最もパフォーマンス上問題となる更新処理と更新処理が競合を起こした場合の解決策を紹介します。
Oracle9iRACでは、すべてのブロック競合に対してCacheFusionを適用し、従来までの共有ディスククラスタの欠点を改善しています。

  • ● 高速なノード間通信によりデータブロックを転送
  • ● ディスクlOを介さずにデータの同期を実現
  • ● Read/Read、Read/Write、Write/Writeなどすべての競合に対して適用

Cache Fusionの仕組みを知ることによって、更新の競合が起きた場合のパフォーマンスの劣化はどこに原因があるかを理解することができます。
より効率よくRACを使うために、CacheFusionの仕組みを理解してください。
図を使ってCacheFusionの仕組みを説明します。

図4-50 従来の共有ディスククラスタの問題点1

図4-50 従来の共有ディスククラスタの問題点1

まず、Oracle8iまでの動きを配明します。

Oracle8iまでは、機敏のインスタンスで同じプロッタに対して更新競合が起きた場合、更新後のブロックを一度ディスクに書き出すことによって同期をとっていました。
更新競合が起きるたびにディスクヘの書き込みが発生し、パフォーマンス上のボトルネックになっていました(図4-50)。
インスタンス1であるブロックに対する更新要求が発生したので(①)、ブロックをディスクからインスタンス1に読み込みます(②)。

図4-51 従来の共有ディスククラスタの問題点2

図4-51 従来の共有ディスククラスタの問題点2

インスタンス1で、「赤」の行を「ピンク」に更新します(③)。

図4-52 従来の共有ディスククラスタの問題点3

図4-52 従来の共有ディスククラスタの問題点3

次に、同じブロックの違う行に対してインスタンス2から更新要求が出されました(④)。
すると、更新したブロックは、一度ディスクに書き戻され(⑤)、更新後の状態を全データベースで共有できるようにした後、インスタンス2に読み込まれます(⑥)。

図4-53 従来の共有ディスククラスタの問題点4

図4-53 従来の共有ディスククラスタの問題点4

インスタンス2は、ブロックの別の行に対して更新処理を行います。
Oracle8iまでは、更新処理が複数インスタンスで競合すると、必ずディスクヘの書き込み処理が生じていたため、更新処理が複数インスタンスから同時に発生するようなアプリケーションでは、パフォーマンス上あまり効果があがらないという状況になっていました。
Cache Fusionでは、このようなパフォーマンス上の問題を解決するため、更新処理が競合を起こした場合、ブロックをノード間ネットワークを使って拘束に転送することによってディスクIOを提言し、パフォーマンスの改革を図っています。

図4-54 CacheFusionによる問題点の解決1

図4-54 CacheFusionによる問題点の解決1

以前と同様、まずインスタンス1であるブロックの行に対して更新要求が出されると(①)、ディスクから該当ブロックがインスタンス1に読み込まれます(②)。

図4-55 Cache Fussionによる問題点の解決2

図4-55 Cache Fussionによる問題点の解決2

インスタンス1上で、「赤」の行が「ピンク」に変更されます(③)。

図4-56 Cache Fussionによる問題点の解決3

図4-56 Cache Fussionによる問題点の解決3

次に、同じブロックの違う行「白」に対して、インスタンス2から更新要求が出されました(④)。
すると、更新されたブロックは、ノード間ネットワークを通じて、インスタンス2に直接転送されます。

一方、インスタンス1には、インスタンス2の障害に備えて、インスタンス1で更新した状態のままパストイメージという状態で残されます。

図4-57 Cache Fusionによる問題点の解決4

図4-57 Cache Fusionによる問題点の解決4

インスタンス2で、「白」から「青」に更新処理が行われます(⑤)。 この間、ディスクヘの書き込み処理は一切行われません。

Cache Fusionが更新と更新の競合でも適用されることによって、ブロック競合に対する性能上の解決策として効果が高いことがわかると思います。
ただし、ここで注意したいことがあります。

1つは、インスタンス障害時の回復処理です。ディスクに書き込みを行っていないため、ディスク上のブロックから回復処理をすべて適用していくのでは非常に時間がかかってしまいます。
そこで、先ほどの図にあったように、パストイメージとよばれるブロックを、カレントインスタンスの前のインスタンスに残しておき、そこから回復できるようにしています。
このように、RACの場合、すべてのブロックがどのインスタンスによって現在どのような処理をされているか、現在のロックのレベルは何で、どのインスタンスがカレントでロックを取得しているのかといった状態をすべて管理される必要があります。

もう1つは、インスタンス間ネットワークのデータ量と転送速度が、RACパフォーマンスの鍵を握るという点です。
これに対しては、ネットワーク自体の速度向上と、アプリケーションパーティショニングというアプリケーションを実行するインスタンスを分ける操作が解決策となります。
これらの事柄について、続けて見ていきます。

データベース設計についてもっと学びたいなら

> Oracle設計 研修コース一覧

具体的な作業イメージが掴みづらい概念設計を詳しく学べるコースです。
技術力に定評のあるトレーナー陣がデータベース設計作業をじっくり丁寧に解説し、スキルアップをサポートします。
また、ご要望に応じて一社向けに研修コースをカスタマイズすることも可能です。

スケジュールガイド

初めての方へ

  • エディフィストラーニングの研修の特長
  • お申し込みの流れ
  • よくあるご質問

4.9 障害の種類とバックアップリカバリ

エディフィストラーニングHOME