データベースプロキシに追加されたインスタンスが異常により使用できなくなった場合、データベースプロキシはインスタンス障害転送ポリシーを通じてSQLを他のインスタンスに転送して実行します、またはSQLを破棄しエラーメッセージを出力します。本稿では、インスタンス障害転送ポリシーの設定と原理をご紹介します。
背景情報
データベースインスタンスは実際の稼働プロセス中に、様々な予期せぬ事態によるインスタンスの使用不可に遭遇する可能性があります。例:サーバーの停電、再起動、ネットワーク中断など。TDSQL-C for MySQLデータベースプロキシはインスタンス障害転送機能を提供し、インスタンスに異常が発生した場合に、ユーザーのSQL実行がエラーになりビジネスが利用不可になる状況を回避します。
前提条件
転送戦略
現在、データベースプロキシがサポートしているインスタンス障害転送ポリシーは以下の通りです。
読み取り専用インスタンスまたは読み書きインスタンスで障害が発生した場合、データベースプロキシはデフォルトでSELECT実行ステートメントを正常なインスタンスに送信して実行します。
読み書きインスタンスで障害が発生した場合、データベースプロキシはDMLまたはDDLステートメントの実行でエラーを返します。
データベースプロキシ配下の読み取り専用分析エンジンで障害が発生した場合、データベースプロキシはSQLを他の正常な読み取り専用分析エンジンへ転送して実行します。
データベースプロキシ配下のすべての読み取り専用分析エンジンで障害が発生した場合、システムは実行エラーを返します。「no backend server」というエラーメッセージが表示されます。
注意:
上記のインスタンス障害転送ポリシーは現在変更をサポートしていません。読み取り専用インスタンスと読み書きインスタンスの障害転送はデフォルトで有効、読み取り専用分析エンジンの障害転送はデフォルトで無効です。
操作手順
2. クラスタ管理 > クラスタ詳細のトポロジ図で、マウスをデータベースプロキシセクションに移動させ、詳細をクリックするとデータベースプロキシ管理ページに遷移します。または、クラスタ管理ページで直接データベースプロキシタブを選択してデータベースプロキシ管理ページに入ります。
3. データベースプロキシ管理ページで概要を選択し、接続アドレス下で設定変更が必要なアクセスアドレスを検索し、その操作列にある設定調整をクリックします。設定調整ページに遷移すると、異なるタイプのインスタンス障害転送ポリシーを確認できます。
4. フェイルオーバー</1>を有効にすると、読み取り専用インスタンスで障害が発生した場合、本来読み取り専用インスタンスに転送されるべきSQLはデフォルトで読み書きインスタンスに転送されます。分析エンジン障害転送を有効にすると、読み取り専用分析エンジンで障害が発生した場合、デフォルトでまず正常に動作している他の読み取り専用分析エンジンに転送され、次に読み取り専用インスタンスに転送されます。その場合、読み取り専用インスタンスでも障害が発生していると、デフォルトで読み書きインスタンスに転送されます。
注意:
バージョン1.4.5のデータベースプロキシでのみ、分析エンジン障害転送機能を有効にすることができます。
関連するAPI
|
| 本インターフェース(ModifyProxyRwSplit)はデータベースプロキシの読み書き分離を設定するために使用されます。 |