読み取りトラフィックの増加によりデータベースの応答が遅くなった場合は、読み取り専用ノードを追加してクラスターの読み取り能力をスケールアウトできます。これにより、スループットが向上し、プライマリノード (読み取り/書き込みノード) の負荷が軽減されます。逆に、オフピーク時間帯には、アイドル状態の読み取り専用ノードを削除してコストを節約できます。PolarDB のクラスターエンドポイントは、読み取り専用ノード間で読み取りリクエストを自動的に負荷分散するため、アプリケーションの接続管理が簡素化されます。
前提条件
開始する前に、以下の条件が満たされていることを確認してください:
-
課金方法:対象のクラスターは、サブスクリプション または 従量課金 の課金方法を使用している必要があります。
-
クラスターのステータス:対象のクラスターは 実行中 の状態であり、コンピューティングノードの仕様変更やマイナーバージョンのアップグレードなど、他の設定変更タスクが進行中でない必要があります。
影響と制限事項
読み取り専用ノードを追加または削除する前に、影響と制限事項を理解し、それに応じて操作を計画してください。
サービスへの影響
-
読み取り専用ノードの追加:読み取り専用ノードを 1 つ追加するには、約 5 分かかります。複数の読み取り専用ノードを同時に追加する場合、それらは並行して追加されます。実際の所要時間は、クラスターのワークロードやデータベースとテーブルの数などの要因によって異なります。ノードの追加は、実行中のクラスターには影響しません。
-
読み取り専用ノードの削除:読み取り専用ノードを削除すると、そのノードへの接続で瞬断が発生しますが、他のノードには影響しません。この操作はオフピーク時間帯に実行し、ご利用のアプリケーションに自動再接続メカニズムがあることを確認してください。アプリケーションがクラスターエンドポイントに接続している場合、PolarDB は削除された読み取り専用ノードをルーティングテーブルから自動的に削除するため、アプリケーションの設定を変更する必要はありません。
ノード数の制限
-
Enterprise Edition:
-
クラスター版:クラスターは最大 15 個の読み取り専用ノードをサポートします。高可用性を確保するために、少なくとも 1 つの読み取り専用ノードを保持する必要があります。したがって、最後の読み取り専用ノードを削除することはできません。
-
マルチマスタークラスター (Limitless) Edition:クラスターは最大 63 個の読み取り/書き込みノードと 15 個の読み取り専用ノード (グローバル読み取り専用ノード) をサポートします。
-
-
Standard Edition:クラスターは最大 7 個の読み取り専用ノードをサポートします。
ノード仕様の制限
クラスターの安定性と高可用性を確保するため、プライマリノードと読み取り専用ノードの仕様は次のように制限されます:
-
新しい読み取り専用ノードは、プライマリノードのメモリの少なくとも半分を備えている必要があります。
-
新しい読み取り専用ノードの最小 CPU コア数は、プライマリノードのコア数に応じて、次のようになります:
プライマリノードのコア数
読み取り専用ノードの最小コア数
2
2
4
4
8
4
16
8
32
16
64
32
88
64
120
64
-
マルチマスタークラスター (Limitless) Edition のクラスターは、これらの制限の対象外です。
-
読み取り専用 IMCI ノード を追加する場合、その分析ワークロードに対応するために、仕様はプライマリノード (読み取り/書き込みノード) よりも高くする必要があります。
ノードの追加
-
PolarDB コンソールにログインします。左側のナビゲーションウィンドウで クラスター をクリックし、ご利用のクラスターがデプロイされているリージョンを選択します。
-
次のいずれかの方法で ノードの追加/削除 ページに移動します:
-
対象クラスターの行で、操作 列の ノードの追加/削除 をクリックします。
-
対象クラスターの ID をクリックして 概要 ページに移動します。データベースノード セクションで、ノードの追加/削除 をクリックします。
-
-
ノードの追加/削除 ダイアログボックスで、 ノードの追加 (または グローバル読み取り専用ノードの追加) を選択し、OK をクリックします。
説明ビジネス要件に応じて、読み書きノードの追加、AI ノードの追加、列ストアインデックス読み取り専用ノードの追加、検索ノードを追加 など、他のタイプのノードを追加することもできます。
-
読み取り/書き込みノードは、マルチマスタークラスター (Limitless) Edition のクラスターにのみ追加できます。
-
読み取り専用 IMCI ノード、AI ノード、または 検索ノード を追加するには、クラスターのバージョンが対応する機能の要件を満たしていることを確認してください。
-
-
アップグレード/ダウングレード ページで、現在の設定 を確認します。
アイコンをクリックしてノードを追加し、その仕様を選択します。説明このボタンを複数回クリックすると、複数のノードを同時に追加できます。
-
設定変更を有効にするタイミングを選択します:
-
今すぐ切り替え:設定変更はすぐに有効になります。
-
スケジュールされた切り替え:今後 24 時間以内の時刻を選択します。タスクは指定された時刻から 30 分以内に完了します。スケジュールされたタスク ページでタスクを表示またはキャンセルできます。
-
-
利用規約を読み、同意した上で 今すぐ購入 をクリックし、支払いを完了します。支払いが成功すると、タスクはスケジュールされた時刻に実行されます。
-
(任意) 他のタイプのノードを追加した場合、次のステップについては以下をご参照ください:
-
読み取り/書き込みノード:
CREATE DATABASE <name> [POLARDB_WRITE_NODE master_id];ステートメントを実行して、新しいノードにデータベースを作成できます。詳細については、「マルチマスタークラスターの使用方法」をご参照ください。 -
AI ノード:ステートメントの先頭に
/*polar4ai*/ヒントを追加することで、AI SQL ステートメントを実行できます。ユースケースの詳細については、「Data-Agent」をご参照ください。 -
読み取り専用 IMCI ノード:テーブルまたは特定の列に
COLUMNAR=1コメントを追加することで、列ストアインデックスを作成できます。詳細については、「列ストアインデックスの追加」をご参照ください。 -
検索ノード:Elasticsearch 互換の REST API を使用して、インデックスを作成し、データを検索できます。詳細については、「インテリジェント検索の使用」をご参照ください。
-
ノードの削除
注意事項
読み取り/書き込みノード
マルチマスタークラスターから読み取り/書き込みノードを削除する前に、そのノード上のすべてのデータベースのアクセスポイントを、他の利用可能な読み取り/書き込みノードに切り替える必要があります。詳細については、「マルチマスタークラスターの使用方法」をご参照ください。
この操作を実行しないと、これらのデータベースはアクセスできなくなります。この問題が発生した場合は、これらのデータベースに読み取り/書き込みノードを再割り当てすることでアクセスを復元できます。これを行うには、次のステートメントを実行します:ALTER DATABASE <name> POLARDB_WRITE_NODE <new_master_id>;。
-
読み取り/書き込みノード上のデータベースのディストリビューションをクエリします。
SELECT * FROM INFORMATION_SCHEMA.INNODB_CC_GLOBAL_LOCK_INFO WHERE LOCK_MODE = 'SLS_X' AND MASTER_ID = <master_id>; -
クエリによって返されたすべてのデータベースまたはデータオブジェクトのアクセスポイントを、他の読み取り/書き込みノードに切り替えます。
説明クエリ結果には、
mysql/global_ddl_lockという名前のエントリが含まれる場合があり、そのobjectタイプはTableです。このエントリは内部使用のためであり、切り替える必要はありません。ALTER DATABASE <name> POLARDB_WRITE_NODE <new_master_id>;
AI ノード
-
最後の AI ノードを削除すると、システムは直ちにノードとそれに関連するデータ (ベクターテーブルなど) をパージします。クラスターに送信された AI SQL ステートメントは応答しなくなります。他の SQL ステートメントには影響しません。
-
データ損失を防ぐため、ノードを削除する前に必要なデータをバックアップしてください。
読み取り専用 IMCI ノード
-
最後の読み取り専用 IMCI ノードを削除すると、クラスターは列ストアインデックスを使用してクエリを高速化できなくなります。パフォーマンス向上のために再度列ストアインデックスを使用したい場合は、別の読み取り専用 IMCI ノードを追加し、列ストアインデックスが自動的に再構築されるのを待つ必要があります。
-
クラスターのエンドポイント は、失敗したノードを自動的にマスクするため、アプリケーションの設定を変更する必要はありません。
検索ノード
-
すべての検索ノードを削除すると、システムは直ちにノードとそれに関連するデータをパージします。クラスターに送信された REST API リクエストは応答しなくなります。他の SQL ステートメントには影響しません。
-
データ損失を防ぐため、ノードを削除する前に必要なデータバックアップを実行してください。
操作手順
-
PolarDB コンソールにログインします。左側のナビゲーションウィンドウで クラスター をクリックし、ご利用のクラスターがデプロイされているリージョンを選択します。
-
次のいずれかの方法で ノードの追加/削除 ページに移動します:
-
対象クラスターの行で、操作 列の ノードの追加/削除 をクリックします。
-
対象クラスターの ID をクリックして 概要 ページに移動します。データベースノード セクションで、ノードの追加/削除 をクリックします。
-
-
ノードの追加/削除 ダイアログボックスで、ビジネス要件に応じて ノードの削除 (または グローバル読み取り専用ノードの削除)、読み書きノードの削除、AI ノードの削除、列ストアインデックス読み取り専用ノードの削除、または 検索ノードを削除 を選択し、OK をクリックします。
-
アップグレード/ダウングレード ページで、現在の設定 を確認します。ノード名の前にあるマイナスアイコン
をクリックしてノードを削除します。説明一度に複数のノードを削除できます。
-
設定変更を有効にするタイミングを選択します:
-
今すぐ切り替え:設定変更はすぐに有効になります。
-
スケジュールされた切り替え:今後 24 時間以内の時刻を選択します。タスクは指定された時刻から 30 分以内に完了します。スケジュールされたタスク ページでタスクを表示またはキャンセルできます。
-
-
利用規約を読み、同意した上で 今すぐ購入 をクリックし、支払いを完了します。支払いが成功すると、タスクはスケジュールされた時刻に実行されます。
課金
ノードの追加または削除は、コンピューティングノードの料金にのみ影響します。ストレージなどのリソースの料金には影響しません。
-
従量課金
-
新しいノードは、作成からリリースまで時間単位で課金されます。
-
いつでもノードを削除して、課金を停止できます。
-
-
サブスクリプション
-
ノードを追加する際、現在時刻からクラスターの有効期限までの期間について、一度に料金を支払う必要があります。
-
ノードを削除すると、システムは残りの価値を自動的に計算し、返金を発行します。詳細については、「設定ダウングレードの返金ポリシー」をご参照ください。
-
よくある質問
-
ノード追加時に「リソース不足」エラーが発生した場合はどうすればよいですか?
システムから 「リソースが不足しています。別のリージョンまたはゾーンで再試行してください」 というプロンプトが表示された場合、選択した仕様が現在のゾーンで売り切れていることを意味します。次のいずれかのアクションを実行することを推奨します:
-
類似の仕様を選択する:少し低い仕様を選択してみてください。
-
ゾーンを変更する:将来のスケーリング操作中のリソース不足を防ぐため、手動でゾーンを変更します。
-
-
読み取り/書き込みノードをPolarDB クラスターに追加できますか?
読み取り/書き込みノードは、マルチマスタークラスター (Limitless) Edition のクラスターにのみ追加できます。ご利用のクラスターがこのエディションであることを確認してください。
-
ノードの追加または削除時に、仕様変更が検出されなかったというプロンプトが表示された場合はどうすればよいですか?
このメッセージは、まだノードを追加または削除していないことを示します。画面の指示に従い、
アイコンをクリックしてノードを追加するか、ノード名の前にあるマイナスアイコン
をクリックしてノードを削除してください。 -
ノード削除時に
DB ノードの数が正しくありません。というエラーが発生した場合はどうすればよいですか?高可用性 (HA) と自動フェイルオーバーを確保するため、PolarDB のクラスター版クラスターには、少なくとも 1 つの読み取り専用ノードが必要です。
-
ノードを削除する際、プライマリノード 1 つと読み取り専用 IMCI ノード 1 つだけを保持することはできますか?
いいえ。読み取り専用 IMCI ノードを追加または保持するには、クラスター内に少なくとも 1 つの通常の読み取り専用ノードが必要です。
-
アプリケーションの書き込み負荷が高いです。読み取り専用ノードを追加すれば問題は解決しますか?
いいえ。読み取り専用ノードは読み取り (
SELECT) リクエストのみを処理します。プライマリノードは、すべての書き込み操作 (INSERT/UPDATE/DELETE) を専門に処理します。ボトルネックが書き込みパフォーマンスである場合は、読み取り専用ノードを追加するのではなく、プライマリノードの仕様をアップグレードしてください。
関連トピック
-
ノード数がパフォーマンスに与える影響:OLTP パフォーマンス
-
読み取り専用 IMCI ノード機能:インメモリ列指向インデックス (IMCI)
-
検索ノード機能:インテリジェント検索 (PolarSearch)
-
AI ノード機能:PolarDB for AI
関連 API
|
API |
説明 |
|
PolarDB クラスターにノードを追加します。 |
|
|
PolarDB クラスターからノードを削除します。 |