本記事では、クロスクラウドの1プライマリ・複数スタンバイアーキテクチャを用いて高可用性データベースを構築するためのベストプラクティスを紹介します。1プライマリ・複数スタンバイアーキテクチャは、1プライマリ・1スタンバイアーキテクチャと比較して、より高いディザスタリカバリの冗長性を提供します。特定のスタンバイインスタンスに障害が発生した場合でも、他のスタンバイインスタンスが利用可能なため、事業継続性に対する要求が高い重要な業務システムに適しています。クロスクラウドのプライマリ/スタンバイデータベースによる高可用性の概念と原理の詳細については、クロスクラウドのプライマリ/スタンバイデータベースによる高可用性の実現を参照してください。
説明
現在、この機能は許可リスト制で提供されています。ご利用を希望される場合は、テクニカルサポートにお問い合わせください。
1プライマリ・複数スタンバイアーキテクチャの概要図:

典型的なユースケース
ある大手eコマースプラットフォームのコア取引システムは、7×24時間の稼働が求められ、データの一貫性と事業継続性に対する要求が極めて高いです。同プラットフォームはAlibaba Cloudにプライマリデータベースインスタンスをデプロイし、日常的な注文処理、決済取引、在庫管理などのコア業務を担っています。
ビジネス上の課題:
単一のクラウドサービスプロバイダーの障害により、業務システム全体が中断し、巨額の経済的損失を被る可能性があります。
複数エリアのコンプライアンス要件を満たす必要があり、データを異なるエリアに配置する必要があります。
ディザスタリカバリの切り替えの所要時間に対する要求が極めて高く、RTO(復旧目標時間)は秒単位で制御する必要があります。
より高いディザスタリカバリの冗長性が必要であり、いずれかのスタンバイインスタンスに問題が発生しても、他のスタンバイインスタンスが利用可能である必要があります。
実践的な解決策 同企業はクロスクラウドの1プライマリ・マルチスタンバイアーキテクチャを採用し、Tencent Cloudに3つのスタンバイインスタンスをデプロイし、それぞれ異なるアベイラビリティゾーンに配置しています。プライマリインスタンスはネットワーク直接接続方式で3つのスタンバイインスタンスにリアルタイムでデータを同期し、データの強整合性を確保します。
プライマリインスタンスに障害が発生した場合、データ同期が最も完全で、遅延が最も少なく、可用性が最も高いスタンバイインスタンスを新しいプライマリインスタンスとして選択し、秒単位での切り替えを実現して、業務の中断を防ぎます。
前提条件
現在のところ、トランザクション型インスタンスのみがクラウド間のプライマリ/スタンバイデータベースをサポートしています。
プライマリ/スタンバイインスタンスのストレージアーキテクチャはシェアードナッシングです。
スタンバイインスタンスは、プライマリインスタンスとインスタンスタイプ、支払い方法、データベースバージョン、デプロイメントプランを一致させる必要があります。
データベースバージョンはV4.2.5.4以降である必要があります(複数のスタンバイインスタンスの作成をサポートしており、現在最大で3つのスタンバイインスタンスを作成できます)。
現在ログインしているOceanBase Cloudアカウントのロールがプロジェクト所有者またはプロジェクト管理者であること。
手順
プライマリインスタンスの作成
OceanBase CloudコンソールでAlibaba Cloudプライマリインスタンスを作成し、データベースのバージョンがV4.2.5.4以上であることを確認します。
OceanBase Cloudコンソールにログインします。初めてインスタンスを作成する場合は、ページの指示に従ってインスタンスの作成をクリックしてください。
左側のナビゲーションバーでインスタンスリストをクリックします。
ページの右上隅でインスタンスの作成をクリックし、インスタンス作成ページに進みます。
インスタンスタイプでトランザクション型を選択します。
支払い方法(月額固定または従量課金)を選択します。
クラウドサービスプロバイダーでAlibaba Cloudを選択し、リージョンを選択します。
クラウドサービスプロバイダー対応リージョンAlibaba Cloud 北京、杭州 インスタンス設定を選択します:
パラメータ説明インスタンス名 インスタンス名を数字、英字、アンダースコア、ハイフンのみを使用した2~64文字で設定してください。 ストレージアーキテクチャ シェアードナッシング を選択します(現在、クロスクラウドのプライマリ/スタンバイデータベースではシェアードナッシングアーキテクチャのみサポートされています)。 データベースバージョン V4.2.5.4以降のバージョンを選択します(複数のスタンバイインスタンスを作成する場合)。 デプロイメントプラン デプロイメントプランを選択します(単一データセンターデプロイ、二重データセンターデプロイ、またはマルチデータセンターデプロイ)。 アベイラビリティゾーン ターゲットのアベイラビリティゾーンを選択します。ネットワーク遅延を確認 からネットワーク遅延が低いアベイラビリティゾーンを選択できます。ネットワーク遅延を低減するため、業務アプリケーションに近いリージョンを選択することを推奨します。 コンピューティングスペック コンピューティングスペックを選択します。クラウドプロバイダーごとにサポートされるコンピューティングスペックは異なります。 ストレージディスクタイプ ESSD PL0とESSD PL1の2種類をサポートしています。 ストレージスペック コンピューティングスペックに応じてストレージスペックを選択します。 購入期間、数量、および自動更新の有無を選択します(月額固定支払い方式のみ表示)。
設定概要で、パラメータ設定と購入数量が正しいか確認し、確認後、サービス利用規約に同意し、注文確定をクリックします。
支払いページで注文情報を確認し、利用可能なクーポンと支払い方法を選択した後、支払いをクリックして支払います。
支払いが完了したら、インスタンスリストで作成したばかりのインスタンスを確認します。
詳細については、インスタンスの作成を参照してください。
スタンバイインスタンスの作成
(既にログインしている場合はこの手順をスキップします)OceanBase Cloudコンソールにログインします。
左側のナビゲーションバーで、インスタンスリストをクリックします。
インスタンスリストで対象のプライマリインスタンス(Alibaba Cloudのプライマリインスタンス)を見つけ、クラスタ名の後ろのアイコンをクリックし、スタンバイインスタンスの作成を選択します。
ポップアップウィンドウで、スタンバイインスタンスが属するプロジェクトを選択し、スタンバイインスタンスの作成をクリックします。
注文ページに移動し、インスタンス情報を選択します:
パラメータ説明インスタンスタイプ トランザクション型 支払い方法 従量課金 クラウドサービスプロバイダー Tencent Cloudを選択します リージョン ネットワーク遅延を低減し、アクセス速度を向上させるために、業務に近いリージョンを選択することを推奨します。 インスタンス名 スタンバイインスタンス名を数字、英字、アンダースコア、ハイフンのみを使用した2~64文字で設定してください。 バージョン データベースのバージョンはV4.2.5.4以上である必要があります(複数のスタンバイインスタンスを作成する場合は特に)。 デプロイメントプラン プライマリインスタンスと一致させてください アベイラビリティゾーン ネットワーク遅延を見るをクリックして、各リージョンのネットワーク遅延状況を確認し、適切なアベイラビリティゾーンを選択してください。より高いディザスタリカバリの冗長性を提供するため、複数のスタンバイインスタンスを異なるアベイラビリティゾーンにデプロイすることを推奨します。 コンピューティングスペック プライマリインスタンスと一致させるか、ビジネスニーズに応じて調整してください。スタンバイインスタンスの最小ノード構成は、プライマリインスタンスのノード構成 × 0.33以上である必要があります。 ストレージ構成 プライマリインスタンスと一致させるか、プライマリインスタンスのストレージ構成より大きく設定してください。 プライマリ/スタンバイデータベース間のネットワーク同期方式 ネットワーク直接接続とログアーカイブの2種類の同期方式をサポートしています。詳細は以下を参照してください。 プライマリ/スタンバイデータベースインスタンスのネットワーク同期方式を設定します:
ネットワーク直接接続:リアルタイム性が強く、レイテンシが低い(秒単位)ため、データ同期のリアルタイム性に対する要求が高いシナリオに適しています。
ログアーカイブ:レイテンシがやや高い(分単位)ため、ネットワーク転送コストを削減する必要があるシナリオに適しています。
説明
1プライマリ・複数スタンバイアーキテクチャでは、すべてのスタンバイインスタンスは同じネットワーク同期方式を使用する必要があります。既にスタンバイインスタンスが存在する場合は、既存のスタンバイインスタンスと同じネットワーク同期方式を選択してください。一度選択すると、後から変更できません。
設定概要で、パラメータ設定と購入数が正しいか確認し、確認後、サービス利用規約に同意し、注文確定をクリックします。
支払いページで注文情報を確認し、利用可能なクーポンと支払い方法を選択した後、支払いをクリックしてお支払いを行います。
インスタンスリストに戻り、スタンバイインスタンスの作成が成功したことを確認します。インスタンスリストでは、プライマリインスタンスとスタンバイインスタンスの関連性を確認できます。
(オプション)複数のスタンバイインスタンスを作成する場合は、手順3~9を繰り返し、同一のプライマリインスタンスに対して2番目および3番目のスタンバイインスタンスを作成し、1プライマリ・複数スタンバイアーキテクチャを実現します。
説明
- すべてのスタンバイインスタンスは同じネットワーク同期方式を使用する必要があります。
- 複数のスタンバイインスタンスを異なるアベイラビリティゾーンにデプロイし、単一障害点の影響を回避することを推奨します。
- 今後の管理と運用を容易にするため、統一された命名規則の使用を推奨します。
- 現在、一つのプライマリインスタンスに対して最大3つのスタンバイインスタンスを作成できます。
テナントの作成とデータのインポート
プライマリインスタンスでテナントを作成し、業務データをインポートします。すべてのスタンバイインスタンスは、プライマリインスタンスのデータを自動的に同期します。
データ同期の説明:
スタンバイインスタンスの作成後、プライマリインスタンスからのデータ同期が自動的に開始されます。
すべてのスタンバイインスタンスはプライマリインスタンスから直接データを同期します。スタンバイインスタンス間ではカスケード同期は発生しません。
データ同期はリアルタイムです。ネットワーク直接接続方式では遅延は通常秒単位ですが、ログアーカイブ方式では分単位の遅延が発生する可能性があります。
プライマリインスタンスでテナントを作成します。詳細については、テナントの作成を参照してください。
テナントに業務データをインポートします。詳細については、データ移行を参照してください。
すべてのテナントで専用ネットワークアドレスが作成されていることを確認します。詳細については、接続文字列の取得を参照してください。
データ同期状態を確認します:
スタンバイインスタンスのテナントダッシュボードに移動し、デプロイメント関係図でデータ同期の状態と遅延を確認できます。
データ同期が完了してからグローバルアドレスの設定を行うことを推奨します。
ネットワーク直接接続方式では、同期遅延を10秒以内に抑えることを推奨します。ログアーカイブ方式では、同期遅延を5分以内に抑えることを推奨します。
グローバルアドレスの設定
グローバルアドレスは、ビジネスへの影響を最小限に抑えてインスタンスを切り替えるための重要な設定です。グローバルアドレスを設定することで、業務アプリケーション側で接続先のURLを変更する必要がなく、リクエストは常に現在のプライマリインスタンスにルーティングされます。
前提条件:プライマリ・スタンバイデータベースのすべてのテナントで専用ネットワークアドレスが作成済みであること。詳細については、接続文字列の取得を参照してください。
実践上の推奨事項:
プライマリ1インスタンス・スタンバイ複数インスタンス構成では、各スタンバイインスタンスごとにグローバルアドレスを設定する必要があります。
認識しやすく管理しやすいよう、意味がわかりやすいグローバルアドレスのプレフィックスを使用することを推奨します。
設定を開始する前に、プライマリテナントとスタンバイテナントの専用ネットワークアドレスを準備しておくことを推奨します。
OceanBase Cloudコンソールにログインします。
左側のナビゲーションバーで、インスタンスリストをクリックします。
インスタンスリストで対象のクラスタ(プライマリインスタンス)を見つけ、インスタンスの左側にある矢印をクリックしてインスタンスのテナント情報を展開します。次に、対象のテナント名をクリックして、テナントダッシュボードに移動します。
デプロイメント関係図のプライマリ・スタンバイデータベースのグローバルアドレスの後ろにある接続文字列の取得をクリックします。
ポップアップウィンドウに、プライマリ・スタンバイデータベースのグローバルアドレスプレフィックス、プライマリテナントの専用ネットワークアドレスIP、スタンバイテナントの専用ネットワークアドレスIPを入力します。
プライマリ・スタンバイデータベースのグローバルアドレスプレフィックス:小文字、数字、ハイフン(-)で構成されるカスタムプレフィックス。先頭は文字、末尾は数字または文字。文字数は10~40文字。プレフィックスは一意である必要があります。
プライマリテナントの専用ネットワークアドレスIP:プライマリインスタンスのテナントダッシュボードに移動し、デプロイメント関係図の専用ネットワークアドレスの後ろにある接続文字列の取得をクリックして専用ネットワークアドレスをコピーします。
スタンバイテナントの専用ネットワークアドレスIP:最初のスタンバイインスタンスのテナントダッシュボードに移動し、デプロイメント関係図の専用ネットワークアドレスの後ろにある接続文字列の取得をクリックして専用ネットワークアドレスをコピーします。
OKをクリックして、最初のスタンバイインスタンスのグローバルアドレス設定を完了します。
グローバルアドレスの設定が正常に完了したかどうかを確認します。テナントダッシュボードのデプロイメント関係図で、設定済みのグローバルアドレス情報を確認できます。
(オプション)他のスタンバイインスタンスにもグローバルアドレスを設定する場合は、手順3~7を繰り返し、各スタンバイインスタンスごとにグローバルアドレスを設定します。
説明
- 各グローバルアドレスには異なるプレフィックスを設定する必要があります。プレフィックスは一意である必要があります。
- 各スタンバイインスタンスにグローバルアドレスを設定することを推奨します。これにより、任意のスタンバイインスタンスが新しいプライマリインスタンスとしてサービスを提供できるようになります。
- 設定完了後、グローバルアドレスへの接続をテストし、設定が正しいことを確認することを推奨します。
ディザスタリカバリ切り替え
プライマリインスタンスに障害が発生した場合、または計画的な切り替えが必要な場合、スタンバイインスタンスをプライマリインスタンスに切り替えることができます。1プライマリ・複数スタンバイアーキテクチャでは、複数のスタンバイインスタンスから最適なスタンバイインスタンスを手動で選択し、新しいプライマリインスタンスとして設定する必要があります。
前提条件:
少なくとも1つのスタンバイインスタンスの状態が実行中であること。
プライマリ・スタンバイデータベースのすべてのテナントで専用ネットワークアドレスが作成されていること。
プライマリ・スタンバイデータベースの各テナントでグローバルアドレスの設定が完了していること。
プロジェクト管理者およびインスタンス管理者権限を持っていること。
スタンバイインスタンスの選択に関する推奨事項:
以下の要因を優先順位に基づいて考慮し、最適なスタンバイインスタンスを選択することを推奨します:
地理的位置:ネットワーク遅延と業務の近接性を考慮し、業務アプリケーションに最も近いスタンバイインスタンスを優先的に選択します。
リソース状態:スタンバイインスタンスのCPU、メモリ、ストレージなどのリソース使用状況を評価し、業務負荷を支えるために十分なリソースがあることを確認します。
切り替え時間:
ネットワーク直接接続方式:通常、3~5分以内に切り替えが完了します。
ログアーカイブ方式:データ同期の完了を待つ必要がある場合があり、切り替え時間は1~5分かかる場合があります。
操作手順:
OceanBase Cloudコンソールにログインします。
左側のナビゲーションバーで、インスタンスリストをクリックします。
インスタンスリストで対象のスタンバイインスタンスを見つけ、操作列のアイコンをクリックします。
スタンバイインスタンスの選択方法:
スタンバイインスタンスのテナントダッシュボードで、データ同期の状態、遅延、リソース使用状況を確認できます。
スタンバイインスタンスの推奨選択に基づき、データ同期が最も完全で、遅延が最も少なく、リソースが十分なスタンバイインスタンスを選択することを推奨します。
ポップアップウィンドウで、ディザスタリカバリ切り替えを選択します。
切り替え情報を確認し、OKをクリックしてディザスタリカバリ切り替えを完了します。
説明
- 切り替え後、選択されたスタンバイインスタンスが新しいプライマリインスタンスとなり、元のプライマリインスタンスとすべてのスタンバイインスタンスとのプライマリ/スタンバイ関係は解除されます。
- 切り替え後、他のスタンバイインスタンスは新しいプライマリインスタンスと同期関係を確立し、新しいプライマリインスタンスのスタンバイインスタンスとして引き続き機能します。
- 業務アプリケーションは接続アドレスを更新し、新しいプライマリインスタンスに接続する必要があります。
切り替え後の処理:
切り替え後、他のスタンバイインスタンスは新しいプライマリインスタンスと同期関係を確立し、1プライマリ・複数スタンバイアーキテクチャを維持します。
新しいプライマリインスタンスと他のスタンバイインスタンスとのデータ同期状態を定期的に確認し、同期が正常に行われているかを確認してください。
詳細については、ディザスタリカバリ切り替えを参照してください。