Pgpool-II 4.4.2 文書 | |||
---|---|---|---|
前のページ | 上に戻る | 付録 A. リリースノート | 次のページ |
リリース日: 2020-11-26
このバージョンでは、設定と管理作業を容易にするために多くの改良が行われています。 更に複数PostgreSQLの間で更新の一貫性だけでなく、読み取り一貫性を保証する新しいクラスタリングモードが追加されました。 また、SSLの機能が改善され、よりセキュアな運用ができるようになりました。 さらに、PostgreSQL13の新しいSQLパーサを取り込んでいます。
このバージョンでは、より適切な用語を使うために設定パラメータ名が変更されていることに注意してください。 また、レポートでも用語が変更されています。詳細は、「移行」の章を見てください。
主な改善項目は以下です。
設定ファイルpgpool.confの項目が大幅に改善され、設定と管理が容易になりました。
logging_collectorが実装され、ログ管理が容易になりました。
log_disconnectionsが実装され、接続終了のログが取得できるようになりました。
ヘルスチェックの統計情報をSHOW POOL_HEALTH_CHECK_STATSコマンドで、発行SQLの統計情報をSHOW POOL_BACKEND_STATSコマンド取得できるようになりました。
新しいPCPコマンドpcp_reload_configが追加されました。
システムカタログの情報を参照することにより、write_function_listとread_only_function_listの記述を省略できるようになりました。
複数PostgreSQLの間で更新の一貫性だけでなく、読み取り一貫性を保証する新しいクラスタリングモードsnapshot_isolation_modeが追加されました。
クライアントとPgpool-IIの間でLDAP認証がサポートされました。
SSLの設定にssl_crl_fileとssl_passphrase_commandが追加されました。
PostgreSQL 13のSQLパーサを取り込みました。
master_slave_mode、master_slave_sub_mode、replication_modeは廃止され、backend_clustering_modeになりました。 以下のように書き換えてください。
master_slave_mode = 'on'、master_slave_sub_mode = 'stream' → backend_clustering_mode = 'streaming_replication'
master_slave_mode = 'on'、master_slave_sub_mode = 'logical' → backend_clustering_mode = 'logical_replication'
master_slave_mode = 'on'、master_slave_sub_mode = 'slony' → backend_clustering_mode = 'slony'
replication_mode = 'on' → backend_clustering_mode = 'native_replication'
replication_mode = 'off'、master_slave_mode = 'off' → backend_clustering_mode = 'raw'
適切な用語に変更しました。(Umar Hayat)
pgpool.confに以下の変更が行われました。
black_function_list → write_function_list
white_function_list → read_only_function_list
black_query_pattern → primary_routing_query_pattern
black_memcache_table_list → cache_unsafe_table_list
white_memcache_table_list → cache_safe_table_list
ALWAYS_MASTER flag → ALWAYS_PRIMARY flag
follow_master_command → follow_primary_command
relcache_query_targetのオプション値'master'を'primary'に変更しました。
レポートで使われている用語を変更しました。
master → main
slave → replica
スクリプトの引数で使われている用語を変更しました。
master → main
watchdogで使われている用語を変更しました。
master → leader
以下のwatchdogパラメータは使えなくなりました。
- wd_hostname - wd_port - wd_heartbeat_port - heartbeat_device - heartbeat_destination0 - heartbeat_destination_port0 - heartbeat_destination1 - heartbeat_destination_port1 - other_pgpool_hostname0 - other_pgpool_port0 - other_wd_port0 - other_pgpool_hostname1 - other_pgpool_port1 - other_wd_port1
その代わりに以下のパラメータを使ってください。 詳細は、項5.15.2を参照してください。
hostname0 = 'server1' wd_port0 = 9000 pgpool_port0 = 9999 hostname1 = 'server2' wd_port1 = 9000 pgpool_port1 = 9999 hostname2 = 'server3' wd_port2 = 9000 pgpool_port2 = 9999 heartbeat_hostname0 = 'server1' heartbeat_port0 = 9694 heartbeat_device0 = '' heartbeat_hostname1 = 'server2' heartbeat_port1 = 9694 heartbeat_device1 = '' heartbeat_hostname2 = 'server3' heartbeat_port2 = 9694 heartbeat_device2 = ''
4.1までとは違って、watchdogのパラメータはすべてのホストで同じです。 どのホストであるかを区別するために、pgpool_node_idというファイルを作り、その中に0, 1, 2などのホストの識別を表す数字を入れてください。
write_function_listとread_only_function_listの値は空となりました。
このリリースではPgpool-II 4.1.4 と同様のバグ修正が既に適用されています。 修正の詳細は項A.34を参照してください。
ereportsからstrerror()呼び出しを削除しました。(Muhammad Usama)
ereport()を呼び出すと、errno値がリセットされ、「strerror(errno)」を使用すると、誤ったエラーメッセージが出力されます。 正しい方法は、代わりに%mを使用することです。
master_slave_mode、master_slave_sub_mode、replication_modeをbackend_clustering_modeに統合しました。(Tatsuo Ishii)
Watchdog関連の設定パラメータをシンプルにしました。(Bo Peng)
設定パラメータで単位を指定できるようになりました。(Muhammad Usama)
logging_collectorを追加しました。(Muhammad Usama, Japanese doc by Tatsuo Ishii)
これはPostgreSQLのログ収集プロセスを取り込んだものです。
log_disconnectionsで接続切断ログが取れるようになりました。(Takuma Hoshiai)
log_line_prefixのアプリケーション名設定パラメータが多くの場所で有効になるようにしました。(Tatsuo Ishii)
前はlog_line_prefixの%aはスタートアップメッセージでだけ設定できました。 これを、接続パラメータあるいはSETコマンドでapplication_nameを設定したときにも有効になるようにしました。
また、固定のアプリケーション名を内部プロセスに設定し、ログファイル中のどの行がどのプロセスに所属するのか管理者が容易に判断できるようにました。
pgpool_setupを変更し、log_line_prefixにアプリケーション名が含まれるようにしました。(Tatsuo Ishii)
pg_encがユーザ名/パスワードペアの入力ファイルを受け付けるようになりました。(Umar Hayat, Japanese doc by Tatsuo Ishii)
pg_md5がユーザ名/パスワードペアの入力ファイルを受け付けるようになりました。(Umar Hayat, Japanese doc by Tatsuo Ishii)
SHOW POOL_BACKEND_STATSを追加しました。(Tatsuo Ishii)
この新しいコマンドは、Pgpool-IIが起動してから実行されたSQLコマンドと、バックエンドからエラーが返された回数を表示します。
ヘルスチェックの統計情報を表示するSHOW POOL_HEALTH_CHECK_STATSを追加しました。(Tatsuo Ishii)
新しいPCPコマンドpcp_health_check_statsを追加しました。(Tatsuo Ishii)
新しいpgpool_adm関数pgpool_adm_pcp_health_check_statsを追加しました。(Tatsuo Ishii)
pgpool設定ファイルを再ロードする新しいPCPコマンドpcp_reload_configを追加しました。(Jianshen Zhou, Muhammad Usama, Japanese doc by Tatsuo Ishii)
pcp_stop_pgpoolを使ってpgpoolクラスタ全体を停止することができるようになりました。(Muhammad Usama, Japanese doc by Tatsuo Ishii)
wd_cliユーティリティを追加しました。(Muhammad Usama, Japanese doc by Tatsuo Ishii)
wd_cliはPgpool-IIと外部ヘルスチェックシステとの連携を容易にします。
関数の揮発性をチェックすることによって書き込み関数を自動的に検出する機能を実装しました。(Tatsuo Ishii, Hou, Zhijie)
システムカタログをチェックした結果、SELECT/WITHに含まれる関数が揮発性の性質を持っているなら、書き込みを行う関数であると見なします。 この機能はwrite_function_listとread_only_function_listが空である場合にのみ有効になります。 この機能がデフォルトで有効になるように、black_function_listとwhite_function_listのデフォルトは空となりました。
関数名を取得する方法を複数ヶ所で改善しました。(Hou, Zhijie)
クエリキャッシュが有効である場合、Pgpool-IIはSELECT中の関数呼び出しを精査しました。 今までは関数がスキーマ修飾付きで呼び出されていると認識されませんでしたが、これを認識するように改善しました。
また、write_function_listとread_only_function_listでスキーマ修飾付きの関数名が認識されなかったのも修正されました。 なお、スキーマ修飾付きの関数名を登録する際は、スキーマ修飾なし関数名も登録するようにしてください。
dmlオブジェクトレベルの負荷分散をdisable_load_balance_on_writeでサポートしました。(Subiao, Muhammad Usama)
pgpool_adm関数で引数名が使えるようになりました。(Hou, Zhijie)
例を示します。
SELECT * FROM pcp_node_count(host => 'localhost', port => 11001, username => 't-ishii', password => 't-ishii');
テーブル、データベースOIDによるクエリキャッシュを削除する公開APIを追加しました。(Tatsuo Ishii)
クライアントとpgpoolの間でのLDAP認証をサポートしました。(Takuma Hoshiai) 詳細は項6.2.7をご覧ください。
scram/md5認証のリグレッションテストでAES256パスワード暗号化を使うように改善しました。(Tatsuo Ishii)
backend_clustering_modeで新しい"snapshot isolation mode"を追加しました。(Tatsuo Ishii)
このモードは既存のnative replication modeと似ていますが、バックエンドの間でより厳密な読み取り一貫性を提供します。 (いわゆる原子的読み取り一貫性) これにより、あたかも複数のバックエンドから構成されるクラスタが単一のPostgreSQLサーバに見えるようになります。
hostssl/hostnosslについての記述をpool_hba.confサンプルファイルに追加しました。
hostssl/hostnosslはサポートされていましたが、pool_hba.confのコメントはそのことに言及していませんでした。
ssl_passphrase_commandのサポートを追加しました。(Umar Hayat, Japanese doc by Tatsuo Ishii)
ssl_crl_fileのサポートを追加しました。(Umar Hayat, Japanese doc by Tatsuo Ishii)
SSL関連ファイルの相対パスを設定ファイルのあるディレクトリを基準にするようにしました。(Umar Hayat, Japanese doc by Bo Peng)
拡張問い合わせを実行中に適切なプロセス状態をpsコマンドで表示できるようにしました。(Takuma Hoshiai)
冗長過ぎる認証処理のログをダウングレードしました。(Tatsuo Ishii)
認証処理でより情報量の多いメッセージを表示するようにしました。(Tatsuo Ishii)
スタンバイサーバが存在しない時に不必要なエラーメッセージが出ないようしました。(Tatsuo Ishii)
起動時にPIDファイルが存在しなかったらソケットファイルを削除するようにしました。(Bo Peng)
pgprotoがNOTIFICATIONメッセージを理解できるようにしました。(Tatsuo Ishii)
PostgreSQL 13 beta3の新しいパーサを取り込みました。 主なPostgreSQL 13パーサの変更点は以下です。
Remove an object's dependency on an extension
ALTER TRIGGER ... NO DEPENDS ON EXTENSION ... ALTER FUNCTION ... NO DEPENDS ON EXTENSION ...
Allow FETCH FIRST to use WITH TIES.
FETCH FIRST ... WITH TIES
Allow ALTER VIEW to rename view columns
ALTER VIEW ... RENAME COLUMN ... TO ...
Add VACUUM clause PARALLEL option
VACUUM (PARALLEL 1) ...
pgpool_setupとwatchdog_setupの"PGBIN"と"LPATH"を、PostgreSQLのbin pathとlib pathにしました。(Bo Peng)
PostgreSQLのlib pathをpg_configを使って取得し、regress.shのLD_LIBRARY_PATH環境変数に追加するようにしました。(Bo Peng)
RPMにpcp.confとpool_hba.confのサンプルファイルが含まれるようにしました。(Bo Peng)
RPM内のPCPのUNIX_DOMAIN_PATHを"/var/run/postgresql"にしました。 (Bo Peng)
RHEL8/CentOS8で利用できるようにsrc/redhat/pgpool_rhel7.sysconfigをsrc/redhat/pgpool_rhel.sysconfigにファイル名を変えました。(Bo Peng)
新しいドキュメント「Kubernetesの設定例」を追加しました。(Bo Peng)
wd_escalation_commandによって実行されるサンプルスクリプトescalation.shを追加しました。(Masaya Kawamoto)
「8.2. Watchdogの設定例」を削除しました。(Bo Peng)
Watchdogの設定方法については、「Pgpool-II + Watchdogの構築の例」の項8.2.6.10を参照ください。
Pgpool-II/PostgreSQLの起動/停止などに関するドキュメントを追加しました。(Tatsuo Ishii)
詳細は項3.5などを見てください。(Tatsuo Ishii)
pgpool_setupでsshでlocalhostにパスワード無しでログインできるようにしなければならないことを述べました。(Tatsuo Ishii)
設定例で使用しているサンプルスクリプトのURLとyumリポジトリのURLを変更しました。(Bo Peng)
pcp_promote_nodeが実際には何をやっているのかを記述しました。(Tatsuo Ishii)
「RPMからのインストール」の章を更新しました。(Bo Peng)
auto_failbackに注意書きを追加しました。(Takuma Hoshiai)
.pgpoolkeyの説明を追加しました。(Tatsuo Ishii)
wd_priorityの記述を改善しました。(Kenichiro Tanaka)
if_up_cmdコマンドとif_down_cmdコマンドに関する注意書きを追加しました。(Bo Peng)
インストールドキュメントを改善しました。(Tatsuo Ishii)
「プランニング」の章(項2.1参照)を追加し、ユーザがインストールの概要を把握できるようにしました。
スプリットブレインを避けるためには、Pgpool-IIは3ノード必要であることを明記しました。(Tatsuo Ishii)
詳細は項をご覧ください。
フェイルオーバに関する記述を改善しました。(Tatsuo Ishii)
詳細はfailover_commandをご覧ください。
フェイルオーバ中にセッションが切断される条件を明示しました。(Tatsuo Ishii)
詳細はfailover_commandをご覧ください。
enable_shared_relcacheパラメータの記述を改善しました。
設定例の章でスクリプトへのリンクを設定しました。(Bo Peng)
詳細は項8.2をご覧ください。
pg_enc中に環境変数PGPOOLKEYFILEについて記述しました。(Tatsuo Ishii)
pg_encコマンドは実際にはその環境変数を認識します。