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

Hologres:接続の管理

最終更新日:Aug 13, 2026

Hologres インスタンスの接続アーキテクチャを理解するとともに、接続の診断・管理を行います。

接続とクエリの管理

Hologres は PostgreSQL 互換です。pg_stat_activity ビューをクエリして、接続を確認し、実行中のクエリを診断します。主な操作は次のとおりです:

接続アーキテクチャ

Hologres インスタンスへの接続は、アクセス層、続いて実行層を経由します。各層はそれぞれ独自の接続制限を適用します。

hologres-connection-arch-en

コンポーネントは次のとおりです:

  • ゲートウェイ:インスタンスの単一のアクセス層です。すべてのクライアント接続は、まずゲートウェイノードに到達します。ゲートウェイは接続を認証し、IP ホワイトリストと照合し、接続属性に基づいて FE または FixedFE ノードへルーティングします。インスタンスには、高可用性のために少なくとも 2 つのゲートウェイノードがあります。仮想ウェアハウスインスタンスでは、ゲートウェイは接続をターゲット仮想ウェアハウスの FE にもルーティングします。

  • FE (フロントエンド):DDL ステートメント、クエリ、書き込みなどの標準 SQL 接続を処理する PostgreSQL 互換のフロントエンドノードです。Fixed Plan のポイントクエリとポイント書き込みも FE 接続で実行できます。この場合、FE の max_connections クォータを消費します。これらのリクエストで FixedFE を使用するかどうかは、クライアントとインスタンスのバージョンによって異なります。show max_connections は、単一の FE ノードの上限を返します。

  • FixedFE (固定フロントエンド):各 FE ノードと並行して動作する高スループットの接続サービスです。主に、holo-client や Flink および DataWorks のリアルタイム取り込みパスなどで使用される Fixed Plan のポイントクエリとポイント書き込み向けに最適化されています。Hologres V2.1 以降、バイナリログの消費もデフォルトで軽量な FixedFE 接続を使用します。FixedFE 接続は軽量で、FE の max_connections クォータにはカウントされません。また、FE の上限よりも大幅に高い別の上限が設定されています。

  • Walsender:論理レプリケーション接続 (replication=database) を処理する FE 内のプロセスです。Hologres V2.1 以降、バイナリログの消費とリアルタイム書き込みはデフォルトで軽量な FixedFE 接続を使用するため、Walsender は現在、従来のレプリケーションプロトコルを引き続き使用するクライアントを主に処理します。Walsender 接続は max_connections とは独立しており、max_wal_senders によって制御されます。

説明

接続タイプによって、消費するクォータの層が異なります。たとえば、Fixed Plan の書き込みが FixedFE のクォータを使い切った場合でも、通常の SQL 接続には影響しません。逆に、通常の接続が max_connections を上限まで使用しても、Fixed Plan のパスは引き続き動作します。接続制限に関する問題のトラブルシューティングを行う場合は、まずエラーメッセージに基づいて、どの層が上限に達したかを特定してください。詳細については、「エラーメッセージ リファレンス」をご参照ください。

層ごとの接続制限

ゲートウェイ接続制限

  • Hologres V4.0.15 以降、仮想ウェアハウスインスタンスの単一ゲートウェイノードは、最大 8,000 接続を受け入れます。以前は制限がありませんでしたが、非常に高い接続レートによるインスタンスの不安定化を防ぐために導入されました。詳細については、「V4.0 (2025 年 9 月)」をご参照ください。

  • インスタンス全体のゲートウェイ制限は、ゲートウェイノード数に 8,000 を乗じた値です。インスタンスには少なくとも 2 つのゲートウェイノードがあり、コンソールで数を変更できます。

  • コンソールで[ゲートウェイ接続使用量] メトリックを使用して、アクセスレイヤーのピーク圧力を監視します。

制限に達すると、次のエラーが返されます。

too many client tcp connections (global client_max)

FE 接続制限 (max_connections)

単一の FE ノードが受け入れる通常の SQL 接続数は、max_connections によって設定されます。デフォルト値はインスタンスタイプによって異なります。次のようにクエリします。

-- 単一の FE ノードの最大接続数。
show max_connections;

-- インスタンス全体の最大接続数 (FE ノード数に max_connections を乗じた値)。Hologres V1.3.23 以降でサポートされています。
select instance_max_connections();

Hologres は、スーパーユーザー用にいくつかの接続 (superuser_reserved_connections) を予約することで、上限に達した後でもログインして、アイドル状態の接続の終了などの管理作業を実行できるようにします。したがって、一般ユーザーは max_connections から予約済み接続を差し引いた接続を使用できます。

制限に達すると、次のいずれかのエラーが返されます。

FATAL: sorry, too many clients already connection limit exceeded for superusers
FATAL: remaining connection slots are reserved for non-replication superuser connections

FixedFE 接続制限

  • 各 FE ノード上の FixedFE サービスには、ノードあたり 6,400 接続の独自の制限があります。

  • インスタンス全体の FixedFE 制限は、FE ノード数に 6,400 を乗じた値です。

  • FixedFE 接続は max_connectionsカウントされずpg_stat_activity にも表示されません。代わりに、専用の hg_fixed_fe_stat_activity ビューを照会してください。詳細については、「FixedFE 接続のクエリ」をご参照ください。

  • 一般的な FixedFE 接続には、holo-client、Flink コネクタ、DataWorks Data Integration からの Fixed Plan 書き込みとポイントクエリ、および Hologres V2.1 以降でデフォルトで軽量接続を使用するバイナリログの消費接続が含まれます。

  • FixedFE 接続は診断用の読み取り専用です。SQL で終了することはできません。FixedFE 制限に達した場合は、クライアントサイドのコネクションプール設定を確認するか、影響を受けたジョブを再起動してください。

制限に達すると、次のエラーが返されます。

FATAL: too many fixed frontend connections

Walsender 接続制限 (max_wal_senders)

  • 論理レプリケーション接続 (replication=database) は、FE 上の Walsender プロセスによって提供されます。FE ノードごとの制限は max_wal_senders によって設定され、デフォルトは 600 です。

  • Walsender 接続は max_connections とは独立しており、互いに消費しません。

説明

Hologres V2.1 以降、Flink コネクタからの書き込みなどのリアルタイム書き込みやバイナリログの消費は、デフォルトで軽量の FixedFE 接続を使用し、Walsender を経由しなくなりました。 ディメンションテーブルと結果テーブルの場合、V3.0.28 より後のバージョンの Hologres では、Flink コネクタは軽量接続モード (connection.fixed.enabled) を自動的に選択します。 詳細については、「パラメーター設定 (VVR 11+)」をご参照ください。 その結果、Walsender の制限は、従来のレプリケーションプロトコルをまだ使用している少数のワークロードにのみ影響するようになりました。 バイナリログの消費方法の詳細については、「JDBC 経由での Binlog の消費」をご参照ください。

制限に達すると、次のエラーが返されます。

FATAL: number of requested standby connections exceeds max_wal_senders (currently 600)

制限の概要

パラメータ

デフォルトまたは固定値

スコープ

確認方法

ゲートウェイ

client_max

8,000 (Hologres V4.0.15 以降、仮想ウェアハウスインスタンス)

ゲートウェイノードあたり

コンソールの [ゲートウェイ接続使用状況] メトリック

FE

max_connections

インスタンスタイプによって異なります

FE ノードあたり

show max_connections;

FE (インスタンスレベル)

なし

FE ノード数に max_connections を乗算した値

インスタンスあたり

select instance_max_connections();

FixedFE

固定値

6,400

FE ノードあたり

hg_fixed_fe_stat_activity ビューの行数をカウントする

Walsender

max_wal_senders

600

FE ノードあたり

show max_wal_senders;

説明

Hologres コンソールのインスタンスの [モニタリング]>[トラフィックと接続] グループで、これらのすべてのレイヤーの接続使用量を表示できます。

エラーメッセージリファレンス

エラーメッセージ

上限に達したレイヤー

対処方法

too many client tcp connections (global client_max)

ゲートウェイ:ノードあたり8,000

クライアント側で接続リークがないか確認してください。必要に応じてゲートウェイノードを追加してください。

sorry, too many clients already connection limit exceeded for superusers

FE max_connections

アイドル接続を終了してください。詳細については、「接続の終了」をご参照ください。または、インスタンスをスケールアップするか、FE ノードを追加してください。

remaining connection slots are reserved for non-replication superuser connections

FE の通常ユーザー用クォータ (スーパーユーザー接続は予約済み)

スーパーユーザー O&M アカウントでログインし、接続を終了してください。

too many fixed frontend connections

FixedFE:ノードあたり6,400

holo-client や Flink コネクタなどの Fixed Plan クライアントの接続プールが過大またはリークしていないか確認してください。

number of requested standby connections exceeds max_wal_senders

Walsender max_wal_senders

バイナリログ消費ジョブの数と、フェイルオーバー後に古い接続が残っていないか確認してください。

terminating connection due to idle state timeout

制限の問題ではありません。アイドルタイムアウトにより接続が終了しました。

再接続するか、idle_session_timeout を増やしてください。詳細については、「アイドル接続の自動終了」をご参照ください。

pg_stat_activity ビューのクエリ

pg_stat_activity ビューは、インスタンス接続とクエリに関するランタイム情報を提供します。 次のコマンドを実行してクエリを実行します。

select * from pg_stat_activity ;

次の表は、pg_stat_activityのフィールドを説明します。

フィールド

説明

datid

バックエンドが接続しているデータベースのオブジェクト識別子 (OID)。

datname

バックエンドが接続しているデータベース名。

pid

Hologres バックエンドのプロセス ID (PID)。

usesysid

Hologres バックエンドにログインしているユーザーの OID。

usename

現在の接続のユーザー名。

application_name

クライアントアプリケーションの種類。

一般的なアプリケーションの種類は次のとおりです:

  • Realtime Compute for Apache Flink : {client_version}_ververica-connector-hologres

  • オープンソース Flink : {client_version}_hologres-connector-flink

  • DataWorks Data Integration を使用したバッチ同期 (Hologres から読み取り) : datax_{jobId}

  • DataWorks Data Integration を使用したバッチ同期 (Hologres へ書き込み) : {client_version}_datax_{jobId}

  • DataWorks Data Integration を使用したリアルタイム同期 : {client_version}_streamx_{jobId}

  • HoloWeb : holoweb

  • MaxCompute の外部テーブルを使用した Hologres へのアクセス: MaxCompute.

  • Holo Client が Hologres binlog を読み取るために開始するプロセス: holo_client_replication。このタイプのタスクでは、クエリ内容は表示されません。

  • その他のアプリケーションの場合は、接続文字列で application_name を指定します。

client_addr

クライアントの IP アドレス。

これは、本来の送信元 IP アドレスではなく、解決されたアドレスである場合があります。

client_hostname

クライアントのホスト名。

client_port

クライアントのポート。

backend_start

バックエンドプロセスの開始時刻。

xact_start

プロセスの現在のトランザクションの開始時刻。

  • トランザクションがアクティブでない場合、このフィールドは NULL です。

  • 現在のクエリがこのプロセスの最初のトランザクションである場合、この値は query_start と同じです。

query_start

現在アクティブなクエリの開始時刻です。ただし、接続状態が active でない場合は、直前のクエリの開始時刻となります。

state_change

接続状態が最後に変更された時刻。

wait_event_type

バックエンドが待機しているイベントの種類。待機していない場合は NULL です。指定できる値は次のとおりです:

  • LWLock :バックエンドが軽量ロックを待機しています。

  • Lock :バックエンドが重量ロックを待機しています。 wait_event フィールドで、待機しているロックの種類を識別できます。

  • BufferPin :サーバープロセスがデータバッファへのアクセスを待機しています。このとき、他のプロセスはそのバッファを参照していません。

  • Activity :サーバープロセスがアイドル状態です。これは、メイン処理ループでアクティビティを待機しているシステムプロセスで使用されます。

  • Extension :サーバープロセスが拡張モジュール内のアクティビティを待機しています。

  • Client :サーバープロセスがクライアントアプリケーションからのクエリを待機しており、内部処理とは関係のない何らかの事象が発生することを想定しています。

  • IPC :サーバープロセスがサーバー上の別のプロセスからのアクティビティを待機しています。

  • Timeout :サーバープロセスがタイムアウトの発生を待機しています。

  • IO :サーバープロセスが I/O 操作の完了を待機しています。

wait_event

バックエンドが現在待機している場合は待機イベント名を、待機していない場合は NULL を示します。

state

接続の現在の状態。一般的な状態は次のとおりです:

  • active :接続がクエリを実行しています。

  • idle :接続が新しいクライアントコマンドを待機しています。

  • idle in transaction :接続がトランザクション内にありますが、現在クエリを実行していません。

  • idle in transaction (Aborted) :接続が失敗したトランザクション内にあり、現在クエリを実行していません。

  • \N (Empty) :ユーザープロセスではないことを示します。通常は、無視してよいシステムのバックグラウンドメンテナンスプロセスです。

backend_xid

Hologres バックエンドのトップレベルのトランザクション識別子。

backend_xmin

現在のバックエンドの xmin ホライズン。

query

バックエンド上の最新のクエリ。 stateactive の場合は実行中のクエリを、それ以外の場合は最後に実行されたクエリを表示します。

backend_type

バックエンドの種類。値の例: autovacuum launcher、autovacuum worker、logical replication launcher、logical replication worker、parallel worker、background writer、client backend、checkpointer、startup、walreceiver、walsender、walwriter、および PQE などのバックエンド実行コンポーネント。

説明

client backend タイプはアプリケーション接続であり、walsender タイプはバイナリログ消費に使用されるレプリケーション接続です。

使用上の注意

スーパーユーザーのみがすべての接続を表示できます。標準ユーザーは自身の接続のみを表示できます。

デフォルトの最大接続数

デフォルトの接続制限は、インスタンス仕様によって異なります。この制限を照会するには、次のコマンドを実行します。コマンドによっては、インスタンス全体の制限を取得するために FE ノード数を乗算する必要があります。FE ノード数は「インスタンス管理」に記載されています。

  • インスタンス全体の最大接続数を照会します (Hologres V1.3.23 以降)。

    select instance_max_connections();
  • 単一の FE ノードの最大接続数を照会します。FE ノード数を乗算して、インスタンス全体の制限を取得してください。

    show max_connections;

HoloWeb での接続管理

HoloWeb コンソールでアクティブな接続を表示、管理します。

  1. HoloWeb コンソールにログインします。詳細については、「HoloWeb への接続と SQL クエリの実行」をご参照ください。

  2. 上部メニューで、 診断と最適化 をクリックします。

  3. 左側メニューで、 アクティブ接続管理 をクリックします。

  4. アクティブ接続管理 ページで、パラメーターを設定して、インスタンスへの接続と関連情報を表示します。

    説明

    スーパーユーザーのみがすべての接続を表示できます。標準ユーザーは自身の接続のみを表示できます。

    次の表で、各パラメーターについて説明します。

    パラメーター

    説明

    インスタンス名

    Hologres インスタンス名。

    データベース (フィルター)

    Hologres データベース。すべてのデータベースへの接続を表示するには、空白のままにしてください。

    データベース

    接続されているデータベースの名前。

    説明

    データベース名が Postgres の場合はバックエンドのメンテナンス接続を示しているため、無視できます。

    ユーザー名

    接続のユーザーアカウント。

    クライアントアドレス

    ルーティングされたアウトバウンド IP アドレスである場合があり、元のソース IP アドレスとは異なる可能性があります。

    アプリケーション名

    接続を作成したアプリケーションの名前。

    状態

    接続の状態。一般的な状態には次のものがあります。

    • active:接続はアクティブです。

    • idle:接続はアイドル状態です。

    • idle in transaction:接続は長時間実行中のトランザクション内でアイドル状態です。

    • idle in transaction (Aborted):接続は失敗したトランザクション内でアイドル状態です。

    クエリ開始時刻

    クエリの開始時刻。

    クエリ

    実行されたクエリ。

    説明

    長いクエリは切り捨てられる場合があります。

    PID

    クエリのプロセス ID (PID)。

    操作

    • 強制終了:予期しない接続を個別または一括で終了します。

    • 詳細:クリックすると、接続に関する詳細情報が表示されます。

SQL による接続のクエリ

次の SQL 文を使用して、接続情報を照会します。

  1. 現在のデータベースへの接続数の照会

    次のコマンドを実行して、現在のデータベースの接続数を確認します。フィールドの説明については、「pg_stat_activity ビューのクエリ」をご参照ください。

    • Hologres V1.1 以降:

      SELECT  datname::TEXT
              ,COUNT(1) AS COUNT
      FROM    pg_stat_activity
      WHERE   backend_type = 'client backend'
      AND     application_name != 'hologres'
      GROUP BY datname::TEXT;
    • Hologres V0.10 以前:

      SELECT  datname
              ,COUNT(1) AS COUNT
      FROM    pg_stat_activity
      WHERE   backend_type = 'client backend'
      AND     application_name != 'hologres'
      GROUP BY datname;
  2. 各接続の状態の確認

    Hologres コンソールの HoloWeb を使用して接続の状態を確認するか、次の SQL 文を実行して、すべての JDBC または PSQL 接続の状態を照会します。

    select * from pg_stat_activity where backend_type = 'client backend' and state = '<statename>';

    <statename> は、次のいずれかの状態に置き換えてください:

    • idle:アイドル状態です。プロセスは新しいクライアントコマンドを待機しています。

    • active:アクティブな接続です。プロセスがクエリを実行しています。

    • idle in transaction:トランザクションアイドル状態です。プロセスはトランザクション内にありますが、現在クエリを実行していません。

    • idle in transaction (aborted):トランザクションアイドル (アボート) 状態です。プロセスが失敗したトランザクション内にあり、現在クエリを実行していません。

    • fastpath 関数呼び出し: プロセスが fast-path 関数を実行していることを示します。

    • 無効: プロセスの track activities が無効になっていることを示します。

    例:アイドル接続の照会

    select * from pg_stat_activity where backend_type = 'client backend' and state = 'idle';

    HoloWeb などの Hologres コンポーネントは JDBC を使用し、接続を消費します。接続数が継続的に max_connections に近づく場合は、アプリケーションで接続リークが発生していないか確認し、適切な接続プールを設定してください。「接続のリリース」をご参照ください。

  3. 各アクセスノードの接続数の確認

    各 FE ノードの接続数を照会します (Hologres V1.3.23 以降)。アクティブな接続がない FE ノードは、結果から除外されます。

    select * from hologres.hg_connections;

    以下に、クエリ結果のフィールドを示します。

    • fe_id:FE ノードの ID。

    • used_connections:FE ノードで現在使用中の接続数。

    • max_connections:FE ノードの最大接続数で、show max_connections コマンドの戻り値と同じです。

FixedFE 接続のクエリ

Fixed Plan の書き込みとポイントクエリを処理する FixedFE 接続は、pg_stat_activity には表示されません。代わりに、専用の hg_fixed_fe_stat_activity ビューをクエリしてください。

-- 現在の FE ノード上のすべての FixedFE 接続を一覧表示します。
select * from hg_fixed_fe_stat_activity;

-- 6,400 の上限と比較するために FixedFE 接続数をカウントします。
select count(*) from hg_fixed_fe_stat_activity;

-- FixedFE 接続をデータベース、ユーザー、アプリケーション別にグループ化します。
SELECT  datname
        ,usename
        ,application_name
        ,COUNT(1)
FROM    hg_fixed_fe_stat_activity
GROUP BY datname
         ,usename
         ,application_name;

主なフィールドは、datnameconn_id (FixedFE 接続 ID)、usenameapplication_nameclient_addrclient_portbackend_startstatequery_startquery です。backend_type フィールドは常に fixed frontend connection です。

説明

すべての FixedFE 接続を確認できるのはスーパーユーザーのみです。一般ユーザーは自身の接続のみを確認できます。FixedFE 接続は診断用途では読み取り専用であり、pg_terminate_backend などの関数で終了することはできません。FixedFE 接続をリリースするには、クライアント側で接続を閉じるか、Flink のデプロイメントなど、その接続を使用しているジョブを再起動してください。

接続の終了

次の症状は、最大接続数に達したことを示します:

  • Hologres コンソールの [Monitoring and Alarms] ページで、接続数が max_connections に達するか、それを超えます。

  • FATAL: sorry, too many clients already connection limit exceeded for superusers というエラーが発生します。

  • FATAL: remaining connection slots are reserved for non-replication superuser connections というエラーが報告されます。

  • FATAL: too many fixed frontend connections というエラーが報告されます。これは、FixedFE レイヤーが上限に達したことを示します。

  • too many client tcp connections というエラーが報告されます。これは、ゲートウェイレイヤーが上限に達したことを示します。

まず、どのレイヤーが上限に達したかを特定します。詳細については、「エラーメッセージリファレンス」をご参照ください。FE レイヤーが上限に達した場合、予約済みの接続を使用するスーパーユーザーアカウントで接続し、次の文を実行してアイドル接続を確認します。

select * from pg_stat_activity where backend_type = 'client backend' and state = 'idle';

結果に過剰なアイドルプロセスが表示された場合は、結果の pid を使用して、次の文で接続を解放します。フィールドの説明については、「pg_stat_activity ビューのクエリ」をご参照ください。

select pg_cancel_backend(<pid>);     -- 接続上のクエリをキャンセルします。
select pg_terminate_backend(<pid>);  -- 対応するバックエンド接続プロセスを終了します。

-- バックエンドのアイドル接続プロセスを一括で終了して接続を解放します。
SELECT pg_terminate_backend(pid)
        ,query
        ,datname
        ,usename
        ,application_name
        ,client_addr
        ,client_port
        ,backend_start
        ,state
FROM    pg_stat_activity
WHERE   length(query) > 0
AND     pid != pg_backend_pid()
AND     backend_type = 'client backend'
AND     state = 'idle'
AND     application_name != 'hologres'
AND     query not like '%pg_cancel_backend%';

スーパーユーザー向けの予約接続

Hologres は、スーパーユーザー向けに接続を予約します。予約数はインスタンス仕様によって異なります (インスタンス管理)。これらの接続により、接続数が上限に達した場合でも、アイドル状態の接続を終了させるなどの管理タスクを実行できます。標準ユーザーが使用できる接続数は、max_connections から予約数を差し引いた値です。通常の操作にスーパーユーザーアカウントを使用しないでください。すべての接続を使い切り、管理アクセスがブロックされる可能性があります。

ユーザー接続制限

ユーザー接続制限の設定

ユーザーごとの接続制限を設定して、リソースの過剰消費を防止します。

次のステートメントを実行して、単一のアクセスノード上のユーザーの接続を制限します。マルチノードインスタンスの場合、合計制限は (ノードあたりの接続数) * (ノード数) です。

  • 構文

    ALTER ROLE "Alibaba Cloud account ID" CONNECTION LIMIT <number>; 
  • パラメーター

    パラメーター

    説明

    Alibaba Cloud account ID

    制限するアカウントの ID です。RAM ユーザーの場合、アカウント UID の前に p4_ を付けます。

    アカウント概要

    number

    接続数の上限です。

    値は [-1, N] の範囲で指定する必要があります。-1 を指定すると、そのユーザーの接続制限が解除されます。

  • この例では、RAM ユーザー 283813xxxx をノードあたり 1 つの接続に制限します。

    ALTER ROLE "p4_283813xxxx" CONNECTION LIMIT 1; 

ユーザー接続制限の確認

次の SQL 文を実行して、インスタンスユーザーのノードあたりの接続制限を確認します。

SELECT rolname, rolconnlimit
FROM pg_roles
WHERE rolconnlimit <> -1;

クエリ結果のサンプル:

       rolname | rolconnlimit 
---------------+--------------
 p4_283813xxxx |      1
(1 row)

アイドル接続の自動終了

インスタンスの接続が常に上限に近づく場合、アプリケーションにコネクションリークがある可能性があります。アイドル接続の自動終了を有効にすると、リソースを解放できます。指定した期間を超えてアイドル状態の接続は、自動的に切断されます。

  • 制限事項

    Hologres V0.10.25 以降でサポートされています。以前のバージョンについては、「アップグレード中に発生する一般的なエラー」をご参照いただくか、Hologres DingTalk グループに参加してアップグレードをリクエストしてください。詳細については、オンラインサポートの利用方法をご参照ください。

  • 構文

    • セッションレベル

      -- 接続が 10 分間 (600,000 ミリ秒) アイドル状態の場合、自動的に切断します。
      SET idle_session_timeout = 600000;
    • データベースレベル

      -- このデータベースへの接続が 10 分間 (600,000 ミリ秒) アイドル状態の場合、自動的に切断します。
      ALTER DATABASE  <db_name> SET idle_session_timeout = 600000;

      <db_name> を、アイドル接続の自動終了を有効にするデータベースの名前に置き換えてください。

接続のベストプラクティス

Hologres の接続を使用する際は、次のベストプラクティスに従ってください。

  • スーパーユーザーアカウントの適切な使用

    • アプリケーション接続や通常の操作にスーパーユーザーアカウントを使用しないでください。接続が上限を超えると、スーパーユーザーでも接続できない場合があります。

    • 接続上限の枯渇やクエリのハングなどの緊急時に備えて、専用のスーパーユーザーアカウントを作成してください。

  • 適切な接続プールの設定

    • Hologres は、idle_session_timeout を有効にしない限り、デフォルトではアイドル接続を自動終了しません。接続プールを使用して、アイドル接続を速やかに解放してください。

    • リソースを解放するために、アイドル接続を定期的にクリーンアップしてください。

    • holo-client や Flink コネクタなどの Fixed Plan クライアントの接続プールも同様に慎重にサイズを設定してください。これらはノードあたり 6,400 の FixedFE クォータを消費し、そこでリークが発生すると Fixed Plan パスが停止します。

    • バイナリログの消費ジョブがフェイルオーバーした後は、古い接続が解放されていることを確認し、古い接続によって FixedFE クォータが枯渇しないようにしてください。バイナリログの消費は、Hologres V2.1 以降、デフォルトで軽量な FixedFE 接続を使用します。従来の Walsender レプリケーションプロトコルを引き続き使用している場合は、代わりに max_wal_senders クォータを監視してください。

  • 層別の接続使用状況の監視

    • アクセス層 (ゲートウェイ):コンソールの [Gateway Connection Usage] メトリックを監視してください。

    • FE レイヤー:各 FE ノードの水位を確認するには hologres.hg_connections をクエリし、その後 pg_stat_activity を使用して個々の接続を確認します。

    • FixedFE レイヤー:hg_fixed_fe_stat_activity ビューで Fixed Plan 接続数をカウントします。

    • Walsender:pg_stat_activitybackend_type = 'walsender' でフィルタリングして、バイナリログの消費接続を確認します。

一般的なエラー

  • SQL 実行中に terminating connection due to idle state timeout というエラーメッセージが返されます。

  • 原因:設定されたアイドル状態タイムアウトを超過したため、接続が自動的に切断されました。

  • 解決策:インスタンスに再接続するか、アイドル接続タイムアウトの値を増やしてください。アイドル接続タイムアウトの値を変更する方法については、「アイドル接続の自動終了」をご参照ください。

その他の接続関連のエラーとその対処方法については、「エラーメッセージリファレンス」をご参照ください。