問題タブ [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.
cygwin - pgpool は cygwin で動作しますか
Windowsでpgpoolがcygwinで実行されるかどうか知っていますか? もしそうなら、チュートリアルを知っていますか?
ありがとう、
mysql - MySQL の pgpool-II と同等
MySQL db 用のpgpool-II (PostgreSQL 用) に相当するツールはありますか?
私にとって特に重要なのは機能です - Load Balalce
負荷平衡
データベースが複製されている場合、任意のサーバーで SELECT クエリを実行すると、同じ結果が返されます。pgpool-II はレプリケーション機能を利用して、SELECT クエリを複数のサーバーに分散することで各 PostgreSQL サーバーの負荷を軽減し、システム全体のスループットを向上させます。せいぜい、パフォーマンスは PostgreSQL サーバーの数に比例して向上します。負荷分散は、多くのユーザーが同時に多くのクエリを実行している状況で最適に機能します。
database - master_slave モードで pgpool を構成すると、バックエンドに対する認証に失敗する
Rails アプリなどもある 2 つ以上の Web サーバーで pgpool を実行しようとしています。また、クエリをレプリカに分散し、Web サーバー接続をプールするのもよいでしょうが、重要なことは、master_slave とフェイルオーバーを機能させることです。
Ubuntu 10.04 LTS の apt パッケージから pgpool バージョン 3.4.1(lainihi) をインストールしました。db01 はマスターであり、slony を介して db02 に複製されます。私の pgpool.conf は次のようになります。
現在「生モード」で動作していますが、master_slave で多くのことが得られるのだろうか? とにかく、 master_slave=true のコメントを外すと、接続時に次のようになります。
pgpool ログに次のように表示されます
pgpool はバックエンドで認証できないようですが、psql を使用して各クライアントから各バックエンド サーバーに接続できます。また、pgpool は「raw モード」で動作します。
pgpool を構成するためのヘルプをいただければ幸いです。素晴らしいソリューションのように見えますが、セットアップは予想以上に困難でした。
ティア、
デニス
php - postgresql、pgpool、php でのカーソル エラー
ねえ、リリース環境で発生したエラーの正確な原因を特定するのに少し苦労しています。Google では、この特定のエラーをあまり扱っていないようです。
これは私たちが得ているエラーメッセージです:
SQLSTATE[34000]: 無効なカーソル名: 7 エラー: ポータル "" が存在しません
エラーは、PDO プリペアド ステートメントを使用している場合にのみ表示されます。
これは、リリース環境のセットアップです。
- pgpool 3.0.1 (postgresql バックエンドはストリーミング レプリケーション モードです!)
- PHP5.3.5
- PostgreSQL 9.0
編集: アーキテクチャは 64 ビットです。
私たちのテスト環境では同じエラーは発生しません (編集: 言及するのを忘れていました。標準のテスト環境では、pgpool なしで Postgresql 9.0 を使用しています)。したがって、pgpool が少なくとも部分的に疑わしいと思われます。
このエラーの考えられる原因を知っている人はいますか?
編集: OK、エラーの原因となるコードの例を次に示します。
編集:いくつかのログファイル出力。
Postgresql:
pgpool:
java - Solrデータベースフィールドのインポートの問題。postgres pgpool接続を使用するにはどうすればよいですか?
私はpostgresデータベースとpgpoolを使用しています。Postgresデータベースポート:5432は正常に動作しています。しかし、私はPgpoolポートを使用しています:9999は機能していません。
MYインポートxmlファイル(myproduct.xml) が機能しています
動作しない
pgpoolの問題ですか、それともsolrの問題ですか?問題を教えてください。この問題をpgpoolに保存するにはどうすればよいですか?
postgresql - PGPool-ii を使用して高可用性 Postresql 9.0 を Amazon EC2 にデプロイする
Postgresql 9.0 と PGPool-ii を使用する既存の Web アプリケーションがあります。私はインフラストラクチャを Amazon EC2 に移行することを考えており、次のリンクに触発されました。 .
Amazon RDS は PGSQL をサポートしていないため、PGPool-ii を使用して、異なる DB サーバーでクエリの負荷を分散し、それらを相互に同期させます。
そのため、以下を含む 3 つのフロントエンド Web サーバーを展開する予定です。 - Web サーバー + PHP コード - PGPool-ii
次に、PGSQL のみを使用して、別々の Amazon インスタンスに 2 つのデータベース サーバーを配置します。これらの 2 つの PG サーバーは、3 つのフロントエンド サーバーにある PGPools によって使用されます。
私の質問は、複数の PGPool が複数の PGSQL サーバーにアクセスするため、このソリューションが十分に信頼できるかどうかわからないということです。PGPool のほとんどの例は、N 個の基礎となる PGSQL サーバーを使用する単一の PGPool を示しています。各 Web サーバーに PGPool インスタンスをデプロイするのは良い方法ですか?
そうでない場合、Amazon を使用して SPOF を避けるための他の/より良いアーキテクチャはありますか?
返信ありがとうございます。
postgresql - pgpool-II の health_check_user にはどのような権限が必要ですか?
pg_pool-II のドキュメントのポイントについて混乱しています。はhealth_check_user
DB クラスター サーバーの状態を判断するために使用されますが、どのような機能がhealth_check_user
必要ですか? このユーザーのパスワードを取得するための構成オプションがないため、pg-poolhealth_check_user
も同様に各 DB への信頼レベルのアクセスが必要になると思いますか?
postgresql - フェイルオーバー用のSlonyとPGPool
アプリケーションでフェイルオーバーを処理するための代替手段としてSlonyとPGPoolを検討しています。また、少なくとも2台のDBサーバーが必要になるため、負荷分散も利用できるようです。
どのような状況で、SlonyはPGPoolやその逆よりも優れていますか?
java - PGPool IIに対するJavaクエリにより、「名前のないプリペアドステートメントが存在しません」エラーが発生します
Postgresデータベースを使用するJavaアプリがあり、データベースをスケールアップするためにPGPoolを導入しようとしています。Postgresが次のエラーをスローする問題が発生しています:unnamed prepared statement does not exist
。Postgresでログを記録した後、アプリが実行するすべてのselectステートメントで次のようなことが起こっているのがわかります。
ただし、解析/バインド/実行のステップの間に、PGPoolが追加のクエリを実行することがあるため、ログは次のようになります。
私の理解では、クエリには名前がないため、名前のないクエリが実行される前にそのデータベースセッション中に別のクエリが着信すると、Postgresによって破棄されます。したがって、PGPoolは、解析/バインド/実行ステップの間にこれらの追加のクエリを発行することがあるため、クエリが破棄されます。
私が最初に考えたのは、おそらく私のJavaアプリは、クエリごとにparse / bind/executeステートメントを送信する必要がないということでした。ただし、これは、JDBCバージョン3およびPostgres7.4http://jdbc.postgresql.org/documentation/head/server-prepare.html以降のPostgresJDBCドライバーのデフォルトの動作のようです。サーバー側のプリペアドステートメントを完全に無効にしてみることができると思いますが、ドキュメントにはその方法が指定されておらず、とにかくそれがやりたいことかどうかはわかりません。
私の2番目の考えは、PGPoolIIにこれらのメタデータクエリの送信を停止させることでした。PGPoolをロードバランサーとして使用しようとしているだけなので、テーブルのメタデータについてすべてを知る必要がある理由がわかりません。PGPoolソースのis_system_catalogメソッドでこれらのクエリを実行しているコードをここで追跡しました:https ://github.com/iakio/pgpool-II/blob/master/pool_select_walker.c#L256PGPool が知りたがっているようです何らかの理由でテーブルの関係についてですが、残念ながら、その動作を無効にする方法がわかりません。
この問題を回避する方法についての洞察をいただければ幸いです。
私の環境に関するいくつかの情報:
更新:
この問題の回避策を見つけました。protocolVersion=2
JDBC URLに配置することにより、基本的にPostgresJDBCドライバーにサーバー側のプリペアドステートメントを使用しないように指示します。これにより、データベースの前でPGPoolIIを使用しながらアプリを実行できます。ただし、PGPoolを使用するためだけにJDBCバージョン2プロトコルにフォールバックする必要があるという事実に悩まされています。
postgresql - Postgres 9.0 と pgpool レプリケーション: 単一障害点?
私のアプリケーションは Postgresql 9.0 を使用し、グローバル データベースと対話する 1 つ以上のステーションで構成されています。これは一般的なクライアント サーバー アプリケーションに似ていますが、ハードウェアの追加を避けるために、すべてのステーションにクライアントとサーバーの両方が含まれています。サーバーとしても機能し、その他はクライアントとして機能します。このソリューションにより、私はスケーラブルになります。ユーザーは最初は単一のステーションを必要とするかもしれませんが、初期段階で役に立たない別のサーバーを使用せずに、将来さらに拡張することを決定できます。
メインステーションがダウンすると、他のすべてのステーションが機能しなくなることを回避しようとしています。そのための最善の解決策は、メイン データベースを 1 つ以上のステーションの未使用のデータベースに継続的に複製することです。
検索すると、私のニーズに pgpool を使用できることがわかりましたが、すべての例とチュートリアルから、障害点はメインデータベースから pgpool を実行するサーバーに移動するようです。
複数の pgpool とハートビート ツールについて読んだことがありますが、その方法が明確ではありません。
分離された特殊なサーバーが存在しない私のアーキテクチャを考えると、誰かが私にいくつかのヒントを与えることができますか? フェールオーバーの場合、pgpool はすべて自動で行うように見えますが、フェールオーバーの状況は、管理者の介入なしに標準ユーザーが処理できると考えてよいでしょうか?