Administering PGD Proxy#
書き込みリーダーの切り替え#
書き込みリーダーの切り替えは、書き込みリーダーであるノードを変更するために実行できる手動操作です。
現在の書き込みリーダーノードでメンテナンスを実行する場合、または他の理由で書き込みリーダーを変更する場合に役立ちます。書き込みリーダーを変更する場合、strict
とfast の2つのモードがあります。 strict
モードでは、書き込みリーダーを切り替える前に遅延がチェックされます。スイッチオーバーを開始する前に、遅延がroute_writer_max_lag
未満になるまで待機します。これがデフォルトです。 fast
モードでは、書き込みリーダーはすぐに切り替わります。タイムアウトパラメーターを設定して、メソッドが厳密な場合の時間を指定することもできます。
(デフォルト30秒)
!!!注 セットリーダー動作は、保証された動作ではありません。タイムアウトまたはその他の理由で、特定のターゲットノードへのスイッチが失敗した場合、PGDは別のノードを代わりに書き込みリーダーとして選択する場合があります。この他のノードには、現在の書き込みリーダーノードを含めることができます。 PGDは、セットリーダー操作が失敗した場合、常に新しい書き込みリーダーを選択しようとします。
SQLを使用する#
書き込みリーダーであるノードを別のノードに明示的に変更するスイッチオーバー操作を実行できます。
bdr.routing_leadership_transfer() ファンクションを使用します。
たとえば、書き込みリーダーをグループgroup1 のノードnode1
に切り替えるには、次のSQLコマンドを使用します。
SELECT bdr.routing_leadership_transfer(group1, node1,strict,10s);
このコマンドは、strict
モードを使用して書き込みリーダーを切り替え、スイッチオーバーが完了するまで最大10秒待機します。これらはデフォルト設定であるため、次のように省略できます。
SELECT bdr.routing_leadership_transfer(group1, node1);
PGD CLIを使用する#
group set-leader コマンドを使用して、スイッチオーバー操作を実行できます。
たとえば、書き込みリーダーをノードnode1 からグループgroup1
のノードnode2 に切り替えるには、次のコマンドを使用します。
pgd group group1 set-leader node1 --strict --timeout 10s
このコマンドは、 strict
モードを使用して書き込みリーダーを切り替え、strictモードでスイッチオーバーが完了するまで最大10秒待機します。これらはデフォルト設定であるため、次のように省略できます。
pgd group group1 set-leader node1