問題タブ [pgpool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
327 参照

postgresql-9.1 - pgpool2は、失敗したマスターを新しいスレーブとして再参加できません

pgpool2 3.1.3がインストールされており、2つのpostgresql9.1.3バックエンドがストリーミングレプリケーションのマスター/スレーブとして構成されています。
マスターが失敗した場合、すべてが正常であり、スレーブが引き継ぎ、新しいマスターになります。問題は、クラスター内の古いマスターに再度参加したい場合、これがスレーブではなくマスターとして追加されることです。
pgpooladminバージョン3.1.1を使用しています。
何か案が ?

0 投票する
2 に答える
12322 参照

postgresql - 適切な PgPool II 構成

約 150 のリクエストを受け入れるように PgPool を構成しようとしています。Postgres サーバーは 100 接続のみを受け入れるように構成されています。100 を超えるものは PgPool でプールする必要があります。私はそれを理解していないようです。要求をキューに入れるために PgPool のみが必要ですが、現在の構成ではそれが行われません。JMeter テストから、100 を超える接続を取得しようとすると、postgres で PSQL エラー: というエラーが表示されますsorry, too many clients

次のパラメーターを使用して PGPool のみを構成しました。

追加の接続リクエストをキューに入れるために PgPool のみが必要なため、上記の構成は正しいですか? 適切な構成についてアドバイスをお願いします。

0 投票する
1 に答える
445 参照

bash - スクリプトがアプリケーションによって実行されるときに、bash スクリプトの SSH コマンドが実行されない

データベース ノードがダウンしたときにフェールオーバー スクリプトを実行する PG プールを使用しています。スクリプトは、新しいマスターの特定のファイルに触れ、古いマスターにいくつかの変更を加える必要があります。実行すると問題なく動作しますが、アプリケーションで実行すると動作しません。ホストの詳細が記載された電子メールが送信されるため、スクリプトが適切に実行されていることがわかります。キーが設定されているため、パスワードは必要ありません。

スクリプトは次のとおりです。

古い/新しいホストがローカル マシンの場合でも機能しません。これは pgpool ユーザーを介して実行されていることに関係しているように感じますが、よくわかりません。何か案は?

0 投票する
2 に答える
3567 参照

database - pgpool がデータベースを作成できません

pgpoolコマンドの使用を開始しました

端末に次のメッセージが表示され始めました。

2012-05-04 10:54:29 ログ: pid 4109: pgpool-II が正常に開始されました。バージョン 2.3.2.1 (とみてぼし)

しかし、次のコマンドを実行しようとすると:

次のエラー メッセージが表示されます。

createdb: データベースに接続できませんでした postgres: サーバーに接続できませんでした: そのようなファイルまたはディレクトリはありません。サーバーはローカルで実行されており、Unix ドメイン ソケット "/var/run/postgresql/.s.PGSQL.9999" で接続を受け入れていますか?

ポートを 9999 か​​ら 5432 に変更すると、bench_replicationスレーブ ノードではなく、ローカル ノードにのみデータベースが作成されます。bench_replicationただし、チュートリアルでは、を介してすべてのスレーブ ノードにデータベースを作成するために、このコマンドでポート 9999 を指定するように指示されていますpgpool

pgpool本当に動いているか確認するため、pgpool使用中のコマンドを停止します

pgpoolが実際に実行されていたことを確認します。私は何を間違っていますか?pgpoolネットの標準チュートリアルに記載されているように、すべての構成ファイルを変更しました。

0 投票する
2 に答える
20033 参照

postgresql - pgpool-II認証の失敗

マスターホットスタンバイとして構成された2つのPostgreSQL9.1からpgpool-II3.2.1を使用しています。

PGAdminから認証しようとすると、次のようになります。

pgpoolログには次のように表示されます。

本当に奇妙なのは、ログからのmd5ハッシュがリクエストごとに変わるため、/ usr / local / etc/pool_passwdと/usr/local/etc/pcp.confの両方で設定したものと比較しても意味がないことです。

構成の問題を見つけるのを手伝ってもらえますか?

0 投票する
1 に答える
6001 参照

postgresql - PHP PDO PGPOOL PGSQL-SQLSTATE [HY000]:一般的なエラー:7サーバーへの接続がありません

私が抱えている問題を説明しようとしています!!!

PDO拡張機能を使用して、pgpool-IIを介してPostgreSQLに接続します。Apache内では正常に動作しますが、(同じマシン上の)PHP CLIから、次のPDOエラーが発生します。

SQLSTATE [HY000]:一般エラー:7サーバーへの接続がありません

私はすでにグーグルとここで検索しました、しかし誰もこれをしようとしたことがないようです。誰かが何か考えを持っていますか?

編集:

これは、接続を確立するために使用するコードです。

ManageDBは、データベース接続を作成するだけでなく、いくつかのユーティリティ関数を実装する私自身のクラスです。

0 投票する
1 に答える
528 参照

php - php5 + pdo + postgres + pgpool-ii: ログなしのエラー

私は pgpool-ii 3.2.1、php 5.3.3-7+squeeze14、postgresql 8.4.13 を使用しています。

PDOで作成したinsertクエリで困っているのですが、ログが書かれていないのでどこに問題があるのか​​わかりません(postgres, apache2, pgpool-II)。

クエリは非常に単純です。

pgpool-II を無効にすると (PDO を有効にして)、すべてがうまくいきます。PDO を無効にしてpg_query(pgpool-II を有効にして) クエリを実行しても、クエリは正しく実行されました。他の同様のクエリは、PDO + pgpool-ii でうまくいきます。誰か助けてくれませんか?

0 投票する
1 に答える
682 参照

postgresql-9.1 - pgpool接続がフリーズします

負荷分散と接続プールを備えたストリーミングレプリケーションモードで、2つのバックエンドを備えたpgpool 3.2.1をインストールしました。pgpool接続を崩壊させるために、いくつかの高負荷テストを実行しました。

このルールが正しいと仮定すると:max_pool * num_init_children <=(max_connections --superuser_reserved_connections)

テスト1:

num_init_children = 90 max_pool = 1

(マスターのみ)max_connections = 100 superuser_reserved_connections = 3

psql -U postgres -c'SELECT COUNTfrompg_stat_activity'の結果は90でした。

テスト2:

num_init_children = 90 max_pool = 2

(マスターのみ)max_connections = 100 superuser_reserved_connections = 3

psql -U postgres -c'SELECT COUNT from pg_stat_activity'の結果は91でした。他の6つの接続で、最大97の接続を取得するにはどうなりますか?これは、postgresqlに到達できる接続の最大数です。

どちらの場合も、pgpoolAdminで使用されるすべての接続を取得し、データベースへの接続がフリーズし、新しい接続が許可されませんでした。

ありがとうございました!

0 投票する
1 に答える
3202 参照

django - pgpool2の負荷分散が機能しない

近い将来、データベースの負荷分散が必要になるPython/Djangoアプリがあります。その間、ローカル仮想マシンのセットアップにpgpoolを実装する方法を学ぼうとしています。

私は4つのUbuntu12.04VMを持っています:

pgpool-IIバージョン3.1.1を使用しており、データベースサーバーはPostgreSQL9.1を実行しています。

アプリのデータベース接続が192.168.1.80:9999を指しているので、正常に動作します。

問題は、Apache abを使用して負荷をかけると、SELECTクエリのいずれもバランスが取れていないように見えることです。すべての負荷は私のdb1マスターに行きます。また、プールサーバー自体の負荷が非常に懸念されます。これは、db1と比較して非常に高く、おそらく平均で8〜10倍高くなります。一方、私のdb2およびdb3サーバーの負荷はほぼゼロであり、db1からのみ複製しているように見えます。これは、abを使用したテストではそれほど負荷がかかりません。

これにより、プールサーバーの負荷が最大約2.3になります。db1の負荷は約0.4で、db2とdb3の負荷はほぼゼロです。

誰かが私の設定を見て、私が間違っているかどうかを確認できますか?

私の全体の設定はここにあります:

0 投票する
1 に答える
1156 参照

jdbc - 並列モードの Pgpool が Java で機能しない

データベーステーブルを複数のサーバーに分割するために、並列モードでpgpool 3.2.1を使用しようとしています。ただし、Java を使用する場合は、レプリケーション モードのみを実行し、並列モードは実行しないようです。

テストでは、Postgres 8.3 を実行する 3 つのバックエンド サーバーと、分散するテーブルに 300 行のテスト データベースを使用しています。

SQL ステートメントを使用して (つまり、psql シェルから) データベースを作成してクエリを実行すると、すべてが正常に機能しているように見えます。システム サーバーにクエリを実行すると 300 行が表示され、3 つのバックエンド サーバーにクエリを実行すると、それぞれに 100 行があることが示されます。

ただし、Java アプリケーションから同じデータベースを作成すると、挿入が分散ではなく複製されるため、各バックエンド サーバーには 300 行すべてが含まれます。Java でシステム サーバーにクエリを実行すると、正しく 300 行が表示されますが、psql でシステム サーバーにクエリを実行すると、結果が結合されて 900 行が表示されます。

Java では並列モードが無視され、代わりにレプリケーション モードが使用されているようです。これに関する pgpool ログには何も出力されていないようで、データがバックエンド サーバー間で分散されていないことを除いて、Java でエラーは発生しません。

pgpool のマニュアルに次の制限が記載されています。 http://pgpool.projects.pgfoundry.org/pgpool-II/doc/pgpool-en.html#restriction

Extended Query Protocol (並列モード用)

JDBC ドライバなどで使用されている拡張クエリ プロトコルはサポートされていません。シンプル クエリ プロトコルを使用する必要があります。これは、準備済みステートメントを使用できないことを意味します。

Java プログラムは準備済みステートメントを使用しており、準備済みステートメントを使用しないという選択肢はないかもしれません。

pgpoolとプリペアド ステートメントに関する同様の質問があります 。PGPool II に対する Java クエリにより、「名前のないプリペアド ステートメントが存在しません」というエラーが発生する

しかし、protocolVersion=2 を JDBC URL に追加すると、Java の挿入ステートメントが終了しなくなります。

誰もこの問題を経験しましたか? 可能な回避策はありますか?

ありがとう