Internal system functions#
以下は内部システム機能です。多くは、さまざまなビューを作成するときに使用されます。ファンクションを直接使用せず、代わりにそれらが提供するビューを使用することをお勧めします。
一般的な内部ファンクション#
bdr.bdr_get_commit_decions#
共有メモリの状態を検査する便利なルーチン。
概要#
bdr.bdr_get_commit_decisions(dbid OID,
origin_node_id OID,
origin_xid xid,
local_xid xid,
decision "char",
decision_ts timestamptz,
is_camo boolean)
bdr.bdr_track_commit_Decision#
トランザクションのコミットステータスを共有メモリハッシュテーブルに保存します。このファンクションは、アップグレードスクリプトによって使用され、 bdr.commit_decionsカタログに保存されたコミット決定を共有メモリハッシュテーブルに転送します。トランザクションのコミットステータスはWALに記録されるため、WALからリロードできます。
概要#
bdr.bdr_track_commit_decision(OID, xid, xid, "char", timestamptz, boolean);
bdr.consensus_kv_fetch#
一貫したKVストアからJSON形式で値を取得します。
概要#
bdr.consensus_kv_fetch(IN key text) RETURNS jsonb
パラメーター#
Parameter |
Description |
|---|---|
key |
取得する任意のキー。 |
注#
このファンクションは内部ファンクションであり、主にHARPによって使用されます。
警告
ユーザアプリケーションではこのファンクションを使用しないでください。
bdr.consensus_kv_store#
一貫したKVストアに値を保存します。
値の有効期限のタイムスタンプを返します。この機能はttl
に依存しています。 ttl がNULL
の場合、このファンクションはinfinity
を結果ます。値が削除された場合、-infinity を返します。
概要#
bdr.consensus_kv_store(key text, value jsonb,
prev_value jsonb DEFAULT NULL, ttl int DEFAULT NULL)
パラメーター#
Parameter |
Description |
|---|---|
key |
挿入、更新、または削除する任意の一意のキー。 |
value |
保存するJSON値。 NULLの場合、既存のレコードは削除されます。 |
prev_value |
設定されている場合、書き込み操作は、現在の値が`prev_value`と等しい場合にのみ実行されます。 |
ttl |
新しい値の有効期間ミリ秒単位。 |
注#
これは内部ファンクションであり、主にHARPによって使用されます。
警告
ユーザアプリケーションではこの機能を使用しないでください。
bdr.decode_message_payload#
コンセンサスメッセージのペイロードをより人間が読みやすい出力にデコードするPGDメッセージペイロードファンクション。主にbdr.global_consensus_journal_details
デバッグビューによって使用されます。
bdr.decode_message_response_payload#
コンセンサスメッセージへの応答のペイロードをより人間が読みやすい出力にデコードするPGDメッセージペイロードファンクション。主にbdr.global_consensus_journal_details
デバッグビューによって使用されます。
bdr.difference_fix_origin_create#
引数として渡された指定された名前を使用して、レプリケーションオリジンを作成しますが、
bdr_
接頭辞を追加します。オリジンの内部IDを結果ます。このファンクションは、pg_replication_origin_create()
と同じ機能がありますが、このファンクションはpostgresスーパーユーザー権限ではなくbdr_superuserを必要とする点を除きます。
bdr.difference_fix_session_reset#
現在のセッションをオリジンから再生しないものとしてマークし、本質的にbdr.difference_fix_session_setup()
のエフェクトをリセットします。
voidを返します。このファンクションは、pg_replication_origin_session_reset()
と同じ機能がありますが、このファンクションはpostgresスーパーユーザー権限ではなくbdr_superuserを必要とする点を除きます。
概要#
bdr.difference_fix_session_reset()
bdr.difference_fix_session_setup#
現在のセッションを現在のオリジンから再生するものとしてマークします。ファンクションは、事前に作成されたbdr_local_only_origin
ローカルレプリケーションオリジンをセッションに暗黙的に使用します。これにより、再生の進行状況を報告でき、voidを返します。このファンクションは、pg_replication_origin_session_setup()
と同じ機能がありますが、このファンクションはpostgresスーパーユーザー権限ではなくbdr_superuserを必要とする点が異なります。ファンクションの以前の形式bdr.difference_fix_session_setup(text)
は非推奨であり、将来のリリースでは削除される予定です。
概要#
bdr.difference_fix_session_setup()
bdr.difference_fix_xact_set_avoid_conflict#
現在のトランザクションを、LSN
’0/0’およびタイムスタンプ’2000-01-01’でコミットしたトランザクションを再生するものとしてマークします。このファンクションは、pg_replication_origin_xact_setup('0/0', '2000-01-01')
と同じ機能がありますが、このファンクションはpostgresスーパーユーザー権限ではなくbdr_superuserを必要とする点を除きます。
概要#
bdr.difference_fix_xact_set_avoid_conflict()
bdr.drop_node#
ノードのメタデータを削除します。
ノードがPARTED
になると、そのメタデータはクラスターのノードに存在したままになります。たとえば、ノードがドロップされるまで、ノードはPARTED
としてマークされ、bdr.node_sumary 結果に残ります。
bdr.drop_node('some node', force := true)
の呼び出しは、分離中にノードがスタックした場合に必要かつ適切です。そのノードにまだ同期する必要があるデータがある場合、ドロップされるノードからのデータの同期をスキップすることに注意してください。ノードスタックパーティングが既に再イメージ化または削除されている場合、それに対してbdr.drop_node
を呼び出して害はありません。これは、クラスター内のすべてのノードでこのスタックしたノードに対して呼び出す必要があることに注意して、ノードがドロップされたという一貫したビューを持つようにします。
このファンクションは、特定のノードのメタデータをローカルデータベースから削除します。ノードは次のいずれかです。
ローカルノード。この場合、リモートノードに関する情報を含むすべてのノードのメタデータを削除します。
リモートノード。その場合、その特定のノードのメタデータのみを削除します。
この内部機能の使用は次の場合に制限されます。
EDBテクニカルサポートから指示された場合。
ドキュメントで特に指示されている場所。
bdr.part_node を使用して、PGDグループからノードを削除します。このファンクションは、ノードをPARTED
状態に設定し、ノード名の再利用を有効にします。
bdr.drop_node(node_name text, cascade boolean DEFAULT false, force boolean DEFAULT false)
パラメーター#
Parameter |
Description |
|---|---|
node_name |
既存のノードの名前。 |
cascade |
非推奨。将来のリリースで削除される予定です。 |
force |
不一致を引き起こす可能性のある危険にもかかわらず、すべてのサニティチェックを回避し、指定されたPGDノードのすべてのメタデータの削除を強制します。テクニカルサポートのみが、分離に関連する緊急の場合に強制ノードドロップを使用します。 |
注#
このファンクションを実行する前に、bdr.part_node()
を使用してノードを分割します。
このファンクションは、特定のノードのメタデータをローカルデータベースから削除します。ノードはローカルノードになることができ、その場合、リモートノードに関する情報を含むすべてのノードのメタデータが削除されます。または、リモートノードの場合、その特定のノードのメタデータのみが削除されます。
注釈
各ノードには、スノーフレークIDおよびtimeshardシーケンスで使用する一意のシーケンス番号が割り当てられているため、一度に最大1024のノードレコードACTIVEとPARTEDの両方を持つことができます。 PARTEDノードは自動的にクリーンアップされません。これが問題になる場合は、この機能を使用してこれらのレコードを削除できます。
bdr.get_global_locks#
ローカルノードで保持されているグローバルロックに関する情報を表示します。
bdr.global_locks
ビューを実装して、ロックのより詳細な概要を提供するために使用されます。
bdr.get_node_conflict_resolvers#
ローカルノード上のすべての競合リゾルバーのテキスト文字列を表示します。
bdr.get_slot_flush_timestamp#
特定のレプリケーションスロットの最後のフラッシュ位置確認のタイムスタンプを取得します。
bdr.node_slots ビューを実装するために内部で使用されます。
bdr.internal_alter_sequence_set_kind#
さまざまなファンクション呼び出しのレプリケーションのために内部で使用されていたファンクション。 PGDの現在のバージョンでは使用されなくなりました。ローリングアップグレード中の下位互換性のためのみに存在します。
bdr.internal_replication_set_add_table#
さまざまなファンクション呼び出しのレプリケーションのために内部で使用されていたファンクション。 PGDの現在のバージョンでは使用されなくなりました。ローリングアップグレード中の下位互換性のためのみに存在します。
bdr.internal_replication_set_remove_table#
さまざまなファンクション呼び出しのレプリケーションのために内部で使用されていたファンクション。 PGDの現在のバージョンでは使用されなくなりました。ローリングアップグレード中の下位互換性のためのみに存在します。
bdr.internal_submit_join_request#
新しいノードに参加するためのコンセンサス要求を送信します。
PGDグループの再構成の内部メカニズムに必要です。
bdr.isolation_test_session_is_blocked#
グローバルロック上のブロックのチェックを追加して、元のpg_isolation_test_session_is_blocked
を拡張および実際に呼び出すヘルパーファンクション。
分離/同時実行テストに使用されます。
bdr.local_node_info#
PGDグループの再構成の内部メカニズムに必要なローカルノードの情報を表示します。
ビューbdr.local_node_summary
は、ユーザーの使用に役立つ同様の情報を提供します。
bdr.msgb_connect#
別のノードの接続プーラーに接続します。コンセンサスプロトコルによって使用されます。
bdr.msgb_deliver_message#
メッセージを別のノードの接続プーラーに送信します。コンセンサスプロトコルによって使用されます。
bdr.node_catchup_state_name#
nameのキャッチアップ状態コードを変換します。
概要#
bdr.node_catchup_state_name(catchup_state oid);
パラメーター#
Parameter |
Description |
|---|---|
catchup_state |
キャッチアップ状態のOIDコード。 |
bdr.node_kind_name#
ノードの種類の人にわかりやすい名前データ|スタンバイ|ウィットネス|サブスクライバーのみを返します。
bdr.peer_state_name#
ノード状態node_state
をテキスト表現に変換します。主にbdr.node_summary
ビューを実装するために使用されます。
bdr.pg_xact_origin#
指定されたトランザクションのオリジンIDを返します。
概要#
bdr.pg_xact_origin(xmin xid)
パラメーター#
Parameter |
Description |
|---|---|
xid |
オリジンが返されるトランザクションID。 |
bdr.reconcile_2pc_status_name#
数値調整ステータスコードを、対応するテキスト表現に変換します。このファンクションは、主に bdr.reconcile_2pc_requests_summary ビューにデータを設定するために使用されます。
概要#
bdr.reconcile_2pc_status_name(reconcile_status oid) RETURNS text
パラメーター#
Parameter |
Description |
|---|---|
reconcile_status |
変換する特定のリコンシリエーションステータスを表すOIDコード。 |
bdr.request_replay_progress_update#
’リプレイ進行状況の更新’Raftメッセージの即時書き込みを要求します。主にテスト目的で使用されますが、コンセンサスメカニズムが機能しているかどうかをテストするために使用することもできます。
bdr.reset_relation_stats#
bdr.stat_relation
によって表示される、リレーション統計をリセットした後、ブール結果を返します。
bdr.reset_subscription_stats#
bdr.stat_subscription
によって表示される、サブスクリプションによって作成された統計をリセットした後、ブール結果を返します。
bdr.resynchronize_table_from_node#
リモートノードから関係を再同期します。
概要#
bdr.resynchronize_table_from_node(node_name name, relation regclass)
パラメーター#
Parameter |
Description |
|---|---|
node_name |
リレーションデータをコピーまたは再同期するノード。 |
relation |
リモートノードからのコピーに関する関係。 |
注#
このファンクションは、リレーションのグローバルDMLロックを取得し、リレーションをローカルで切り捨て、リモートノードからデータをコピーします。
リレーションは、同じ名前と定義を持つ両方のノードに存在する必要があります。
以下がサポートされています。
同一のパーティション定義を使用したパーティションテーブルの再同期
パーティション化されたテーブルと非パーティションテーブルへの再同期、およびその逆の再同期
外部キー制約を一時的に削除および再作成することによる参照先テーブルの再同期
参照されるテーブルでファンクションを実行した後、参照される列データが参照列値と一致しない場合、ファンクションはエラーをスローします。参照テーブルデータを再同期した後、ファンクションを再実行します。
さらに、リモートノードからデータをコピーした後、生成された列の値をローカルに計算することにより、生成された列とテーブルの再同期をサポートします。
現在、 row_filtersはこのファンクションによって無視されます。
bdr.resynchronize_table_from_node
ファンクションは、テーブルの所有者がbdr_superuser権限を持っている場合にのみ実行できます。
bdr.seq_currval#
グローバルシーケンス操作の内部実装の一部。
gallocまたはsnowflakeidシーケンスでcurrval()
が呼び出されるときに、自動的に呼び出されます。
bdr.seq_lastval#
グローバルシーケンス操作の内部実装の一部。
gallocまたはsnowflakeidシーケンスでlastval()
が呼び出されるときに、自動的に呼び出されます。
bdr.seq_nextval#
グローバルシーケンスインクリメントの内部実装の一部。
gallocまたはsnowflakeidシーケンスでnextval()
が呼び出されるときに自動的に呼び出されます
bdr.show_subscription_status#
サブスクリプションのステータスに関する情報を取得します。主にbdr.subscription_summary
ビューを実装するために使用されます。
bdr.show_workers#
bdrワーカーに関連する情報。
概要#
bdr.show_workers(
worker_pid int,
worker_role int,
worker_role_name text,
worker_subid oid)
bdr.show_writers#
bdr.writers ビューで使用されるファンクション。
bdr.sync_status_name#
同期状態コードをテキスト表現に変換します。主に bdr.sync_node_requests_summary を実装するために使用されます
ビュー。
概要#
bdr.sync_status_name(sync_state oid)
パラメーター#
Parameter |
Description |
|---|---|
sync_state |
同期状態のOIDコード。 |
タスクマネージャー機能#
bdr.taskmgr_set_leader#
指定されたnode
をタスクマネージャーリーダーノードになるように要求します。リーダーノードは、新しいタスクを作成します。現在、自動パーティションのみがこの機能を利用します。監視ノード、ロジカルスタンバイ、またはサブスクライバ専用ノードはリーダーになることはできません。このような要求はエラーで失敗します。
概要#
bdr.taskmgr_set_leader(node name, wait_for_completion boolean DEFAULT true);
bdr.taskmgr_get_last_completed_workitem#
クラスター内のすべてのノードで正常に完了した最後の作業項目のid
を返します。
概要#
bdr.taskmgr_get_last_completed_workitem();
bdr.taskmgr_work_queue_check_status#
タスクを生成および終了するジョブを実行しているバックグラウンドワーカーのステータスを確認できます。
ステータスは次のビューから確認できます。
bdr.taskmgr_work_queue_local_statusbdr.taskmgr_work_queue_global_status
概要#
bdr.taskmgr_work_queue_check_status(workid bigint
local boolean DEFAULT false);
パラメーター#
Parameter |
Description |
|---|---|
workid |
タスクのキー。 |
local |
ローカルステータスのみを確認します。 |
注#
Taskmgrワーカーは、 bdr.autopartition
ファンクションが初めて呼び出される前でも、常にバックグラウンドで実行されています。無効なworkid
が使用される場合、ファンクションはunknown を結果ます。
In-progress は一般的なステータスです。
bdr.get_min_required_replication_slots#
max_replication_slots
に必要な最小値を返すので、使用可能なスロットを使い果たさずにノード参加を完了できます。この推定では、結合中に定常状態のサブスクリプションと一時的に共存する一時的なキャッチアップサブスクリプション用のヘッドルームを予約します。
max_active_replication_origins がmax_replication_slots
のエイリアスである18より前のPostgresバージョンでは、戻り値はオリジン要件もカバーします。
PGD-CLIはこのファンクションを内部で使用しますが、クラスターのサイズを変更するときに直接実行することもできます。
bdr.get_min_required_active_replication_origins#
Postgres
18で導入された構成パラメーターmax_active_replication_origins
に必要な最小値を返します。 max_active_replication_origins
がmax_replication_slots
のエイリアスである以前のPostgresバージョンでは、この値は情報のみです。
PGD-CLIはこのファンクションを内部で使用しますが、クラスターのサイズを変更するときに直接実行することもできます。
bdr.get_min_required_worker_processes#
PGD-CLIによって使用される内部ファンクション。
bdr.stat_last_reset_time#
特定の統計カテゴリの最新のリセットタイムスタンプを取得するために使用される内部ファンクション。標準のモニタリングの場合、 bdr.stat_reset をサポートする各統計には、 bdr.stat_commit_scope ビューのstats_reset
列が含まれ、ユーザーが使用しやすい形式でこの情報を提供します。
bdr.stat_get_activity#
ビューbdr.stat_activity
の基になる内部ファンクション。直接使用しないでください。代わりに
bdr.stat_activity ビューを使用します。
bdr.stat_get_commit_scope#
コミットスコープの統計を取得する内部ファンクション。標準のモニタリングとトラブルシューティングには、 bdr.stat_commit_scope ビューを使用します。このビューは、同じ情報をよりアクセスしやすい形式で提供します。
bdr.stat_get_commit_scope_proc_wait#
特定のコミットスコープに関連付けられているプロセスの待機状態統計を取得するために使用される内部ファンクション。標準のモニタリングとトラブルシューティングには、 bdr.stat_commit_scope ビューを使用します。これは、このデータのよりアクセスしやすい表現を提供します。
bdr.stat_get_reconcile_commit_scope#
コミットスコープのリコンシリエーション統計を取得するために使用される内部ファンクション。標準のモニタリングとトラブルシューティングには、 bdr.stat_reconcile_commit_scope ビューを使用します。このビューは、このデータのよりアクセスしやすい使いやすい表現を提供します。
bdr.worker_role_id_name#
ビューbdr.worker_tasks
を生成するときに使用される内部ヘルパーファンクション。直接使用しないでください。代わりに
bdr.worker_tasks ビューを使用します。
bdr.lag_history#
ビューbdr.node_replication_rates
を生成するときに使用される内部ファンクション。直接使用しないでください。代わりに
bdr.node_replication_rates ビューを使用します。
bdr.get_raft_instance_by_nodegroup#
ビューbdr.group_raft_details
を生成するときに使用される内部ファンクション。直接使用しないでください。代わりに
bdr.group_raft_details ビューを使用します。
bdr.monitor_camo_on_all_nodes#
ビューbdr.group_camo_details
を生成するときに使用される内部ファンクション。直接使用しないでください。代わりに
bdr.group_camo_details ビューを使用します。
bdr.monitor_raft_details_on_all_nodes#
ビューbdr.group_raft_details
を生成するときに使用される内部ファンクション。直接使用しないでください。代わりに
bdr.group_raft_details ビューを使用します。
bdr.monitor_replslots_details_on_all_nodes#
ビューbdr.group_replslots_details
を生成するときに使用される内部ファンクション。直接使用しないでください。代わりに
bdr.group_replslots_details ビューを使用します。
bdr.monitor_subscription_details_on_all_nodes#
ビューbdr.group_subscription_summary
を生成するときに使用される内部ファンクション。直接使用しないでください。代わりに
bdr.group_subscription_summary ビューを使用します。
bdr.monitor_version_details_on_all_nodes#
ビューbdr.group_versions_details
を生成するときに使用される内部ファンクション。直接使用しないでください。代わりに
bdr.group_versions_details ビューを使用します。
bdr.node_group_member_info#
ビューbdr.group_raft_details
を生成するときに使用される内部ファンクション。直接使用しないでください。代わりに
bdr.group_raft_details ビューを使用します。