問題タブ [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.
database - 障害が発生した postgresql マスター ノードの自動復旧が pgpool II で機能しない
Postgresql と Pgpool II のセットアップは初めてです。Pgpool と Repmgr を使用して Postgresql HA/負荷分散を構成しました。
リンクをたどってセットアップを行いました。
マスター ノードを停止すると、フェイルオーバーが正常に行われ、スレーブ ノードが新しいマスター ノードとして機能します。
フェイルオーバー後、障害が発生したノードを手動で復旧し、新しいマスター ノードと同期する必要があります。
回復プロセスを自動化したい。
pgpool ノードのpgpool.confファイルには、パラメーターrecovery_1st_stage_commandが含まれています。ソースをオンラインで検索したところ、Pgpool ノードの構成ファイル pgpool.conf にパラメーター 「recovery_1st_stage_command」を設定する必要があることがわかりました。
パラメータrecovery_1st_stage_command = 'basebackup.sh'を設定しました。スクリプト'basebackup.sh'ファイルを両方の Postgresql ノードのデータ ディレクトリ'/var/lib/pgsql/9.4/data' の下に配置しました。
また、ディレクトリ「/var/lib/pgsql/9.4/data」の下の両方のデータベースノードにスクリプト「pgpool_remote_start」を配置しました。
また、両方のデータベース ノードで pgpool 拡張機能 pgpool_recovery と pgpool_adm を作成しました。
マスター ノードが停止すると、フェイルオーバーが発生しますが、復旧スクリプト「basebackup.sh」は実行されません。
pgpool ログを確認し、デバッグ レベルも有効にしました。スクリプトが実行されたかどうかはまだわかりません。
故障したノードの自動オンライン復旧を手伝ってください。私が使用したスクリプトを見つけてください。
basebackup.sh
pgpool_remote_start スクリプト。
ありがとう。
java - Java Hibernate クエリにロード バランス コメントがない
Java プロジェクトで pgPool を使用して、Postgres データベースで負荷分散を行っています。
pgPool は読み取り専用クエリをスレーブ サーバーに送信し、書き込みクエリをマスター サーバーに送信します。それは大丈夫です。
しかし、私たちのアプリケーションには、クエリをマスターサーバーでのみ実行する必要がある非常に特殊なケースがあります。
pgPool は次のメカニズムを提供します。
上記のクエリは、常にマスター サーバーで実行されます。
私はたくさん検索しましたが、手動クエリでコメントを設定することは可能ですが (Query クラスに setComment() があります)、メソッド名から作成されたクエリで Hibernate リポジトリを使用してそれを行う方法を見つけることができませんでした。
例:
このクエリにコメントを入れる方法は?
postgresql - node-postgres LEFT JOIN クエリ
次の関数を使用して node-postgres (pg) で結合クエリを実行しようとしていますが、構文エラーが発生します。問題は結合クエリです。他のすべては正常に機能します。pgで結合クエリをフォーマットする正しい方法は何ですか?
java - ハイバネート セッション。どのサーバーに接続されていますか?フェールオーバーと pgpool-II での PostgreSQL JDBC ドライバーの使用
PostgreSQL のドキュメントには、HA セットアップで使用するために JDBC 文字列で複数のホストを渡すことができることが示されています (ページの下部): https://jdbc.postgresql.org/documentation/head/connect.html
私のセットアップには、PostgreSQL サーバーが実行されている 3 つのノードがあります。pgpool-II を使用して HA を実装しました。マスター ノードと 2 つのスタンバイ ノードがあります。
次の休止状態のプロパティを使用すると、うまく機能します。
私のアプリケーションはクラスターに接続し、たとえば 10.200.0.50 がダウンしている場合、他のアドレスのいずれかを使用します。
しかし、私の質問はこれです、使用後:
セッションが接続を開いた JDBC 接続文字列からどのホストを確認できますか?
コード:
3 つのノードすべてを含む元の JDBC 文字列が返されます。
postgresql - pgpool 3.5.4 と JDBC の問題
memcache が有効になっている pgpool 3.5.4 があり、それを使用して Redshift に接続しています。
2 つの単純なプログラムを作成しました。1 つは Java (JDBC postgresql-9.4.1212.jre6.jar) で、もう 1 つは Python (psycopg2 postgres パッケージを使用) で、pgpool に接続するだけで単純なクエリを実行します (例: select * from customer) limit 10;) 奇妙で異なる動作に気付きました。また、コマンド ライン ツール psql を使用してクエリを実行しました。
1) キャッシングを有効にして pgpool で JDBC を使用すると、エラーが発生します
2016-11-15 10:56:27: pid 31043: 致命的: バックエンドがエラー メッセージをスローする
2016-11-15 10:56:27: pid 31043: 詳細: バックエンドからのエラーのため、現在のセッションを終了しています
2016-11-15 10:56:27: pid 31043: ヒント: バックエンド エラー: 「ポータル "pgpool31043" は存在しません」
2)キャッシングを無効にしてpgpoolでJDBCを使用すると動作します
3) キャッシングを有効または無効にして pgpool で psycopg2 または psql コマンドラインを使用すると動作します
JDBCだけが機能しない理由を誰かが理解するのを手伝ってくれますか?