Active-Activeレプリケーション:

Active-Active レプリケーション:
高可用性を実現するための考慮点
概要
SharePlex® for Oracle のような Oracle の GoldenGate より
いまや多くの組織が高可用性を担保するために Active-Active レプ
低コストのレプリケーション技術はこの目標の実現を手助けします。
リケーションを導入しています。このホワイトペーパーでは組織全
体にわたり簡単かつ確実に Active-Active レプリケーション戦略を
組織はレプリケーションを用いてデータベースやサーバを拡張さ
実施する方法をご紹介します。
せ、停止時間を最小限におさえることができます。そのメソッドの
中で最も有望なのは Active-Active レプリケーション(ピアツーピ
はじめに
ア、マスタツーマスタ、マルチアクティブ・サーバ・レプリケーショ
データの重要性が増すにつれ、システムのクラッシュや誤動作によ
ンとも呼ばれています)です。Active-Active レプリケーションで
る計画外の停止であれ、Oracle、オペレーティングシステム、ア
プリケーションのパッチやアップグレードの適用やストレージ交換
のための計画的な停止であれ、システムの停止による可用性の低下
の防止に妥協は許されません。計画停止についての考え方は 10 年
前と異なり、人々は停止が計画的なのか計画外なのかを区別しない
で「停止は停止」だと考えています。あらゆる組織がこの点を念頭
に置いてアップタイムの増加を目指し、多くは 5 つの 9
(99.999%)、
つまり、年間の計画外のダウンタイムを 6 分未満にするように努力
しています。いうまでもなく、これを実現することは極めて困難
です。
はアプリケーションの水平分散技術を複数のサーバに対し実行する
ことで、変更が複数のサーバに伝達されます。全てが正しく処理さ
れた場合、エンドユーザは使用アプリケーションの停止に気付くこ
とはありません。
このホワイトペーパーでは高可用性を担保するために Active-Active
レプリケーションを導入する際の代表的な考慮点をご紹介します。
Active-Active レプリケーションにおける高可用性を実現するための考慮点
Active-Active レプリケーションにおける
• Active-Active 構成の最大ノード数の検討
アプリケーションの水平分散技術が確実にな
•
るよう、以下の点を考慮する必要があります。
•
ユニークキーの競合
•
トリガー
•
アップデートジョブ
•
アプリケーションの配備(DDL)
•
ネットワーク接続性
•
競合の解消
•
競合の回避
数です。
データベースのリカバリとシーケンスのリセッ
アプリケーションの水平分散技術ではユニー
ト
クキーの競合に対処する方法を考慮する必要
一意性競合の対処方法を選ぶ際はデータベー
のシーケンスが生成します。同一のキー値が
複数生成される可能性があるため、アプリ
慮点を理解すること
ケーションが複数のサーバに分散された後
は、停止の回避やレ
で使用することはできません。
プリケーションの目
ユニークキーの作成方法
スのリカバリ方法とシーケンスを正しい数値
にリセットする方法を念頭に置く必要があり
ます。
•
に、同じ値を持つシーケンスを複数のサーバ
標 達 成に役 立ちま
競合しないユニークキーを作成する方法を 2
す。
1.それぞれのサーバシステムに独自の範囲の割
つご紹介します。
り当てる 例えば、以下のように、各サーバ
に対し独自の範囲を割り当てることができま
す。
サーバ 1 ― 1-999,999,999 の範囲
サーバ 2 ― 1,000,000,000-1,999,999,999
の範囲
サーバ 3 ― 2,000,000,000-2,999,999,999
の範囲
…
2.それぞれのサーバシステムで異なった値の集
合を使用する 例えば、サーバが 2 台ある場
合は、以下のようにサーバ 1 では奇数値を、
サーバ 2 では偶数値を使用することができま
す。
サーバ 1 ― 奇数値を生成するシーケンスを使
メソッド 1 でシーケンスを再現するには範囲
内の最大値を求めユニークキーを検索します。
例:
“max (col) where col > min_range
•
and col < max_range”
メソッド 2 では最大値を検索します。ノード番
号によっては次に使用可能な値を設定すること
が必要になります。
例:
“(Trunc((max (col) + n) / n)) + node_
number”
上記において n はレプリケーション時のノー
ド数で、node_number は割り当てられた
ノード番号です。
この式は任意のノードに使用することができ
ます。
トリガ
行レベルトリガ
レプリケーション時にデータを変更する行レ
ベルトリガを WHEN 句で設定する必要があ
ります。SharePlex for Oracle はターゲッ
用します。
トにデータを適用する時に変更をトリガしな
CREATE SEQUENCE supplier_seq
MINVALUE 1 START WITH 1
INCREMENT BY 2 CACHE 20;
サーバ 2 ― 偶数値を生成するシーケンスを使
いため、SharePlex を使用する際はこのよ
用します。
CREATE SEQUENCE supplier_seq
MINVALUE 1 START WITH 2
INCREMENT BY 2 CACHE 20;
ノード数が 3 以上の場合でも同様のルール
を適用することができますが、以下が必要に
なります。
• Active-Active 構成の各サーバへのノード番
号の割り当て
2
CREATE SEQUENCE sequence_name
MINVALUE 1 START WITH
node_number
INCREMENT BY n CACHE 20;
上 記 に お け る node_number は ActiveActive 構成で割り当てられるノード番号で、
n は Active-Active 構成における最大ノード
ユニークキーの競合
があります。ユニークキーは通常、Oracle
7 つの代表的な考
シーケンス作成時の以下のテンプレートの使
用
うな対策が必要になります。既存トリガのた
めには、全てのトリガを WHEN 句で設定す
るスクリプトを用意していますのでご使用く
ださい。一方、新規のトリガについては、ア
プリケーションの配備時に WHEN 句の存在
を確認する必要があります。SharePlex for
Oracle は全てのトリガに WHEN 句を追加
するスクリプトを提供しています。ソフト
ウェアに付属するこのスクリプトのファイル
名は sp_add_trigger.sql です。
文レベルトリガ
ネットワーク接続性
特定のユーザによる変更を分離する効果的な
システムが正常な状態であっても停止状態で
方法はありません。複製したデータを変更す
あってもアプリケーションのルーティングは
る文レベルトリガは使用しないでください。
必要です。顧客の要求による接続には位置情
報もしく IP に基づいた持続性などの何らか
アップデートジョブ
のルーティング要素が必要です。また、停止
複数のサーバで複数のジョブを実行すると衝
に備えて予備のシステムを用意しておく必要
突が発生する可能性があるため、どのサーバ
でアップデートジョブを実行するのかを考慮
する必要があります。フェイルオーバープロ
セスはジョブの有効化と無効化を制御できる
ようにしてください。制御できない場合は競
もあります。複数のサーバを使用している場
合は、1 台のサーバが停止したら別のサーバ
に接続するようにアプリケーションを設定す
る必要があります。
合が発生する可能性があります。
SharePlex はサーバ間のデータ送信にこれ
アプリケーションの配備(DDL)
ケーションに必要となるネットワーク帯域幅
ダウンタイムのあるシナリオでは、アプリ
ケーションと DDL の変更を同一システム上
で同時に実施します。
•
カラムを追加する場合は最初にカラムを追加
した後に、そのカラムを使うようにアプリ
ケーションをアップデートします。
•
らのネットワーク接続を活用します。レプリ
の確保にまつわる問題点も解決しなければい
けません。さらに、SharePlex のアクティ
ビティのネットワーク分離やルーティングも
検討する必要があります。ネットワーク帯域
幅を考慮しないと、バックログが発生する場
合があります。
カラムを削除する場合は最初にデータベース
の更新を停止させてからカラムを削除し、そ
の後にアプリケーションを更新します。
ダウンタイムのない Active-Active シナリ
オでは SharePlex で変更を伝達することが
できます。 SharePlex には「DDL の複製」
競合の解消
データレプリケーションでは INSERT、UP-
DATE、DELETE の 3 種類の操作で競合が発
生する可能性があります。
•
ンの場合、データベースの設計が正しけれ
と「ユーザによる DDL の制御」の 2 つのオ
ば INSERT 文の実行は競合を起こさないは
プションがあります。たとえダウンタイムが
ずですので、INSERT 文の実行での競合は
なくても完全な制御が可能になりますが、変
UNIQUE キー違反によるものとされます。
通 常、UNIQUE キ ー は SEQUENCE 文 が
更の配置は 2 段階に分ける必要があり、変
作成します。一意性を維持するためにピア
更手順はトランザクションが追加と削除のど
ツーピア環境でシーケンス生成を行う仕組み
ちらであるのかで異なります。
• DLL でカラムもしくはテーブルを追加する場
合はデータを追加してはいけません(アプリ
は複数あります。
•
ターゲットサーバにカラムができる前にター
ゲットサーバへ複製されるのを阻止するため
です。第 2 段階では全てのサーバ上で新しい
カラムの追加を含むアップデートを実施し、
アプリケーションが新しいカラムを使用でき
るようにします。
• DDL でカラムやテーブルを削除する場合は
第 1 段階でアプリケーションの設定を変更
することで削除するカラムの使用を禁止した
後、このバージョンのアプリケーションが使
用されるように全システムをアップデートし
ます。第 2 段階では各サーバにおいてカラム
を削除します。
3
DELETE ― DELETE 文の実行で発生した競
合は、データの最後のサイクルになるため、
ケーションによる新しいカラムの使用を禁止
します)。これは、新しいカラムのデータが
INSERT ― Active-Active レプリケーショ
無視されます。
•
UPDATE ― 大きな問題につながる可能性が
あるのは UPDATE 文の実行で発生する競合
です。UPDATE 文の実行時の競合の解消に
組織が使用している方法をいくつか紹介しま
す。
タイムスタンプによる解消 ― 最後に実行され
たアップデートを有効にします。サーバは、同
じ行に存在する最後の UPDATE より古いタイ
ムスタンプの UPDATE を無視します。 UP-
DATE のタイムスタンプが最後のアップデート
より新しい場合はそちらのレコードが適用され
ます。
正 常 時 および停 止
時 の た め の アプリ
ケーションルーティ
ングが必要です。
ホストによる解消 ― Active-Active 環境で
•
アプリケーションによってはユーザのログイ
は、データの発信元に基づいた処理の優先度
ン情報に基づいた分離を行うことができま
を設定することができます。このシナリオで
す。ユーザの変更を特定のマシンに限定する
は、優先度の低いホストからのデータは競合
ことで、競合を回避します。
時に無視され、優先度の高いサーバからの
データが適用されます。
ビジネスロジックによる解消 ― レコードの
処理はビジネスロジックが決定します。ビジ
ネスロジックは組織によって異なるため、こ
回避メカニズムが必ず全ての競合を防ぐこと
ができるとは限りませんが、発生を対応可能
な件数におさえることはできます。競合回避
のシナリオの競合解消メカニズムはその組織
手段を導入すれば、実際に発生した競合を数
の独自のコードによって提供されます。
個のテーブルに絞り込むことさえできるよう
になります。そうすれば競合解消プロシー
SharePlex for Oracle はタイムスタンプ
ジャが必要になるのはそれらの数個のテーブ
およびホストによる競合解消プロシージャを
ルだけになります。
実装しています。また、PL/SQL を使用す
るビジネスロジックによる解消プロシージャ
結論
の作成機能も備えています。PL/SQL によ
多くの組織は停止時間を最小限に抑え、計画
り、データ競合を解消する任意のビジネスロ
ジックを適用することができるのです。ここ
で大切なのは目的である競合の解消と、全
ノードにおけるデータ同期の復元を実現させ
ることです。
競合の回避
外の年間停止時間が 6 分という、厳しい目
標を目指し努力しています。適正な Active-
Active レ プ リ ケ ー シ ョ ン の 実 施 は ア プ リ
ケーションを複数のサーバにスケールするこ
とで計画停止と計画外停止の両方を含む全て
の停止をなくすことができます。適正な実施
とは、ユニークキーの競合、アップデートジョ
もちろん、競合の回避は、競合の解消より安
ブのスケジューリング、競合解消方法、競合
上がりですし、実際問題として、競合を回避
回避方法などを含む要因を考慮することを意
できれば経費ゼロでデータの完全性を維持す
味します。このホワイトペーパーで取り上
ることができます。ロジックが複雑過ぎるた
げた 7 つの代表的な考慮点を理解した上で、
めに、自動処理によるターゲット上の競合解
SharePlex for Oracle など強力なデータ
消ができない場合があります。その場合は、
レプリケーションソリューションを導入する
競合の回避が最良のシナリオになります。
と、Active-Active レプリケーションによ
るアップタイム増加の目標達成が容易になり
競合を回避する方法を 2 つご紹介します:
• Web ベースのアプリケーションが 1 つのト
ランザクションを処理している間、同じ接続
が維持されるように設定します。そうすると、
1 人の顧客による変更が 1 台のサーバに限定
されるため、競合が低減します。
4
ます。
Shar ePl e x f or
Oracle には、タイ
ムスタンプおよびホ
ストによる競合解消
プロシージャが組み
込まれています。
For More Information:
© 2012 Dell, Inc. ALL RIGHTS RESERVED. This document
contains proprietary information protected by copyright.
No part of this document may be reproduced or
transmitted in any form or by any means, electronic or
mechanical, including photocopying and recording for
any purpose without the written permission of Dell, Inc.
(“Dell”).
Dell, Dell Software, the Dell Software logo and products—
as identified in this document—are registered trademarks
of Dell, Inc. in the U.S.A. and/or other countries. All other
trademarks and registered trademarks are property of
their respective owners.
The information in this document is provided in
connection with Dell products. No license, express or
implied, by estoppel or otherwise, to any intellectual
property right is granted by this document or in
connection with the sale of Dell products. EXCEPT AS
SET FORTH IN DELL’S TERMS AND CONDITIONS AS
SPECIFIED IN THE LICENSE AGREEMENT FOR THIS
PRODUCT, DELL ASSUMES NO LIABILITY WHATSOEVER
AND DISCLAIMS ANY EXPRESS, IMPLIED OR
STATUTORY WARRANTY RELATING TO ITS PRODUCTS
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTY OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN
NO EVENT SHALL DELL BE LIABLE FOR ANY DIRECT,
INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL
OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT
LIMITATION, DAMAGES FOR LOSS OF PROFITS,
BUSINESS INTERRUPTION OR LOSS OF INFORMATION)
ARISING OUT OF THE USE OR INABILITY TO USE THIS
DOCUMENT, EVEN IF DELL HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES. Dell makes
no representations or warranties with respect to the
accuracy or completeness of the contents of this
document and reserves the right to make changes to
specifications and product descriptions at any time
without notice. Dell does not make any commitment to
update the information contained in this document.
About Dell
Dell Inc. (NASDAQ: DELL) listens to customers and delivers
worldwide innovative technology, business solutions and
services they trust and value. For more information,
visit www.dell.com.
If you have any questions regarding your potential use of
this material, contact:
Dell Software
5 Polaris Way
Aliso Viejo, CA 92656
www.dell.com
Refer to our Web site for regional and international
office information.
5
White paper-ActActRep-US-EW-2012-10-8