問題タブ [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.
postgresql - 同時接続数が 10000 の pgpool num_init_children
昨日、pgbench で pgpool をテストしました。
同時接続数は 30 で、pgpool のデフォルトの num_init_children は 32 です。
したがって、 -c 33 を設定すると、抜け出さない限りテストはブロックされます。
私の質問は:
num_init_children=10000 というのは、pgpool が 10000 プロセスで起動するという意味です。
何か問題がありますか?
10000 の同時接続で pgpool を設定するにはどうすればよいですか?
database - pgpool での再起動後に Postgresql マスター ノードが失敗する
pgpool (マスター/スレーブ モード) + postgresql ストリーミング レプリケーションをセットアップしました。次に、failover_command の正確性を確認します。ネットワーク マスター ノードの電源を切ると、pgpool は指定された時間待機します。この間にマスター ノードが応答しない場合は、failover_command. そして、pgpool failover_command をすぐに実行する init.d スクリプトを介して postgresql マスターを再起動した場合。その結果、マスター ノードはスレーブ ノードに、スレーブ ノードはマスター ノードに切り替わります。これを回避するには、pgpool をオフにしてから、マスター ノードを再起動して pgpool を含める必要があります。この問題はどのように解決できますか? PS私の英語でごめんなさい:)
postgresql - データベースサーバーでのpgpoolのセットアップ
私は3つのサーバーを持っています。1 つは pgpool を実行しており、別の 2 つはマスター/スレーブ モードのストリーミング レプリケーションを実行しています。pgpool をインストールするときpgpool_regclass
に、データベース サーバーにも をインストールするように勧められました。マスターノードにインストールしても問題ありませんが、スレーブに同じことをしようとすると、エラーが発生しましERROR: cannot execute CREATE EXTENSION in a read-only transaction
た。
SELECT pg_is_in_recovery();
スレーブがホットスタンバイでtrueを返すからだと思います。だから私pgpool_regclass
はスレーブにインストールすることになっているのだろうか。そうではないようですが、pgpool doc には、pgpool がアクセスするすべてのデータベースにインストールする必要があると書かれています。
postgresql - 新しい Postgresql ノードを pgpool に追加します
レプリケーションなしで並列クエリを実行するためだけに、2 つの Postgresql データベースで pgpool インスタンスを使用することを計画しています。システム全体をブロックすることなく、新しいノードを pgpool に追加できますか?
どうもありがとう
postgresql - マスター/スレーブ モードの pgpool-ii: フェイルオーバーを最も簡単にトリガーするにはどうすればよいですか?
そこで、いくつかのおもちゃの postgresql インフラストラクチャをいくつかのローカル仮想マシンでテストして、フェールオーバー時に pgpool がどのように動作するかを判断しています。2 つのデータベース マシン (192.168.0.2 と 192.168.0.3) と pgpool マシン (192.168.0.4) を持つ基本的なセットアップを構成しました。192.168.0.3 は、ストリーミング レプリケーションを使用して 192.168.0.2 のスレーブとして設定されています。pgpool-ii は以下を使用して構成されています。
これですべて動作することを確認しました。つまり、マスター データベースを変更してもレプリケーションは機能しており、サンプル アプリケーションを使用してマスター、スレーブ、および pgpool-ii に接続し、期待どおりの結果を得ることができます。
service postgresql stop
ここで、pgpool に接続する長時間実行されるアプリケーションを開始し、マスター データベース サーバーに SSH で接続して ( root として) postgres タスクを強制的に終了することにより、フェールオーバーを引き起こそうとしました。アプリケーションはクエリを正しく実行し続けますが、フェイルオーバーは発生しません (スクリプトが実行されていません)。master データベースに直接接続することもテストしましたが、postgres サービスを停止すると、アプリケーションがクラッシュしてしまいます。
私は何か間違ったことをしていますか?pgpool を正しく構成していませんか? または、フェイルオーバーをトリガーするより良い方法はありますか?
編集: 要求に応じて、最初のエラーが発生したログの部分を次に示します。
奇妙なことに、私はまだpgpoolに接続してクエリを実行できるので、明らかにそこにあるものを理解していません.
編集2:これらはservice postgresql shutdown
、マスターで発生したエラーです。pgpoolのシャットダウン開始までのすべてを表示します。
私のサンプル アプリケーションは、マスターがシャットダウンされたときに実際に終了したことに注意してください。
編集 3: を適切に設定した後、新しいログにsr_check_period
エラーsr_check_user
が表示されsr_check_password
ます。以前のエラーはすべてなくなりました。