すべてのプロダクト
Search
ドキュメントセンター

PolarDB:指定された関数または指定されたテーブルを含むリクエストのルーティングルールをカスタマイズする

最終更新日:Jun 04, 2024

PolarProxyを使用すると、指定された関数または指定されたテーブルを含むリクエストのルーティングルールをカスタマイズできます。 既定では、PolarDBクラスター内の関数を含む読み取り要求は読み取り専用ノードにルーティングされ、PolarDBクラスター内のテーブルを含む読み取り要求はプライマリノードにルーティングされます。 ルーティングルールをカスタマイズして、PolarDBクラスター内の指定された関数を含む読み取り要求を読み取り専用ノードにルーティングできます。 ルーティングルールをカスタマイズして、指定されたテーブルを含む読み取り要求をプライマリノードにルーティングすることもできます。

前提条件

特権アカウントは、PolarDBクラスターのプライマリエンドポイントに接続するために使用されます。

polar_proxy_utils拡張子を作成する

次のステートメントをpolar_superuserユーザーとして実行し、polar_proxy_utils拡張子を作成します。

拡張子polar_proxy_utilsを作成します。

ルーティングルールのカスタマイズ

ルーティングルールをカスタマイズするには、次の文を実行します。

polar_add_proxy_routing_strategy(_name, _type, rw_mode);
説明

ステートメント内のパラメータ:

  • _name: ルーティングルールをカスタマイズするテーブルまたは関数の名前。

  • _type:_nameパラメーターで指定されたオブジェクトがテーブルか関数かを指定します。 値tはテーブルを指定する。 値fは関数を指定する。

  • rw_mode: プライマリノードと読み取り専用ノードのどちらにリクエストをルーティングするかを指定します。 値wは、プライマリノードを指定する。 値rは読み取り専用ノードを指定します。

たとえば、polar_add_proxy_routing_strategy('lol', 't', 'w'); ステートメントを実行します。插入记录

  • このステートメントが実行される前に、select * from lol操作は読み取り専用ノードにルーティングされます。

  • このステートメントが実行されると、select * from lol操作がプライマリノードにルーティングされます。

ルーティングルールの照会

ルーティングルールを照会するには、次の文を実行します。

polar_list_proxy_routing_strategy() を選択します。

展示白名单信息

ルーティングルールの削除

ルーティングルールを削除するには、次の文を実行します。

polar_delete_proxy_routing_strategy(_name, _type) を選択します。
説明

ステートメント内のパラメータ:

  • _name: 削除するルーティングルールに関連付けられているテーブルまたは関数の名前。

  • _type:_nameパラメーターで指定されたオブジェクトがテーブルか関数かを指定します。 値tはテーブルを指定する。 値fは関数を指定する。

たとえば、select polar_delete_proxy_routing_strategy('lol', 't'); ステートメントを実行します。删除一条白名单

  • このステートメントが実行される前に、select * from lol操作がプライマリノードにルーティングされます。

  • このステートメントが実行されると、select * from lol操作は読み取り専用ノードにルーティングされます。

すべてのルーティングルールを削除する

すべてのルーティングルールを削除するには、次の文を実行します。

polar_truncate_proxy_routing_strategy() を選択します。

删除所有白名单记录