詳細については、「読み書き分離パラメーター」セクションをご参照ください。
このトピックは、共有プロキシモードで実行されるRDSインスタンスにのみ適用されます。 専用プロキシモードで実行されるRDSインスタンスの詳細については、「データベースプロキシとは」をご参照ください。.
手順
- ApsaraDB for RDS コンソール にログインします。
- 上部のナビゲーションバーで、ターゲットRDSインスタンスが存在するリージョンを選択します。
- 対象のインスタンスを特定し、その ID をクリックします。
- 左側のナビゲーションペインで、[データベース接続] または [データベースプロキシ] をクリックします。
- [読み書き分離] タブをクリックします。
- [読み書き分離の基本情報] セクションで、[読み書き分離の設定] をクリックし、プロンプトに従ってパラメーターを設定します。
表1. 読み書き分離パラメータの パラメーター 説明 レイテンシしきい値 プライマリインスタンスから読み取り専用インスタンスへのデータレプリケーションに許可される最大レイテンシ。 読み取り専用インスタンスのレイテンシが指定されたしきい値を超えると、データベースシステムは読み取り要求の読み取り専用インスタンスへのルーティングを停止します。 これは、読み取り専用インスタンスの読み取り重みが高い場合でも適用されます。 このメカニズムにより、プライマリインスタンスと読み取り専用インスタンス間の長期的なデータの不一致が防止されます。 有効な値: 0 ~ 7200 単位は秒です。 読み取り専用インスタンスは、SQL文の実行制限により、一定のレイテンシでプライマリインスタンスからデータをレプリケートできます。 このパラメーターを30以上の値に設定することを推奨します。
重量分布を読む データベースシステム内の各インスタンスの読み取り重み。 読み取り重みが大きいほど、読み取りリクエストを多く処理することを示します。 たとえば、プライマリインスタンスには3つの読み取り専用インスタンスがアタッチされ、プライマリインスタンスと読み取り専用インスタンスの読み取り重みはそれぞれ0、100、200、0です。 この状況では、プライマリインスタンスは書き込み要求のみを処理し、最初の2つの読み取り専用インスタンスはすべての読み取り要求を1:2の比率で処理し、3番目の読み取り専用インスタンスは書き込み要求または読み取り要求を処理しません。 - 自動配布: データベースシステムは、インスタンスの仕様に基づいて各インスタンスに読み取り重みを割り当てます。 読み取り専用インスタンスを作成すると、データベースシステムに読み取り重みが割り当てられ、読み取り /書き込み分割リンクに追加されます。 詳細については、「システムによる読み取り重み割り当てのルール」をご参照ください。
- カスタマイズされた配布: 各インスタンスに読み取り重みを手動で割り当てる必要があります。 有効な値: 0 ~ 10000 読み取り専用インスタンスを作成すると、その読み取り重みはデフォルトで0になります。 読み取り専用インスタンスにゼロ以外の読み取り重みを手動で割り当てる必要があります。
説明- 読み取り専用インスタンスを削除すると、その読み取り重みも削除されますが、他のインスタンスの読み取り重みは変更されません。
- レプリケーション遅延を指定した読み取り専用インスタンスに読み取り重みを割り当てることはできません。 詳細については、「読み取り専用ApsaraDB RDS For MySQLインスタンスのデータレプリケーション遅延の設定」をご参照ください。
- [OK] をクリックします。
(オプション) 次に行うこと
よくある質問
- 読み取り専用インスタンスの読み取り重みが0の場合、読み書き分離エンドポイントを使用して読み取り専用インスタンスにアクセスできますか。
いいえ。読み取り重みが0の場合、読み書き分離エンドポイントを使用して読み取り専用インスタンスにアクセスすることはできません。 この読み取り専用インスタンスには、内部またはパブリックエンドポイントを使用してのみアクセスできます。 ほとんどの場合、このソリューションは、読み取り専用インスタンスに特定のサービスのみを提供させるために使用されます。
- プライマリインスタンスとその読み取り専用インスタンスの読み取り重みを変更した後、新しい読み取り重みが有効にならないのはなぜですか。
新しい読み取り重みは、既存の接続が終了および再確立されないため、新しい接続にのみ有効になります。
- プライマリインスタンスとその読み取り専用インスタンスのロードは、指定された読み取り重みに準拠していません。 これはなぜですか。
考えられる理由は次の通りです。
- 要求はトランザクションを含む。 トランザクションを含むすべてのリクエストは、プライマリインスタンスにルーティングされます。 これらのトランザクションは、データを読み出すために実行されるトランザクションを含む。
- データベースシステムは、プライマリインスタンスと読み取り専用インスタンスのエンドポイントを使用して接続されています。 このような場合、データベースシステムは、指定された読み取り重みに基づいて、プライマリインスタンスと読み取り専用インスタンスにリクエストをルーティングしません。 データベースシステムが読み書き分離エンドポイントを使用してのみ接続されていることを確認します。
- プライマリインスタンスの読み取り重みが0であっても、大量の読み取りリクエストがプライマリインスタンスにルーティングされるのはなぜですか。
考えられる理由は次の通りです。
- 読み出し要求はトランザクションを含む。 トランザクションを含むすべてのリクエストは、プライマリインスタンスにルーティングされます。 これらのトランザクションは、データを読み出すために実行されるトランザクションを含む。
- 読み取り重みがゼロでないすべての読み取り専用インスタンスが使用できないか、またはこれらのインスタンスのレイテンシが指定されたしきい値を超えています。 この状況では、データベースシステムはこれらのインスタンスへの読み取り要求のルーティングを停止します。
参考資料
関連する API 操作
API 操作 | 説明 |
読み取り重みとレイテンシしきい値の変更 | プライマリApsaraDB for RDSインスタンスとその読み取り専用インスタンスのレイテンシしきい値と読み取り重みを変更します。 |