pgbouncer
pgbouncer â пÑл Ñоединений Postgres Pro
СинÑакÑиÑ
Ð ÑиÑÑÐµÐ¼Ð°Ñ Linux:
pgbouncer [-d] [-R] [-v] [-u полÑзоваÑелÑ] pgbouncer.ini
pgbouncer -V | -h
Ð ÑиÑÑÐµÐ¼Ð°Ñ Windows:
pgbouncer [-v] [-u полÑзоваÑелÑ] pgbouncer.ini
pgbouncer -V | -h
ÐÐ»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ pgbouncer в виде ÑлÑÐ¶Ð±Ñ Windows еÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе аÑгÑменÑÑ:
pgbouncer.exe --regservice pgbouncer.ini
pgbouncer.exe --unregservice pgbouncer.ini
ÐпиÑание
pgbouncer â ÑÑо пÑогÑамма, ÑпÑавлÑÑÑÐ°Ñ Ð¿Ñлом Ñоединений Postgres Pro. ÐÑбое конеÑное пÑиложение Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ Ðº pgbouncer, как еÑли Ð±Ñ ÑÑо бÑл непоÑÑедÑÑвенно ÑеÑÐ²ÐµÑ Postgres Pro, и pgbouncer ÑоздаÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение к ÑеалÑÐ½Ð¾Ð¼Ñ ÑеÑвеÑÑ, либо задейÑÑвÑÐµÑ Ð¾Ð´Ð½Ð¾ из Ñанее ÑÑÑановленнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений.
ÐÑедназнаÑение pgbouncer â минимизиÑоваÑÑ Ð¸Ð·Ð´ÐµÑжки, ÑвÑзаннÑе Ñ ÑÑÑановлением новÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений к Postgres Pro.
ЧÑÐ¾Ð±Ñ Ð½Ðµ наÑÑÑаÑÑ ÑеманÑÐ¸ÐºÑ ÑÑанзакÑий пÑи пеÑеклÑÑении подклÑÑений, pgbouncer поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð½ÐµÑколÑко видов пÑлов:
- ÐÑл ÑеанÑов
Ðаиболее коÑÑекÑнÑй меÑод. Ðогда ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑаеÑÑÑ, ÐµÐ¼Ñ Ð½Ð°Ð·Ð½Ð°ÑаеÑÑÑ Ð¾Ð´Ð½Ð¾ ÑеÑвеÑное подклÑÑение на вÑÑ Ð²ÑемÑ, пока ÐºÐ»Ð¸ÐµÐ½Ñ Ð¾ÑÑаÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÑннÑм. Ðогда ÐºÐ»Ð¸ÐµÐ½Ñ Ð¾ÑклÑÑаеÑÑÑ, ÑÑо подклÑÑение к ÑеÑвеÑÑ Ð²Ð¾Ð·Ð²ÑаÑаеÑÑÑ Ð² пÑл. ÐÑÐ¾Ñ Ð¼ÐµÑод ÑабоÑÐ°ÐµÑ Ð¿Ð¾ ÑмолÑаниÑ.
- ÐÑл ÑÑанзакÑий
ÐодклÑÑение к ÑеÑвеÑÑ Ð½Ð°Ð·Ð½Ð°ÑаеÑÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑ ÑолÑко на вÑÐµÐ¼Ñ ÑÑанзакÑии. Ðогда pgbouncer замеÑаеÑ, ÑÑо ÑÑанзакÑÐ¸Ñ Ð·Ð°Ð²ÐµÑÑена, ÑÑо подклÑÑение возвÑаÑаеÑÑÑ Ð² пÑл.
- ÐÑл опеÑаÑоÑов
Ðаиболее агÑеÑÑивнÑй меÑод. ÐодклÑÑение к ÑеÑвеÑÑ Ð±ÑÐ´ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑаÑÑÑÑ Ð² пÑл ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле завеÑÑÐµÐ½Ð¸Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ запÑоÑа. ТÑанзакÑии Ñ Ð½ÐµÑколÑкими опеÑаÑоÑами в ÑÑом Ñежиме запÑеÑаÑÑÑÑ, Ñак как они не бÑдÑÑ ÑабоÑаÑÑ.
ÐдминиÑÑÑаÑивнÑй инÑеÑÑÐµÐ¹Ñ pgbouncer ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· неÑколÑкиÑ
новÑÑ
команд SHOW, доÑÑÑпнÑÑ
пÑи подклÑÑении к ÑпеÑиалÑной «виÑÑÑалÑной» базе даннÑÑ
pgbouncer.
ÐÑÑÑÑÑй запÑÑк
ÐÐ°Ð·Ð¾Ð²Ð°Ñ Ð½Ð°ÑÑÑойка и иÑполÑзование демонÑÑÑиÑÑÑÑÑÑ Ð½Ð¸Ð¶Ðµ.
СоздайÑе Ñайл
pgbouncer.ini. ÐодÑобнее он опиÑÑваеÑÑÑ Ð½Ð° ÑÑÑаниÑе manpgbouncer(5). ÐапÑимеÑ:[databases] template1 = host=127.0.0.1 port=5432 dbname=template1 [pgbouncer] listen_port = 6543 listen_addr = 127.0.0.1 auth_type = md5 auth_file = userlist.txt logfile = pgbouncer.log pidfile = pgbouncer.pid admin_users = someuser
СоздайÑе Ñайл
userlist.txtÑо ÑпиÑком полÑзоваÑелей, коÑоÑÑм ÑазÑеÑено подклÑÑение:"некоÑоÑÑй_полÑзоваÑелÑ" "его_паÑолÑ_на_ÑеÑвеÑе"
ÐапÑÑÑиÑе pgbouncer:
$ pgbouncer -d pgbouncer.ini
ÐÑимеÑание
ÐÑа команда не ÑабоÑÐ°ÐµÑ Ð² ÑиÑÑÐµÐ¼Ð°Ñ Windows. ÐмеÑÑо ÑÑого pgbouncer должен запÑÑкаÑÑÑÑ Ð² виде ÑлÑжбÑ, коÑоÑÑÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑнаÑала заÑегиÑÑÑиÑоваÑÑ ÑледÑÑÑим обÑазом:
pgbouncer --regservice
СделайÑе Ñак, ÑÑÐ¾Ð±Ñ Ð²Ð°Ñе пÑиложение (или клиенÑ
psql) подклÑÑалоÑÑ Ðº pgbouncer, а не к ÑеÑвеÑÑ Postgres Pro непоÑÑедÑÑвенно:$ psql -p 6543 -U someuser template1
ÐÐ»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pgbouncer подклÑÑиÑеÑÑ Ðº ÑпеÑиалÑной админиÑÑÑаÑивной базе даннÑÑ pgbouncer и вÑполниÑе
SHOW HELP;, ÑÑÐ¾Ð±Ñ Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð¸ÑÑÑÑ Ñ ÐµÐ³Ð¾ ÑпÑавкой:$ psql -p 6543 -U someuser pgbouncer pgbouncer=# SHOW HELP; NOTICE: Console usage DETAIL: SHOW [HELP|CONFIG|DATABASES|FDS|POOLS|CLIENTS|SERVERS|SOCKETS|LISTS|VERSION|...] SET key = arg RELOAD PAUSE SUSPEND RESUME SHUTDOWN [...]
ÐÑли Ð²Ñ Ð²Ð½Ð¾Ñили Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñайл
pgbouncer.ini, его можно пеÑезагÑÑзиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹:pgbouncer=# RELOAD;
ÐаÑамеÑÑÑ
-dÐапÑÑÑиÑÑ Ð² Ñоновом Ñежиме. Ðез ÑÑого ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑ Ð±ÑÐ´ÐµÑ ÑабоÑаÑÑ Ð½Ð° пеÑеднем плане.
ÐÑимеÑание
ÐÑо не ÑабоÑÐ°ÐµÑ Ð² Windows, Ñам pgbouncer нÑжно запÑÑкаÑÑ Ð² виде ÑлÑжбÑ.
-RÐÑполниÑÑ Ð¿ÐµÑезапÑÑк на «леÑÑ». ÐÑи ÑÑом pgbouncer подклÑÑаеÑÑÑ Ðº ÑабоÑаÑÑÐµÐ¼Ñ Ð¿ÑоÑеÑÑÑ, забиÑÐ°ÐµÑ Ñ Ð½ÐµÐ³Ð¾ оÑкÑÑÑÑе ÑокеÑÑ Ð¸ наÑÐ¸Ð½Ð°ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¸Ñ . ÐÑли акÑивного пÑоÑеÑÑа неÑ, он запÑÑкаеÑÑÑ Ð² обÑÑном Ñежиме.
ÐÑимеÑание
ÐÑо ÑабоÑаеÑ, ÑолÑко еÑли ÐС поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑокеÑÑ Unix и в конÑигÑÑаÑии опÑеделÑн паÑамеÑÑ
unix_socket_dir. Ðе ÑабоÑÐ°ÐµÑ Ð² Windows. Также пÑи ÑÑом не поддеÑживаÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ TLS, они ÑбÑаÑÑваÑÑÑÑ.-uполÑзоваÑелÑÐеÑеклÑÑиÑÑÑÑ Ð½Ð° заданного полÑзоваÑÐµÐ»Ñ Ð¿Ñи запÑÑке.
-vУвелиÑиÑÑ Ð´ÐµÑализаÑÐ¸Ñ Ð²Ñвода. ÐÐ¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð½ÐµÐ¾Ð´Ð½Ð¾ÐºÑаÑно.
-qÐÑиглÑÑиÑÑ Ð²Ñвод: не вÑводиÑÑ Ð½Ð¸Ñего в
stdout. ÐамеÑÑÑе, ÑÑо ÑÑо не влиÑÐµÑ Ð½Ð° ÑÑÐ¾Ð²ÐµÐ½Ñ Ð²ÑводимÑÑ ÑообÑений, а ÑолÑко оÑклÑÑÐ°ÐµÑ Ð²Ñвод вstdout. ÐÑедназнаÑено Ð´Ð»Ñ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑкÑипÑаÑinit.d.-VÐÑвеÑÑи веÑÑиÑ.
-hÐÑвеÑÑи коÑоÑкÑÑ ÑпÑавкÑ.
--regserviceWin32: ÐаÑегиÑÑÑиÑоваÑÑ pgbouncer в каÑеÑÑве ÑлÑÐ¶Ð±Ñ Windows. ÐÐ¼Ñ ÑлÑÐ¶Ð±Ñ Ð±ÑÐ´ÐµÑ Ð¾Ð¿ÑеделÑÑÑÑÑ Ð·Ð½Ð°Ñением паÑамеÑÑа конÑигÑÑаÑии
service_name.--unregserviceWin32: РазÑегиÑÑÑиÑоваÑÑ ÑлÑÐ¶Ð±Ñ Windows.
ÐдминиÑÑÑаÑÐ¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð½ÑолÑ
ÐÑа конÑÐ¾Ð»Ñ Ð´Ð¾ÑÑÑпна пÑи обÑÑном подклÑÑении к базе pgbouncer:
$ psql -p 6543 pgbouncer
ÐодклÑÑаÑÑÑÑ Ðº ÑÑой конÑоли ÑазÑеÑено ÑолÑко полÑзоваÑелÑм, пеÑеÑиÑленнÑм в паÑамеÑÑаÑ
конÑигÑÑаÑии admin_users или stats_users. (Ðа иÑклÑÑением Ñежима auth_mode=any, когда в каÑеÑÑве stats_user Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ Ð»Ñбой полÑзоваÑелÑ.)
ÐÑоме Ñого, полÑзоваÑÐµÐ»Ñ pgbouncer ÑазÑеÑено подклÑÑение без паÑолÑ, еÑли ÑÑо подклÑÑение ÑÑÑанавливаеÑÑÑ ÑеÑез ÑÐ¾ÐºÐµÑ Unix и Ñ ÐºÐ»Ð¸ÐµÐ½Ñа ÑÐ¾Ñ Ð¶Ðµ uid полÑзоваÑÐµÐ»Ñ Unix, ÑÑо и Ñ ÑабоÑаÑÑего пÑоÑеÑÑа.
ÐÐ¾Ð¼Ð°Ð½Ð´Ñ Ð²Ñвода инÑоÑмаÑии
ÐÐ¾Ð¼Ð°Ð½Ð´Ñ SHOW вÑводÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½ÑÑ Ð¸Ð½ÑоÑмаÑиÑ. ÐÐ°Ð¶Ð´Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° опиÑана ниже.
SHOW STATS
ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑÑаÑиÑÑикÑ. ÐÑводимÑе ÑÑой и ÑвÑзаннÑми командами ÑÑммаÑнÑе знаÑениÑ, накапливаемÑе Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñа запÑÑка pgbouncer, и ÑÑедние знаÑÐµÐ½Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑÑÑÑÑ Ñ Ð¿ÐµÑиодиÑноÑÑÑÑ stats_period.
databaseÐаза даннÑÑ , Ð´Ð»Ñ ÐºÐ¾ÑоÑой пÑедÑÑавлена ÑÑаÑиÑÑика.
total_xact_countÐбÑее ÑиÑло ÑÑанзакÑий SQL, пÑоÑедÑÐ¸Ñ ÑеÑез pgbouncer.
total_query_countÐбÑее ÑиÑло SQL-запÑоÑов, пÑоÑедÑÐ¸Ñ ÑеÑез pgbouncer.
total_receivedÐбÑий обÑÑм ÑеÑевого ÑÑаÑика (в байÑÐ°Ñ ), коÑоÑÑй полÑÑил pgbouncer.
total_sentÐбÑий обÑÑм ÑеÑевого ÑÑаÑика (в байÑÐ°Ñ ), коÑоÑÑй пеÑедал pgbouncer.
total_xact_timeÐбÑее вÑÐµÐ¼Ñ (в микÑоÑекÑÐ½Ð´Ð°Ñ ), в ÑеÑение коÑоÑого pgbouncer иÑполÑзовал подклÑÑÐµÐ½Ð¸Ñ Ðº Postgres Pro, вÑполнÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð¸Ð»Ð¸ пÑоÑÑаиваÑ.
total_query_timeÐбÑее вÑÐµÐ¼Ñ (в микÑоÑекÑÐ½Ð´Ð°Ñ ), в ÑеÑение коÑоÑого pgbouncer акÑивно иÑполÑзовал подклÑÑÐµÐ½Ð¸Ñ Ðº Postgres Pro, вÑполнÑÑ Ð·Ð°Ð¿ÑоÑÑ.
total_wait_timeÐÑемÑ, в ÑеÑение коÑоÑого клиенÑÑ Ð¾Ð¶Ð¸Ð´Ð°Ð»Ð¸ оÑвеÑов ÑеÑвеÑа (в микÑоÑекÑÐ½Ð´Ð°Ñ ).
avg_xact_countСÑеднее ÑиÑло ÑÑанзакÑий в ÑекÑÐ½Ð´Ñ Ð·Ð° поÑледний пеÑиод ÑÑаÑиÑÑики.
avg_query_countСÑеднее ÑиÑло запÑоÑов в ÑекÑÐ½Ð´Ñ Ð·Ð° поÑледний пеÑиод ÑÑаÑиÑÑики.
avg_recvСÑеднÑÑ ÑкоÑоÑÑÑ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¾Ñ ÐºÐ»Ð¸ÐµÐ½Ñов (Ð±Ð°Ð¹Ñ Ð² ÑекÑндÑ).
avg_sentСÑеднÑÑ ÑкоÑоÑÑÑ Ð¿ÐµÑедаÑи даннÑÑ ÐºÐ»Ð¸ÐµÐ½Ñам (Ð±Ð°Ð¹Ñ Ð² ÑекÑндÑ).
avg_xact_timeСÑеднÑÑ Ð´Ð»Ð¸ÑелÑноÑÑÑ ÑÑанзакÑии (в микÑоÑекÑÐ½Ð´Ð°Ñ ).
avg_query_timeСÑеднÑÑ Ð´Ð»Ð¸ÑелÑноÑÑÑ Ð·Ð°Ð¿ÑоÑа (в микÑоÑекÑÐ½Ð´Ð°Ñ ).
avg_wait_timeСÑеднее вÑÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¾ÑвеÑов ÑеÑвеÑа в ÑеÑение ÑекÑÐ½Ð´Ñ (в микÑоÑекÑÐ½Ð´Ð°Ñ ).
SHOW STATS_TOTALS
ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ð´Ð¼Ð½Ð¾Ð¶ÐµÑÑво ÑезÑлÑÑаÑов SHOW STATS, вклÑÑаÑÑее ÑолÑко ÑÑммаÑнÑе знаÑÐµÐ½Ð¸Ñ (total_).
SHOW STATS_AVERAGES
ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ð´Ð¼Ð½Ð¾Ð¶ÐµÑÑво ÑезÑлÑÑаÑов SHOW STATS, вклÑÑаÑÑее ÑолÑко ÑÑедние знаÑÐµÐ½Ð¸Ñ (avg_).
SHOW TOTALS
ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑÑ Ð¶Ðµ ÑÑаÑиÑÑикÑ, ÑÑо SHOW STATS, но по вÑем базам даннÑÑ
в Ñелом.
SHOW SERVERS
type«S» Ð´Ð»Ñ ÑеÑвеÑов
userÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, Ñ ÐºÐ¾ÑоÑÑм pgbouncer подклÑÑаеÑÑÑ Ðº ÑеÑвеÑÑ.
databaseÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
stateСоÑÑоÑние подклÑÑÐµÐ½Ð¸Ñ pgbouncer к ÑеÑвеÑÑ, один из ваÑианÑов:
active,usedилиidle.addrIP-адÑÐµÑ ÑеÑвеÑа Postgres Pro.
portÐоÑÑ ÑеÑвеÑа Postgres Pro.
local_addrÐÑÑ Ð¾Ð´Ð½Ñй адÑÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð½Ð° локалÑной маÑине.
local_portÐÑÑ Ð¾Ð´Ð½Ñй поÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð½Ð° локалÑной маÑине.
connect_timeÐÑÐµÐ¼Ñ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ.
request_timeÐÑÐµÐ¼Ñ Ð²ÑдаÑи поÑледнего запÑоÑа.
waitТекÑÑÐ°Ñ Ð´Ð»Ð¸ÑелÑноÑÑÑ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ (в ÑекÑÐ½Ð´Ð°Ñ ).
wait_usÐÑÐ¾Ð±Ð½Ð°Ñ ÑаÑÑÑ ÑекÑÑей длиÑелÑноÑÑи Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ (в микÑоÑекÑÐ½Ð´Ð°Ñ ).
close_needed1, еÑли Ñоединение бÑÐ´ÐµÑ Ð·Ð°ÐºÑÑÑо пÑи ближайÑей возможноÑÑи в ÑвÑзи Ñ Ð²Ñполнением командÑ
RECONNECTлибо в ÑвÑзи Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸ÐµÐ¼ паÑамеÑÑов ÑоединениÑ, вÑзваннÑм пеÑезагÑÑзкой Ñайла конÑигÑÑаÑии или изменениÑми в DNS.ptrÐдÑÐµÑ Ð²Ð½ÑÑÑеннего обÑекÑа Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ подклÑÑениÑ. ÐÑполÑзÑеÑÑÑ ÐºÐ°Ðº ÑникалÑнÑй иденÑиÑикаÑоÑ.
linkÐдÑÐµÑ ÐºÐ»Ð¸ÐµÐ½ÑÑкого подклÑÑениÑ, Ñ ÐºÐ¾ÑоÑÑм ÑвÑзан ÑеÑвеÑ.
remote_pidÐденÑиÑикаÑÐ¾Ñ Ð¾Ð±ÑлÑживаÑÑего ÑеÑвеÑного пÑоÑеÑÑа (PID). Ðогда подклÑÑение вÑполнÑеÑÑÑ ÑеÑез ÑÐ¾ÐºÐµÑ Unix и ÐС Ð¼Ð¾Ð¶ÐµÑ Ð²ÑдаÑÑ PID пÑоÑеÑÑа, ÑÑо PID, полÑÑеннÑй Ð¾Ñ ÐС. РпÑоÑивном ÑлÑÑае ÑÑÐ¾Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ Ð¸Ð·Ð²Ð»ÐµÐºÐ°ÐµÑÑÑ Ð¸Ð· пакеÑа Ð´Ð»Ñ Ð¾ÑменÑ, пеÑеданного ÑеÑвеÑом; ÑÑо бÑÐ´ÐµÑ Ð¸Ð½ÑеÑеÑÑÑÑий PID пÑи подклÑÑении к ÑеÑвеÑÑ Postgres Pro, но еÑли подклÑÑение обÑлÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð´ÑÑгой pgbouncer, ÑÑо бÑÐ´ÐµÑ ÑлÑÑайное ÑиÑло.
tlsÐнÑоÑмаÑÐ¸Ñ Ð¾ TLS-подклÑÑении; пÑÑÑÐ°Ñ ÑÑÑока, еÑли TLS не иÑполÑзÑеÑÑÑ.
SHOW CLIENTS
type«C» Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñов.
userÐолÑзоваÑелÑ, подклÑÑÑннÑй Ñо ÑÑоÑÐ¾Ð½Ñ ÐºÐ»Ð¸ÐµÐ½Ñа.
databaseÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
stateСоÑÑоÑние клиенÑÑкого подклÑÑениÑ:
active,used,waitingилиidle.addrIP-адÑÐµÑ ÐºÐ»Ð¸ÐµÐ½Ñа.
portÐоÑÑ, к коÑоÑÐ¾Ð¼Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÑн клиенÑ.
local_addrÐонеÑнÑй адÑÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð½Ð° локалÑной маÑине.
local_portÐонеÑнÑй поÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð½Ð° локалÑной маÑине.
connect_timeÐÑÐµÐ¼Ñ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ.
request_timeÐÑÐµÐ¼Ñ Ð¿Ð¾Ñледнего запÑоÑа клиенÑа.
waitТекÑÑÐ°Ñ Ð´Ð»Ð¸ÑелÑноÑÑÑ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ (в ÑекÑÐ½Ð´Ð°Ñ ).
wait_usÐÑÐ¾Ð±Ð½Ð°Ñ ÑаÑÑÑ ÑекÑÑей длиÑелÑноÑÑи Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ (в микÑоÑекÑÐ½Ð´Ð°Ñ ).
close_neededÐе иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñов.
ptrÐдÑÐµÑ Ð²Ð½ÑÑÑеннего обÑекÑа Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ подклÑÑениÑ. ÐÑполÑзÑеÑÑÑ ÐºÐ°Ðº ÑникалÑнÑй иденÑиÑикаÑоÑ.
linkÐдÑÐµÑ ÑеÑвеÑного подклÑÑениÑ, Ñ ÐºÐ¾ÑоÑÑм ÑвÑзан клиенÑ.
remote_pidÐденÑиÑикаÑÐ¾Ñ Ð¿ÑоÑеÑÑа (PID), в ÑлÑÑае, еÑли ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑаеÑÑÑ ÑеÑез ÑÐ¾ÐºÐµÑ UNIX и ÐС Ð¼Ð¾Ð¶ÐµÑ Ð²ÑдаÑÑ ÑÑÐ¾Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑ.
tlsÐнÑоÑмаÑÐ¸Ñ Ð¾ TLS-подклÑÑении; пÑÑÑÐ°Ñ ÑÑÑока, еÑли TLS не иÑполÑзÑеÑÑÑ.
SHOW POOLS
ÐовÑй пÑл ÑоздаÑÑÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ паÑÑ ÑÑÑноÑÑей (база даннÑÑ , полÑзоваÑелÑ).
databaseÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
userÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ.
cl_activeЧиÑло клиенÑÑÐºÐ¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений, коÑоÑÑе ÑвÑÐ·Ð°Ð½Ñ Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑми к ÑеÑвеÑÑ Ð¸ могÑÑ Ð¾Ð±ÑабаÑÑваÑÑ Ð·Ð°Ð¿ÑоÑÑ.
cl_waitingЧиÑло клиенÑÑÐºÐ¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений, коÑоÑÑе оÑпÑавили запÑоÑÑ, но еÑÑ Ð½Ðµ полÑÑили подклÑÑÐµÐ½Ð¸Ñ Ðº ÑеÑвеÑÑ.
sv_activeЧиÑло ÑеÑвеÑнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений, ÑвÑзаннÑÑ Ñ ÐºÐ»Ð¸ÐµÐ½Ñами.
sv_idleЧиÑло ÑеÑвеÑнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений, коÑоÑÑе не иÑполÑзÑÑÑÑÑ Ð¸ могÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ задейÑÑвоваÑÑÑÑ Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑов клиенÑов.
sv_usedЧиÑло ÑеÑвеÑнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений, коÑоÑÑе пÑоÑÑаиваÑÑ Ð´Ð¾Ð»ÑÑе
server_check_delay, поÑÑÐ¾Ð¼Ñ Ð¿ÐµÑед повÑоÑнÑм иÑполÑзованием Ð´Ð»Ñ Ð½Ð¸Ñ Ð½Ñжно вÑполнÑÑÑserver_check_query.sv_testedЧиÑло ÑеÑвеÑнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ Ð² даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²ÑполнÑÑÑÑÑ Ð·Ð°Ð¿ÑоÑÑ
server_reset_queryилиserver_check_query.sv_loginЧиÑло ÑеÑвеÑнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений, ÑеÑез коÑоÑÑе в даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²ÑполнÑеÑÑÑ Ð²Ñ Ð¾Ð´ на ÑеÑвеÑ.
maxwaitÐоказÑваеÑ, как долго Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ Ð² оÑеÑеди ÑамÑй пеÑвÑй ÐºÐ»Ð¸ÐµÐ½Ñ (в ÑекÑÐ½Ð´Ð°Ñ ). ÐÑли ÑÑо ÑиÑло наÑÐ¸Ð½Ð°ÐµÑ ÑвелиÑиваÑÑÑÑ, знаÑÐ¸Ñ ÑекÑÑий пÑл ÑеÑвеÑов не ÑпÑавлÑеÑÑÑ Ñ Ð·Ð°Ð¿ÑоÑами доÑÑаÑоÑно бÑÑÑÑо. ÐÑиÑиной ÑÐ¾Ð¼Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÐµÑегÑÑженнÑй ÑеÑвеÑ, либо пÑоÑÑо ÑлиÑком маленÑкий ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ñла (паÑамеÑÑ
pool_size).maxwait_usÐÑÐ¾Ð±Ð½Ð°Ñ ÑаÑÑÑ Ð¼Ð°ÐºÑималÑного вÑемени Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ (в микÑоÑекÑÐ½Ð´Ð°Ñ ).
pool_modeÐейÑÑвÑÑÑий Ñежим пÑла.
SHOW LISTS
ÐоказÑÐ²Ð°ÐµÑ ÑледÑÑÑие внÑÑÑенние ÑведениÑ, в ÑÑолбÑÐ°Ñ (не ÑÑÑÐ¾ÐºÐ°Ñ ):
databasesЧиÑло баз даннÑÑ .
usersЧиÑло полÑзоваÑелей.
poolsЧиÑло пÑлов.
free_clientsЧиÑло ÑвободнÑÑ ÐºÐ»Ð¸ÐµÐ½Ñов.
used_clientsЧиÑло акÑивнÑÑ ÐºÐ»Ð¸ÐµÐ½Ñов.
login_clientsЧиÑло клиенÑов в ÑоÑÑоÑнии Ð²Ñ Ð¾Ð´Ð° (
login).free_serversЧиÑло ÑвободнÑÑ ÑеÑвеÑов.
used_serversЧиÑло задейÑÑвованнÑÑ ÑеÑвеÑов.
dns_namesÐолиÑеÑÑво имÑн DNS в кеÑе.
dns_zonesÐолиÑеÑÑво зон DNS в кеÑе.
dns_queriesÐолиÑеÑÑво вÑполнÑÑÑÐ¸Ñ ÑÑ Ð·Ð°Ð¿ÑоÑов к DNS.
dns_pendingÐе иÑполÑзÑеÑÑÑ.
SHOW USERS
nameÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ.
pool_modeÐеÑеопÑеделение
pool_modeÐ´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð»Ð¸Ð±Ð¾NULL, еÑли должен иÑполÑзоваÑÑÑÑ Ñежим по ÑмолÑаниÑ.
SHOW DATABASES
nameÐÐ¼Ñ Ð½Ð°ÑÑÑоенной запиÑи Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
hostÐомпÑÑÑеÑ, к коÑоÑÐ¾Ð¼Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑаеÑÑÑ pgbouncer.
portÐоÑÑ, к коÑоÑÐ¾Ð¼Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑаеÑÑÑ pgbouncer.
databaseРеалÑное Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , к коÑоÑой подклÑÑаеÑÑÑ pgbouncer.
force_userÐогда полÑзоваÑÐµÐ»Ñ Ñказан в ÑÑÑоке ÑоединениÑ, подклÑÑение Ð¼ÐµÐ¶Ð´Ñ pgbouncer и Postgres Pro должно ÑÑÑанавливаÑÑÑÑ Ð¾Ñ ÐµÐ³Ð¾ имени, вне завиÑимоÑÑи Ð¾Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð½Ð° ÑÑоÑоне клиенÑа.
pool_sizeÐакÑималÑное ÑиÑло ÑеÑвеÑнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений.
reserve_poolÐакÑималÑное ÑиÑло дополниÑелÑнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений Ð´Ð»Ñ ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
pool_modeÐеÑеопÑеделение pool_mode Ð´Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð»Ð¸Ð±Ð¾
NULL, еÑли должен иÑполÑзоваÑÑÑÑ Ñежим по ÑмолÑаниÑ.max_connectionsÐакÑималÑно возможное ÑиÑло подклÑÑений Ð´Ð»Ñ ÑÑой базÑ, ÑÑÑановленное либо глобалÑно, паÑамеÑÑом
max_db_connections, либо на ÑÑовне базÑ.current_connectionsТекÑÑее ÑиÑло подклÑÑений Ð´Ð»Ñ ÑÑой базÑ.
paused1, еÑли база даннÑÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² ÑоÑÑоÑнии паÑзÑ, инаÑе â 0.
disabled1, еÑли база даннÑÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² оÑклÑÑÑнном ÑоÑÑоÑнии, инаÑе â 0.
SHOW FDS
ÐнÑÑÑеннÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°, коÑоÑÐ°Ñ Ð¿Ð¾ÐºÐ°Ð·ÑÐ²Ð°ÐµÑ ÑпиÑок ÑайловÑÑ Ð´ÐµÑкÑипÑоÑов и Ð¸Ñ Ð²Ð½ÑÑÑеннее ÑоÑÑоÑние.
ÐÑи подклÑÑении полÑзоваÑÐµÐ»Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ pgbouncer ÑеÑез ÑÐ¾ÐºÐµÑ Unix из пÑоÑеÑÑа Ñ UID, ÑовпадаÑÑим Ñ UID ÑекÑÑего пÑоÑеÑÑа, ÐµÐ¼Ñ Ð¿ÐµÑедаÑÑÑÑ ÑеалÑнÑе ÑайловÑе деÑкÑипÑоÑÑ. ÐÑо пÑименÑеÑÑÑ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿ÐµÑезагÑÑзки «на леÑÑ».
ÐÑимеÑание
Ð Windows ÑÑо не ÑабоÑаеÑ.
ÐÑа команда Ñакже блокиÑÑÐµÑ Ð²Ð½ÑÑÑенний Ñикл ÑобÑÑий, Ñак ÑÑо ÐµÑ Ð½Ðµ ÑледÑÐµÑ Ð²ÑполнÑÑÑ, когда pgbouncer иÑполÑзÑеÑÑÑ.
fdЧиÑловое знаÑение Ñайлового деÑкÑипÑоÑа (ФÐ).
taskÐÑедназнаÑение; Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ ÑледÑÑÑие ваÑианÑÑ:
pooler,clientилиserver.userÐолÑзоваÑÐµÐ»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ, занимаÑÑего ÑÑÐ¾Ñ Ð¤Ð.
databaseÐаза даннÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ, занимаÑÑего ÑÑÐ¾Ñ Ð¤Ð.
addrIP-адÑÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ, занимаÑÑего даннÑй ФÐ;
unix, еÑли ÑÑо ÑÐ¾ÐºÐµÑ Unix.portÐоÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ, занимаÑÑего даннÑй ФÐ.
cancelÐлÑÑ Ð¾ÑÐ¼ÐµÐ½Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ подклÑÑениÑ.
linkФайловÑй деÑкÑипÑÐ¾Ñ Ð¾ÑвеÑной ÑÑоÑÐ¾Ð½Ñ ÑеÑвеÑа/клиенÑа.
NULL, еÑли подклÑÑение пÑоÑÑаиваеÑ.
SHOW SOCKETS, SHOW ACTIVE_SOCKETS
ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð½Ð¸Ð·ÐºÐ¾ÑÑовневÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð±Ð¾ вÑеÑ
или ÑолÑко акÑивнÑÑ
ÑокеÑаÑ
. РвÑвод вклÑÑаеÑÑÑ Ð¸Ð½ÑоÑмаÑиÑ, вÑÐ²Ð¾Ð´Ð¸Ð¼Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ SHOW CLIENTS и SHOW SERVERS, а Ñакже дополниÑелÑнÑе ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð½Ð¸Ð·ÐºÐ¾Ð³Ð¾ ÑÑовнÑ.
SHOW CONFIG
ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑекÑÑие паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии, по Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð² ÑÑÑоке Ñо ÑледÑÑÑими ÑÑолбÑами:
keyÐÐ¼Ñ Ð¿ÐµÑеменной конÑигÑÑаÑии.
valueÐнаÑение пеÑеменной конÑигÑÑаÑии.
changeableÐнаÑение
yesилиno, показÑваÑÑее, можно ли измениÑÑ Ð¿ÐµÑеменнÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ ÑабоÑÑ. ÐÑли знаÑениеno, пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð° ÑолÑко пÑи пеÑезагÑÑзке. ЧÑÐ¾Ð±Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð¿ÐµÑеменнÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ ÑабоÑÑ, воÑполÑзÑйÑеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹SET.
SHOW MEM
ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð½Ð¸Ð·ÐºÐ¾ÑÑовневÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑазмеÑе ÑазлиÑнÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð² памÑÑи, вÑделеннÑÑ Ð´Ð»Ñ Ð²Ð½ÑÑÑеннего иÑполÑзованиÑ. ÐÑа инÑоÑмаÑÐ¸Ñ Ð¸Ð¼ÐµÐµÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкÑÑ Ð¿ÑиÑÐ¾Ð´Ñ Ð¸ Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ.
SHOW DNS_HOSTS
ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð° Ñзлов, ÑодеÑжаÑиеÑÑ Ð² кеÑе DNS.
hostnameÐÐ¼Ñ Ñзла.
ttlСколÑко ÑекÑнд оÑÑаÑÑÑÑ Ð´Ð¾ оÑеÑедного внеÑнего поиÑка.
addrsСпиÑок адÑеÑов, ÑазделÑннÑÑ Ð·Ð°Ð¿ÑÑÑми.
SHOW DNS_ZONES
ÐоказÑÐ²Ð°ÐµÑ Ð·Ð¾Ð½Ñ DNS в кеÑе.
zonenameÐÐ¼Ñ Ð·Ð¾Ð½Ñ.
serialТекÑÑий ÑеÑийнÑй номеÑ.
countÐмена Ñзлов, оÑноÑÑÑÐ¸Ñ ÑÑ Ðº ÑÑой зоне.
ÐÐ¾Ð¼Ð°Ð½Ð´Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÑоÑеÑÑом
PAUSE [бд]
pgbouncer пÑÑаеÑÑÑ Ð¾ÑклÑÑиÑÑÑÑ Ð¾Ñо вÑÐµÑ ÑеÑвеÑов, ÑнаÑала Ð¾Ð¶Ð¸Ð´Ð°Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð²ÑÐµÑ Ð·Ð°Ð¿ÑоÑов. ÐÑполнение ÑÑой ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð·Ð°ÐºÐ°Ð½ÑиваеÑÑÑ, ÑолÑко когда завеÑÑаÑÑÑÑ Ð²Ñе запÑоÑÑ. ÐÑа команда должна пÑименÑÑÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð¿ÐµÑезапÑÑка Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
ÐÑли Ñказано Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , бÑÐ´ÐµÑ Ð¿ÑиоÑÑановлена ÑабоÑа ÑолÑко Ñ Ð½ÐµÐ¹.
ÐовÑе подклÑÑÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñов к базе, поÑÑавленной на паÑзÑ, бÑдÑÑ Ð½Ð°Ñ
одиÑÑÑÑ Ð² ÑоÑÑоÑнии ожиданиÑ, пока не бÑÐ´ÐµÑ Ð²Ñполнена команда RESUME.
DISABLE бд
ÐапÑеÑÐ°ÐµÑ Ð»ÑбÑе новÑе подклÑÑÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñов к Ñказанной базе даннÑÑ .
ENABLE бд
РазÑеÑÐ°ÐµÑ Ð½Ð¾Ð²Ñе подклÑÑÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñов поÑле пÑедÑдÑÑей ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ DISABLE.
RECONNECT бд
ÐакÑÑÐ²Ð°ÐµÑ Ð²Ñе оÑкÑÑÑÑе подклÑÑÐµÐ½Ð¸Ñ Ðº Ñказанной базе (или ко вÑем базам) по меÑе Ð¸Ñ Ð¾ÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð² ÑооÑвеÑÑÑвии Ñ Ñежимом пÑла, не дожидаÑÑÑ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ Ð²Ñемени жизни подклÑÑений. ÐÑи ÑÑом немедленно могÑÑ Ð±ÑÑÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð½Ð¾Ð²Ñе подклÑÑÐµÐ½Ð¸Ñ Ðº ÑеÑвеÑÑ, ÑоглаÑно ÑекÑÑим паÑамеÑÑам пÑла.
ÐÑа команда Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð°, когда изменÑеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº ÑеÑвеÑÑ, напÑимеÑ, нÑжно поÑÑепенно пеÑеклÑÑиÑÑÑÑ Ð½Ð° новÑй ÑеÑвеÑ. ÐÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð½Ðµ нÑжно вÑполнÑÑÑ, еÑли Ð²Ñ Ð¼ÐµÐ½ÑеÑе ÑÑÑÐ¾ÐºÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð² pgbouncer.ini и пеÑезагÑÑжаеÑе конÑигÑÑаÑÐ¸Ñ (Ñм. RELOAD) или когда менÑÑÑÑÑ Ð°Ð´ÑеÑа в DNS, Ñак как ÑавнознаÑное дейÑÑвие бÑÐ´ÐµÑ Ð²Ñполнено авÑомаÑиÑеÑки. ÐÑа команда Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð°, ÑолÑко еÑли подклÑÑÐµÐ½Ð¸Ñ pgbouncer маÑÑÑÑÑизиÑÑÑÑÑÑ ÐºÐ°ÐºÐ¸Ð¼Ð¸-Ñо внеÑними ÑÑедÑÑвами.
ÐоÑле вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑой ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶ÐµÐ½ длиÑелÑнÑй пеÑиод, когда бÑдÑÑ ÑÑÑеÑÑвоваÑÑ Ð¸ ÑÑаÑÑе подклÑÑениÑ, и новÑе. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð·Ð½Ð°Ñение ÑолÑко пÑи пеÑеклÑÑении ÑÑаÑика Ð¼ÐµÐ¶Ð´Ñ ÑиÑаÑÑими Ñепликами или пÑи пеÑеклÑÑении Ð¼ÐµÐ¶Ð´Ñ Ñзлами в конÑигÑÑаÑии Ñ Ð½ÐµÑколÑкими ведÑÑими. ÐÑли необÑ
одимо пеÑеклÑÑиÑÑ Ð²Ñе подклÑÑÐµÐ½Ð¸Ñ ÑÑазÑ, ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ PAUSE. ЧÑÐ¾Ð±Ñ Ð·Ð°ÐºÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑкÑÑÑенно (напÑимеÑ, когда пÑоизвеÑÑи пеÑеклÑÑение нÑжно не поÑÑепенно, а ÑÑоÑно), Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе воÑполÑзоваÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ KILL.
KILL бд
Ðемедленно закÑÑÐ²Ð°ÐµÑ Ð²Ñе клиенÑÑкие и ÑеÑвеÑнÑе подклÑÑÐµÐ½Ð¸Ñ Ðº Ñказанной базе даннÑÑ , деакÑивиÑÑÑ ÐµÑ.
ÐовÑе подклÑÑÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñов к деакÑивиÑованной базе бÑдÑÑ Ð½Ð°Ñ
одиÑÑÑÑ Ð² ÑоÑÑоÑнии ожиданиÑ, пока не бÑÐ´ÐµÑ Ð²Ñполнена команда RESUME.
SUSPEND
ÐÑе бÑÑеÑÑ ÑокеÑов оÑиÑаÑÑÑÑ Ð¸ pgbouncer пÑекÑаÑÐ°ÐµÑ Ð¿ÑинимаÑÑ Ð´Ð°Ð½Ð½Ñе ÑеÑез Ð½Ð¸Ñ . ÐÑполнение ÑÑой ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð·Ð°ÐºÐ°Ð½ÑиваеÑÑÑ, ÑолÑко когда вÑе бÑÑеÑÑ Ð±ÑдÑÑ Ð¾ÑиÑенÑ. ÐÑа команда должна пÑименÑÑÑÑÑ, когда pgbouncer пеÑезагÑÑжаеÑÑÑ Â«Ð½Ð° леÑÑ».
ÐовÑе подклÑÑÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñов к пÑиоÑÑановленной базе бÑдÑÑ Ð½Ð°Ñ
одиÑÑÑÑ Ð² ÑоÑÑоÑнии ожиданиÑ, пока не бÑÐ´ÐµÑ Ð²Ñполнена команда RESUME.
RESUME [бд]
ÐоÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑабоÑÑ Ð¿Ð¾Ñле пÑедÑдÑÑей ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ KILL, PAUSE или SUSPEND.
SHUTDOWN
ÐÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº завеÑÑÐµÐ½Ð¸Ñ Ð¿ÑоÑеÑÑа pgbouncer.
RELOAD
УказÑÐ²Ð°ÐµÑ Ð¿ÑоÑеÑÑÑ pgbouncer пеÑезагÑÑзиÑÑ Ñайл конÑигÑÑаÑии и обновиÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÑемÑÑ Ð¿Ð°ÑамеÑÑов.
PgBouncer оÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñайле конÑигÑÑаÑии, заÑÑагиваÑÑие подклÑÑÐµÐ½Ð¸Ñ Ðº базе даннÑÑ . СÑÑеÑÑвÑÑÑие подклÑÑÐµÐ½Ð¸Ñ Ñо ÑÑаÑÑми паÑамеÑÑами бÑдÑÑ Ð·Ð°ÐºÑÑÑÑ Ð¿Ñи ближайÑем оÑвобождении ÑÑÐ¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений (в ÑооÑвеÑÑÑвии Ñ Ñежимом пÑла), а новÑе подклÑÑÐµÐ½Ð¸Ñ Ðº ÑеÑвеÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ наÑнÑÑ Ð¸ÑполÑзоваÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ð²ÑиеÑÑ Ð¿Ð°ÑамеÑÑÑ ÑоединениÑ.
WAIT_CLOSE [бд]
ÐжидаеÑ, пока Ð´Ð»Ñ Ð²ÑеÑ
ÑеÑвеÑнÑÑ
подклÑÑений к Ñказанной базе (или ко вÑем базам) не ÑбÑоÑиÑÑÑ Ð¿Ñизнак close_needed (Ñм. ÐодÑаздел «SHOW SERVERS»). ÐÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¼Ð¾Ð¶Ð½Ð¾ вÑзваÑÑ Ð¿Ð¾Ñле RECONNECT или RELOAD, ÑÑобÑ, напÑимеÑ, в ÑкÑипÑаÑ
пеÑеклÑÑÐµÐ½Ð¸Ñ Ñзлов, дождаÑÑÑÑ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ конÑигÑÑаÑий в полном обÑÑме.
ÐÑÑгие командÑ
SET клÑÑ = аÑгÑменÑ
ÐзменÑÐµÑ Ð¿Ð°ÑамеÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии (Ñм. Ñакже ÐодÑаздел «SHOW CONFIG»). ÐапÑимеÑ:
SET log_connections = 1; SET server_check_query = 'select 2';
(ÐамеÑÑÑе, ÑÑо ÑÑа команда вÑполнÑеÑÑÑ Ð² конÑоли админиÑÑÑаÑоÑа pgbouncer и задаÑÑ Ð¿Ð°ÑамеÑÑÑ pgbouncer. Ðоманда SET, вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð½Ð°Ñ Ð² дÑÑгой базе даннÑÑ
, бÑÐ´ÐµÑ Ð¿ÐµÑедана на вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑеÑвеÑÑ Postgres Pro, как и лÑÐ±Ð°Ñ Ð´ÑÑÐ³Ð°Ñ SQL-команда.)
СигналÑ
SIGHUPÐеÑезагÑÑзка конÑигÑÑаÑии. РавноÑилÑно вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
RELOADв конÑоли.SIGINTÐезопаÑное оÑклÑÑение. РавноÑилÑно вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´
PAUSEиSHUTDOWNв конÑоли.SIGTERMÐемедленное оÑклÑÑение. РавноÑилÑно вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
SHUTDOWNв конÑоли.SIGUSR1РавноÑилÑно вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
PAUSEв конÑоли.SIGUSR2РавноÑилÑно вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
PAUSEв конÑоли.
ÐаÑамеÑÑÑ libevent
Ðз докÑменÑаÑии libevent:
ÐоддеÑжкÑ
epoll,kqueue,devpoll,pollилиselectможно оÑклÑÑиÑÑ, ÑÑÑановив пеÑеменнÑÑ Ð¾ÐºÑÑжениÑEVENT_NOEPOLL,EVENT_NOKQUEUE,EVENT_NODEVPOLL,EVENT_NOPOLLилиEVENT_NOSELECT, ÑооÑвеÑÑÑвенно.ÐÑли ÑÑÑановиÑÑ Ð¿ÐµÑеменнÑÑ Ð¾ÐºÑÑжениÑ
EVENT_SHOW_METHOD,libeventÐ¿Ð¾ÐºÐ°Ð¶ÐµÑ ÑекÑÑий вÑбÑаннÑй меÑод Ñведомлений в ÑдÑе.
Файл конÑигÑÑаÑии pgbouncer.ini
Файл конÑигÑÑаÑии Ð¸Ð¼ÐµÐµÑ ÑоÑÐ¼Ð°Ñ ini-Ñайла. ÐÐ°Ð·Ð²Ð°Ð½Ð¸Ñ Ñазделов запиÑÑваÑÑÑÑ Ð¼ÐµÐ¶Ð´Ñ Â«[» и «]». СÑÑоки, наÑинаÑÑиеÑÑ Ñ Â«;» или «#», ÑÑиÑаÑÑÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑиÑми и игноÑиÑÑÑÑÑÑ. Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ Â«;» и «#», вÑÑÑеÑаÑÑиеÑÑ Ð½Ðµ в наÑале ÑÑÑоки, не ÑаÑпознаÑÑÑÑ.
ÐбÑие паÑамеÑÑÑ
logfileУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ Ñайла жÑÑнала. Файл жÑÑнала оÑÑаÑÑÑÑ Ð¾ÑкÑÑÑÑм, Ñак ÑÑо поÑле ÑÐ¼ÐµÐ½Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ð´Ð»Ñ Ð¿ÑокÑÑÑки ÑледÑÐµÑ Ð²ÑполниÑÑ
kill -HUPилиRELOAD;в конÑоли. ÐамеÑание: Ð Windows Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ оÑÑановиÑÑ Ð¸ Ð²Ð½Ð¾Ð²Ñ Ð·Ð°Ð¿ÑÑÑиÑÑ ÑлÑжбÑ.Ðо ÑмолÑаниÑ: не задано.
pidfileУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ Ñайла PID. Ðез ÑÑого ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑабоÑа в Ñежиме демона не допÑÑкаеÑÑÑ.
Ðо ÑмолÑаниÑ: не задано.
listen_addrУказÑÐ²Ð°ÐµÑ ÑпиÑок адÑеÑов, по коÑоÑÑм Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÑинимаÑÑÑÑ TCP-подклÑÑениÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑказаÑÑ
*, ÑÑо бÑÐ´ÐµÑ Ð¾Ð·Ð½Ð°ÑаÑÑ Â«Ð¿ÑинимаÑÑ Ð¿Ð¾ вÑем адÑеÑам». Ðогда ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ задан, пÑинимаÑÑÑÑ ÑолÑко подклÑÑÐµÐ½Ð¸Ñ ÑеÑез Unix-ÑокеÑÑ.ÐдÑеÑа могÑÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ ÑиÑлами (в ÑоÑмаÑе IPv4/IPv6) или именами.
Ðо ÑмолÑаниÑ: не задано.
listen_portÐÐ¾Ð¼ÐµÑ Ð¿ÑинимаÑÑего поÑÑа. ÐадаÑÑÑÑ Ð¸ Ð´Ð»Ñ ÑокеÑов TCP, и Ð´Ð»Ñ Unix-ÑокеÑов.
Ðо ÑмолÑаниÑ: 6432
unix_socket_dirУказÑÐ²Ð°ÐµÑ ÑаÑположение ÑокеÑов Unix. ÐейÑÑвÑÐµÑ Ð¸ Ð´Ð»Ñ Ð¿ÑинимаÑÑего ÑокеÑа, и Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений к ÑеÑвеÑÑ. ÐÑли задана пÑÑÑÐ°Ñ ÑÑÑока, ÑокеÑÑ Unix оÑклÑÑаÑÑÑÑ. ТÑебÑеÑÑÑ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿ÐµÑезагÑÑзки «на леÑÑ» (-R). ÐамеÑание: не поддеÑживаеÑÑÑ Ð² Windows.
Ðо ÑмолÑаниÑ: /tmp
unix_socket_modeРежим Ñайловой ÑиÑÑÐµÐ¼Ñ Ð´Ð»Ñ ÑокеÑа Unix.
Ðо ÑмолÑаниÑ: 0777
unix_socket_groupÐÐ¼Ñ Ð³ÑÑÐ¿Ð¿Ñ Ð´Ð»Ñ ÑокеÑа Unix.
Ðо ÑмолÑаниÑ: не задано.
userÐÑли задан, опÑеделÑеÑ, на какого полÑзоваÑÐµÐ»Ñ Unix нÑжно пеÑеклÑÑиÑÑÑÑ Ð¿Ð¾Ñле запÑÑка. РабоÑаеÑ, ÑолÑко еÑли pgbouncer запÑÑкаеÑÑÑ Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ root или Ñже запÑÑен Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ заданного полÑзоваÑелÑ.
ÐамеÑание: Ðе поддеÑживаеÑÑÑ Ð² Windows.
Ðо ÑмолÑаниÑ: не задано.
auth_fileÐÐ¼Ñ Ñайла, из коÑоÑого бÑдÑÑ Ð·Ð°Ð³ÑÑжаÑÑÑÑ Ð¸Ð¼ÐµÐ½Ð° и паÑоли полÑзоваÑелей. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑÐ°Ð·Ð´ÐµÐ»Ñ Â«Ð¤Ð¾ÑÐ¼Ð°Ñ Ñайла аÑÑенÑиÑикаÑии».
Ðо ÑмолÑаниÑ: не задано.
auth_hba_fileФайл конÑигÑÑаÑии HBA, коÑоÑÑй иÑполÑзÑеÑÑÑ ÐºÐ¾Ð³Ð´Ð° Ñежиме
auth_typeÑавенhba. ÐоддеÑживаеÑÑÑ Ñ Ð²ÐµÑÑии 1.7.Ðо ÑмолÑаниÑ: не задано.
auth_typeÐпÑеделÑеÑ, как аÑÑенÑиÑиÑиÑоваÑÑ Ð¿Ð¾Ð»ÑзоваÑелей.
pamÐÐ»Ñ Ð¿ÑовеÑки подлинноÑÑи полÑзоваÑелей иÑполÑзÑеÑÑÑ Ð¸Ð½ÑÑаÑÑÑÑкÑÑÑа PAM (Pluggable Authentication Modules, ÐодклÑÑаемÑе модÑли аÑÑенÑиÑикаÑии). Файл
auth_fileигноÑиÑÑеÑÑÑ. ÐÑÐ¾Ñ Ð¼ÐµÑод неÑовмеÑÑим Ñ Ð±Ð°Ð·Ð°Ð¼Ð¸ даннÑÑ , Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ Ð¸ÑполÑзÑеÑÑÑauth_user. ÐнÑÑаÑÑÑÑкÑÑÑе PAM в каÑеÑÑве имени ÑлÑÐ¶Ð±Ñ Ð¿ÐµÑедаÑÑÑÑpgbouncer. PAM в Ñайле конÑигÑÑаÑии HBA не поддеÑживаеÑÑÑ.hbaФакÑиÑеÑкий Ñип аÑÑенÑиÑикаÑии загÑÑжаеÑÑÑ Ð¸Ð·
auth_hba_file. ÐÑо позволÑÐµÑ Ð¿ÑименÑÑÑ ÑазнÑе меÑÐ¾Ð´Ñ Ð°ÑÑенÑиÑикаÑии Ð´Ð»Ñ ÑазнÑÑ Ð²Ð°ÑианÑов доÑÑÑпа. ÐапÑимеÑ: Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений ÑеÑез ÑÐ¾ÐºÐµÑ Unix пÑименÑÑÑ Ð¼ÐµÑодpeer, а Ð´Ð»Ñ TCP â TLS. ÐоддеÑживаеÑÑÑ Ñ Ð²ÐµÑÑии 1.7.certÐÐ»Ð¸ÐµÐ½Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ подклÑÑаÑÑÑÑ Ð¿Ð¾ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ TLS Ñ Ð´ÐµÐ¹ÑÑвиÑелÑнÑм клиенÑÑким ÑеÑÑиÑикаÑом. ÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð±ÐµÑÑÑÑÑ Ð¸Ð· Ð¿Ð¾Ð»Ñ CommonName (ÐбÑее имÑ) ÑеÑÑиÑикаÑа.
md5ÐÑименÑÑÑ Ð¿ÑовеÑÐºÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¿Ð¾ Ñ ÐµÑÑ MD5. ÐÑÐ¾Ñ Ð¼ÐµÑод аÑÑенÑиÑикаÑии вÑбиÑаеÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ. Файл
auth_fileÐ¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ ÐºÐ°Ðº заÑиÑÑованнÑе MD5, Ñак и оÑкÑÑÑÑе паÑоли. Ðаже пÑи вÑбоÑеmd5, еÑли паÑÐ¾Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð·Ð°Ð´Ð°Ð½ Ð´Ð»Ñ Ð¼ÐµÑода SCRAM, авÑомаÑиÑеÑки бÑÐ´ÐµÑ Ð¿ÑименÑÑÑÑÑ Ð¿ÑовеÑка по алгоÑиÑÐ¼Ñ SCRAM.scram-sha-256ÐÑименÑÑÑ Ð¿ÑовеÑÐºÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¿Ð¾ алгоÑиÑÐ¼Ñ SCRAM-SHA-256. ÐаданнÑй паÑамеÑÑом
auth_fileÑайл должен ÑодеÑжаÑÑ Ð·Ð°ÑиÑÑованнÑе SCRAM или оÑкÑÑÑÑе паÑоли. УÑÑиÑе, ÑÑо заÑиÑÑованнÑе SCRAM паÑоли могÑÑ Ð¸ÑполÑзоваÑÑÑÑ ÑолÑко Ð´Ð»Ñ Ð¿ÑовеÑки паÑоли клиенÑов, но не Ð´Ð»Ñ Ð²Ñ Ð¾Ð´Ð° на ÑеÑвеÑ. ЧÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ SCRAM Ð´Ð»Ñ ÑеÑвеÑнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений, паÑоли Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ задаÑÑ Ð¾ÑкÑÑÑÑм ÑекÑÑом.plainÐо ÐºÐ°Ð½Ð°Ð»Ñ Ð¿ÐµÑедаÑÑÑÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð² оÑкÑÑÑом ÑекÑÑе. УÑÑаÑевÑий ваÑианÑ.
trustÐÑÑенÑиÑикаÑÐ¸Ñ Ð½Ðµ вÑполнÑеÑÑÑ. Тем не менее Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ пÑиÑÑÑÑÑвоваÑÑ Ð²
auth_file.anyÐодобен меÑодÑ
trust, но пеÑеданное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ. ТÑебÑеÑ, ÑÑÐ¾Ð±Ñ Ð´Ð»Ñ Ð²ÑÐµÑ Ð±Ð°Ð· даннÑÑ Ð±Ñло наÑÑÑоено подклÑÑение заданного полÑзоваÑелÑ. ÐÑоме Ñого, база даннÑÑ ÐºÐ¾Ð½Ñоли допÑÑÐºÐ°ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение лÑбого полÑзоваÑÐµÐ»Ñ Ð² каÑеÑÑве админиÑÑÑаÑоÑа.
auth_queryÐапÑÐ¾Ñ Ð´Ð»Ñ Ð¸Ð·Ð²Ð»ÐµÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¸Ð· Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
ÐÐ»Ñ Ð¿ÑÑмого доÑÑÑпа к
pg_shadowÑÑебÑÑÑÑÑ Ð¿Ñава админиÑÑÑаÑоÑа. ÐоÑÑÐ¾Ð¼Ñ ÑекомендÑеÑÑÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð±ÑÑнÑй полÑзоваÑÐµÐ»Ñ Ð¾Ð±ÑаÑалÑÑ Ðº ней, вÑзÑÐ²Ð°Ñ ÑÑнкÑÐ¸Ñ SECURITY DEFINER (Ñ ÐºÐ¾Ð½ÑекÑÑом безопаÑноÑÑи опÑеделивÑего).ÐамеÑÑÑе, ÑÑо ÑÑÐ¾Ñ Ð·Ð°Ð¿ÑÐ¾Ñ Ð²ÑполнÑеÑÑÑ Ð² Ñелевой базе даннÑÑ , Ñак ÑÑо еÑли в нÑм иÑполÑзÑÑÑÑÑ ÑÑнкÑии, они Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð² каждой базе.
Ðо ÑмолÑаниÑ:
SELECT usename, passwd FROM pg_shadow WHERE usename=$1auth_userÐÑли задан паÑамеÑÑ
auth_user, полÑзоваÑели, не опиÑаннÑе в Ñайлеauth_file, бÑдÑÑ Ð¿ÑовеÑÑÑÑÑÑ Ð·Ð°Ð¿ÑоÑомauth_queryпо ÑаблиÑеpg_shadowв базе даннÑÑauth_user. ÐаÑÐ¾Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелÑauth_userбÑÐ´ÐµÑ Ð²Ð·ÑÑ Ð¸Ð· Ñайлаauth_file.ÐÐ»Ñ Ð¿ÑÑмого доÑÑÑпа к
pg_shadowÑÑебÑÑÑÑÑ Ð¿Ñава админиÑÑÑаÑоÑа. ÐоÑÑÐ¾Ð¼Ñ ÑекомендÑеÑÑÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð±ÑÑнÑй полÑзоваÑÐµÐ»Ñ Ð¾Ð±ÑаÑалÑÑ Ðº ней, вÑзÑÐ²Ð°Ñ ÑÑнкÑÐ¸Ñ SECURITY DEFINER (Ñ ÐºÐ¾Ð½ÑекÑÑом безопаÑноÑÑи опÑеделивÑего).Ðо ÑмолÑаниÑ: не задано.
pool_modeУказÑваеÑ, когда подклÑÑение к ÑеÑвеÑÑ Ð¼Ð¾Ð³ÑÑ Ð¿Ð¾Ð²ÑоÑно иÑполÑзоваÑÑ Ð´ÑÑгие клиенÑÑ.
sessionСеÑÐ²ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑаеÑÑÑ Ð² пÑл поÑле оÑклÑÑÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñа. ÐÑо ваÑÐ¸Ð°Ð½Ñ Ð¿Ð¾ ÑмолÑаниÑ.
transactionСеÑÐ²ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑаеÑÑÑ Ð² пÑл поÑле завеÑÑÐµÐ½Ð¸Ñ ÑÑанзакÑии.
statementСеÑÐ²ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑаеÑÑÑ Ð² пÑл поÑле завеÑÑÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑа. Ð ÑÑом Ñежиме не допÑÑкаÑÑÑÑ Ð´Ð»Ð¸Ð½Ð½Ñе ÑÑанзакÑии, Ð¾Ñ Ð²Ð°ÑÑваÑÑие неÑколÑко опеÑаÑоÑов.
max_client_connÐакÑималÑно допÑÑÑимое ÑиÑло клиенÑÑÐºÐ¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений. ÐÑи ÑвелиÑении должно Ñакже ÑвелиÑиваÑÑÑÑ Ð¾Ð³ÑаниÑение на ÑиÑло ÑайловÑÑ Ð´ÐµÑкÑипÑоÑов. ÐамеÑÑÑе, ÑÑо ÑакÑиÑеÑкое ÑиÑло занÑÑÑÑ ÑайловÑÑ Ð´ÐµÑкÑипÑоÑов бÑÐ´ÐµÑ Ð±Ð¾Ð»ÑÑе Ñем
max_client_conn. ÐÑли каждÑй полÑзоваÑÐµÐ»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑаеÑÑÑ Ðº ÑеÑвеÑÑ Ð¿Ð¾Ð´ Ñвоим именем, ÑеоÑеÑиÑеÑки возможнÑй макÑимÑм Ñавен:max_client_conn + (max pool_size * total databases * total users)
ÐÑли полÑзоваÑÐµÐ»Ñ Ð·Ð°Ð´Ð°Ð½ в ÑÑÑоке ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ (вÑе полÑзоваÑели подклÑÑаÑÑÑÑ Ð¿Ð¾Ð´ одним именем), ÑеоÑеÑиÑеÑкий макÑимÑм Ñавен:
max_client_conn + (max pool_size * total databases)
ТеоÑеÑиÑеÑкий макÑимÑм не должен доÑÑигаÑÑÑÑ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð°, еÑли ÑолÑко кÑо-Ñо намеÑенно не пÑедпÑÐ¸Ð¼ÐµÑ ÑпеÑиалÑнÑе меÑÑ Ð´Ð»Ñ ÑÑого. Тем не менее ÑÑо знаÑиÑ, ÑÑо ÑиÑло ÑайловÑÑ Ð´ÐµÑкÑипÑоÑов должно огÑаниÑиваÑÑÑÑ Ð´Ð¾Ð²Ð¾Ð»Ñно болÑÑим ÑиÑлом.
ÐоиÑиÑе
ulimitв ÑÑководÑÑве man в ваÑей ÑиÑÑеме. ÐамеÑание: огÑаниÑениеulimitнепÑименимо в ÑÑеде Windows.Ðо ÑмолÑаниÑ: 100
default_pool_sizeСколÑко подклÑÑений к ÑеÑвеÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ Ð´Ð»Ñ Ð¿Ð°ÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑ/база. ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÐµÑеопÑеделено в конÑигÑÑаÑии Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
Ðо ÑмолÑаниÑ: 20
min_pool_sizeÐобавиÑÑ Ð² пÑл дополниÑелÑнÑе ÑоединениÑ, еÑли ÑиÑло акÑивнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений менÑÑе ÑÑого ÑиÑла. ÐаÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸ÑелÑнÑй ÑÑÑекÑ, когда нагÑÑзка поÑвлÑеÑÑÑ Ð²Ð½ÐµÐ·Ð°Ð¿Ð½Ð¾ поÑле пеÑиода пÑоÑÑоÑ.
Ðо ÑмолÑаниÑ: 0 (оÑклÑÑено)
reserve_pool_sizeЧиÑло дополниÑелÑно ÑазÑеÑÑннÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений в пÑле. ÐÑи 0 ÑезеÑв оÑÑÑÑÑÑвÑеÑ.
Ðо ÑмолÑаниÑ: 0 (оÑклÑÑено)
reserve_pool_timeoutÐÑли ÐºÐ»Ð¸ÐµÐ½Ñ Ð½Ðµ обÑлÑживаеÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ ÑиÑло ÑекÑнд, pgbouncer задейÑÑвÑÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе подклÑÑÐµÐ½Ð¸Ñ Ð¸Ð· ÑезеÑвного пÑла. ÐÑи 0 ÑÑо не пÑоиÑÑ Ð¾Ð´Ð¸Ñ.
Ðо ÑмолÑаниÑ: 5.0
max_db_connectionsÐе допÑÑкаÑÑ Ð±Ð¾Ð»ÑÑе заданного ÑиÑла подклÑÑений к базе даннÑÑ (вне завиÑимоÑÑи Ð¾Ñ Ð¿Ñла, Ñо еÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑ). СледÑÐµÑ Ð·Ð°Ð¼ÐµÑиÑÑ, ÑÑо когда пÑедел доÑÑигаеÑÑÑ, закÑÑÑие подклÑÑÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñа в одном пÑле не позволÑÐµÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ ÑÑÑановиÑÑ Ð´ÑÑгое подклÑÑение к ÑеÑвеÑÑ ÑеÑез дÑÑгой пÑл, Ñак как подклÑÑение пеÑвого пÑла по-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð¾ÑкÑÑÑо. Ðогда ÑеÑÐ²ÐµÑ Ð·Ð°ÐºÑÐ¾ÐµÑ ÐµÐ³Ð¾ (по Ñайм-аÑÑÑ Ð½ÐµÐ°ÐºÑивноÑÑи), новое подклÑÑение бÑÐ´ÐµÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ ÑÑÑановлено Ð´Ð»Ñ Ð¾Ð¶Ð¸Ð´Ð°ÑÑего пÑла.
Ðо ÑмолÑаниÑ: Ð½ÐµÑ Ð¾Ð³ÑаниÑениÑ
max_user_connectionsÐе допÑÑкаÑÑ Ð±Ð¾Ð»ÑÑе заданного ÑиÑла подклÑÑений полÑзоваÑÐµÐ»Ñ (вне завиÑимоÑÑи Ð¾Ñ Ð¿Ñла, Ñо еÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑ). СледÑÐµÑ Ð·Ð°Ð¼ÐµÑиÑÑ, ÑÑо когда пÑедел доÑÑигаеÑÑÑ, закÑÑÑие подклÑÑÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñа в одном пÑле не позволÑÐµÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ ÑÑÑановиÑÑ Ð´ÑÑгое подклÑÑение к ÑеÑвеÑÑ ÑеÑез дÑÑгой пÑл, Ñак как подклÑÑение пеÑвого пÑла по-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð¾ÑкÑÑÑо. Ðогда ÑеÑÐ²ÐµÑ Ð·Ð°ÐºÑÐ¾ÐµÑ ÐµÐ³Ð¾ (по Ñайм-аÑÑÑ Ð½ÐµÐ°ÐºÑивноÑÑи), новое подклÑÑение бÑÐ´ÐµÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ ÑÑÑановлено Ð´Ð»Ñ Ð¾Ð¶Ð¸Ð´Ð°ÑÑего пÑла.
server_round_robinÐо ÑмолÑÐ°Ð½Ð¸Ñ pgbouncer повÑоÑно иÑполÑзÑÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑеÑвеÑа в поÑÑдке LIFO (поÑледнее пÑиÑло, пеÑвое ÑÑло), Ñак ÑÑо оÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð·Ð°Ð³ÑÑзка ÑаÑпÑеделÑеÑÑÑ Ð¿Ð¾ неÑколÑким поÑледним ÑоединениÑм. ÐÑо даÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑÑÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ, еÑли Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¾Ð±ÑлÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¾Ð´Ð¸Ð½ ÑеÑвеÑ. Ðо еÑли за IP Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ ÑкÑÑваеÑÑÑ Ð±Ð°Ð»Ð°Ð½ÑиÑовÑик TCP-Ñоединений, лÑÑÑе, еÑли pgbouncer бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð² данном Ñежиме, обеÑпеÑÐ¸Ð²Ð°Ñ Ñаким обÑазом ÑавномеÑнÑÑ Ð½Ð°Ð³ÑÑзкÑ.
Ðо ÑмолÑаниÑ: 0
ignore_startup_parametersÐо ÑмолÑÐ°Ð½Ð¸Ñ pgbouncer пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑолÑко паÑамеÑÑÑ, коÑоÑÑе он Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÑлеживаÑÑ Ð² ÑÑаÑÑовÑÑ Ð¿Ð°ÐºÐµÑÐ°Ñ :
client_encoding,datestyle,timezoneиstandard_conforming_strings.ÐÑе дÑÑгие паÑамеÑÑÑ Ð²ÑзÑваÑÑ Ð¾ÑибкÑ. ЧÑÐ¾Ð±Ñ Ð¿ÑинималиÑÑ Ð¸ дÑÑгие паÑамеÑÑÑ, Ð¸Ñ Ð½Ñжно ÑказаÑÑ Ð·Ð´ÐµÑÑ, ÑÑÐ¾Ð±Ñ pgbouncer знал, ÑÑо они обÑабаÑÑваÑÑÑÑ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑоÑом и Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ игноÑиÑоваÑÑ.
Ðо ÑмолÑаниÑ: пÑÑÑÐ°Ñ ÑÑÑока
disable_pqexecÐÑклÑÑÐ°ÐµÑ Ð¿ÑоÑокол пÑоÑÑÑÑ Ð·Ð°Ð¿ÑоÑов (PQexec). РоÑлиÑие Ð¾Ñ Ð¿ÑоÑокола ÑаÑÑиÑеннÑÑ Ð·Ð°Ð¿ÑоÑов, ÑÑÐ¾Ñ Ð¿ÑоÑокол допÑÑÐºÐ°ÐµÑ Ñказание неÑколÑÐºÐ¸Ñ Ð·Ð°Ð¿ÑоÑов в одном пакеÑе, ÑÑо оÑÑавлÑÐµÑ Ð¼ÐµÑÑо Ð´Ð»Ñ Ð°Ñак Ñ SQL-инÑекÑией. ÐÑклÑÑение ÑÑого пÑоÑокола Ð¼Ð¾Ð¶ÐµÑ ÑлÑÑÑиÑÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑÑ. РазÑмееÑÑÑ, ÑÑо ознаÑаеÑ, ÑÑо пÑи ÑÑом ÑмогÑÑ ÑабоÑаÑÑ ÑолÑко клиенÑÑ, коÑоÑÑе иÑполÑзÑÑÑ Ð¸ÑклÑÑиÑелÑно пÑоÑокол ÑаÑÑиÑеннÑÑ Ð·Ð°Ð¿ÑоÑов.
Ðо ÑмолÑаниÑ: 0
application_name_add_hostÐобавлÑÐµÑ Ð°Ð´ÑÐµÑ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа и поÑÑ ÐºÐ»Ð¸ÐµÐ½Ñа к имени пÑиложениÑ, задаваемого пÑи ÑÑÑановлении подклÑÑениÑ. ÐÑо Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ Ð¸Ð´ÐµÐ½ÑиÑиÑиÑоваÑÑ Ð¸ÑÑоÑник Ð¿Ð»Ð¾Ñ Ð¸Ñ Ð·Ð°Ð¿ÑоÑов и Ñ. п. ÐÑо вÑполнÑеÑÑÑ, ÑолÑко когда подклÑÑение ÑÑÑанавливаеÑÑÑ; еÑли ÑвойÑÑво
application_nameбÑÐ´ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ñно позднее командойSET, pgbouncer его Ñже не поменÑеÑ.Ðо ÑмолÑаниÑ: 0
conffileÐоказÑÐ²Ð°ÐµÑ ÑаÑположение ÑекÑÑего Ñайла конÑигÑÑаÑии. ÐÑи изменении ÑÑого паÑамеÑÑа pgbouncer бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð´ÑÑгой Ñайл конÑигÑÑаÑии поÑле команд
RELOAD/SIGHUP.Ðо ÑмолÑаниÑ: Ñайл, заданнÑй в командной ÑÑÑоке.
service_nameÐÑполÑзÑеÑÑÑ Ð¿Ñи ÑегиÑÑÑаÑии ÑлÑÐ¶Ð±Ñ win32.
Ðо ÑмолÑаниÑ: pgbouncer
job_nameÐÑевдоним
service_name.stats_periodÐпÑеделÑеÑ, Ñ ÐºÐ°ÐºÐ¾Ð¹ пеÑиодиÑноÑÑÑÑ (в ÑекÑÐ½Ð´Ð°Ñ ) бÑдÑÑ Ð¿ÐµÑеÑÑиÑÑваÑÑÑÑ ÑÑедние знаÑениÑ, вÑводимÑе ÑазлиÑнÑми командами
SHOW, и как ÑаÑÑо агÑегиÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ ÑÑаÑиÑÑика бÑÐ´ÐµÑ Ð·Ð°Ð¿Ð¸ÑÑваÑÑÑÑ Ð² жÑÑнал (но Ñм.log_stats).Ðо ÑмолÑаниÑ: 60
ÐаÑамеÑÑÑ Ð¶ÑÑнала
syslogÐклÑÑаеÑ/оÑклÑÑÐ°ÐµÑ Ð·Ð°Ð¿Ð¸ÑÑ Ð² syslog. Ð Windows вмеÑÑо syslog пÑименÑеÑÑÑ eventlog.
Ðо ÑмолÑаниÑ: 0
syslog_identÐмÑ, Ñ ÐºÐ¾ÑоÑÑм ÑобÑÑÐ¸Ñ Ð¿ÐµÑедаÑÑÑÑ Ð² syslog.
Ðо ÑмолÑаниÑ:
pgbouncer(Ð¸Ð¼Ñ Ð¿ÑогÑаммÑ)syslog_facilityСÑбÑекÑ, коÑоÑÑй бÑÐ´ÐµÑ ÑказÑваÑÑÑÑ Ð² ÑобÑÑиÑÑ , оÑпÑавлÑемÑÑ Ð² syslog. ÐозможнÑе ваÑианÑÑ:
auth,authpriv,daemon,user,local0-7.Ðо ÑмолÑаниÑ: daemon
log_connectionsФикÑиÑоваÑÑ Ð² жÑÑнале ÑÑпеÑнÑе подклÑÑениÑ.
Ðо ÑмолÑаниÑ: 1
log_disconnectionsФикÑиÑоваÑÑ Ð¾ÑклÑÑÐµÐ½Ð¸Ñ Ñ ÑказаниÑми Ð¸Ñ Ð¿ÑиÑин.
Ðо ÑмолÑаниÑ: 1
log_pooler_errorsФикÑиÑоваÑÑ ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð± оÑÐ¸Ð±ÐºÐ°Ñ , коÑоÑÑе pgbouncer пеÑедаÑÑ ÐºÐ»Ð¸ÐµÐ½Ñам.
Ðо ÑмолÑаниÑ: 1
stats_periodÐнÑеÑвал Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи накопленной ÑÑаÑиÑÑики в жÑÑнал.
Ðо ÑмолÑаниÑ: 60
log_statsÐапиÑÑваÑÑ Ð°Ð³ÑегиÑованнÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð² жÑÑнал, Ñ Ð¿ÐµÑиодиÑноÑÑÑÑ
stats_period. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»Ð¸Ñним, еÑли ÑÑ Ð¶Ðµ ÑÑаÑиÑÑÐ¸ÐºÑ Ð·Ð°Ð¿ÑаÑиваÑÑ Ð²Ð½ÐµÑние ÑÑедÑÑва мониÑоÑинга, вÑзÑÐ²Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ÑSHOW.Ðо ÑмолÑаниÑ: 1
verboseУвелиÑÐ¸Ð²Ð°ÐµÑ ÑÑÐ¾Ð²ÐµÐ½Ñ Ð´ÐµÑализаÑии. СооÑвеÑÑÑвÑÐµÑ ÐºÐ»ÑÑÑ Â«-v» в командной ÑÑÑоке. Указание «-v -v» в командной ÑÑÑоке ÑавноÑилÑно запиÑи
verbose=2в конÑигÑÑаÑии.Ðо ÑмолÑаниÑ: 0
УпÑавление доÑÑÑпом к конÑоли
admin_usersРазделÑннÑй запÑÑÑми ÑпиÑок полÑзоваÑелей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , коÑоÑÑм ÑазÑеÑено подклÑÑаÑÑÑÑ Ðº конÑоли и вÑполнÑÑÑ Ð² ней лÑбÑе командÑ. ÐгноÑиÑÑеÑÑÑ Ñ
auth_type, ÑавнÑмany, Ñак как в ÑÑом ÑлÑÑае лÑбой полÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ ÐºÐ°Ðº админиÑÑÑаÑоÑ.Ðо ÑмолÑаниÑ: пÑÑÑÐ°Ñ ÑÑÑока
stats_usersРазделÑннÑй запÑÑÑми ÑпиÑок полÑзоваÑелей баз даннÑÑ , коÑоÑÑм ÑазÑеÑено подклÑÑаÑÑÑÑ Ðº конÑоли и вÑполнÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑолÑко на ÑÑение. ÐÑо вклÑÑÐ°ÐµÑ Ð²Ñе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SHOW, за иÑклÑÑением SHOW FDS.
Ðо ÑмолÑаниÑ: не задан.
ÐÑовеÑки акÑивноÑÑи Ñоединений, Ñайм-аÑÑÑ
server_reset_queryÐапÑоÑ, поÑÑлаемÑй ÑеÑвеÑÑ Ð¿Ñи оÑвобождении подклÑÑениÑ, пÑежде Ñем оно ÑÑÐ°Ð½ÐµÑ Ð´Ð¾ÑÑÑпно дÑÑгим клиенÑам. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ð¸ÐºÐ°ÐºÐ°Ñ ÑÑанзакÑÐ¸Ñ Ð½Ðµ вÑполнÑеÑÑÑ, Ñак ÑÑо запÑÐ¾Ñ Ð½Ðµ должен вклÑÑаÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
ABORTилиROLLBACK.ÐÑедполагаеÑÑÑ, ÑÑо ÑÑÐ¾Ñ Ð·Ð°Ð¿ÑÐ¾Ñ Ð¾ÑиÑÑÐ¸Ñ Ð²Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑоÑÑоÑнии ÑеанÑа Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , ÑÑÐ¾Ð±Ñ ÑледÑÑÑий ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿Ð¾Ð»ÑÑил подклÑÑение в опÑеделÑнном ÑоÑÑоÑнии. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑполнÑеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°
DISCARD ALL, коÑоÑÐ°Ñ Ð¾ÑиÑÐ°ÐµÑ Ð²ÑÑ, но пÑи ÑÑом ÑледÑÑÑÐµÐ¼Ñ ÐºÐ»Ð¸ÐµÐ½ÑÑ Ð½Ðµ оÑÑаÑÑÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð³Ð¾ кеÑиÑованного ÑоÑÑоÑниÑ. ÐÑ Ð¼Ð¾Ð¶Ð½Ð¾ поменÑÑÑ Ð½Ð° более мÑгкÑÑ, напÑимеÑDEALLOCATE ALL, пÑоÑÑо оÑвобождаÑÑÑÑ Ð¿Ð¾Ð´Ð³Ð¾ÑовленнÑе опеÑаÑоÑÑ (еÑли ÑабоÑа пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ наÑÑÑаеÑÑÑ, когда какое-Ñо ÑоÑÑоÑние ÑÐ¾Ñ ÑанÑеÑÑÑ).Ðогда пÑименÑеÑÑÑ Ð¿Ñл ÑÑанзакÑий,
server_reset_queryне дейÑÑвÑеÑ, Ñак как клиенÑÑ Ð½Ðµ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¸Ðµ ÑвойÑÑва ÑеанÑов, поÑÐ¾Ð¼Ñ ÑÑо ÐºÐ°Ð¶Ð´Ð°Ñ ÑÑанзакÑÐ¸Ñ Ð·Ð°Ð²ÐµÑÑаеÑÑÑ Ð² оÑделÑном Ñоединении и Ñаким обÑазом полÑÑÐ°ÐµÑ ÑазнÑе ÑоÑÑоÑÐ½Ð¸Ñ ÑеанÑа.Ðо ÑмолÑаниÑ: DISCARD ALL
server_reset_query_alwaysÐпÑеделÑеÑ, должен ли запÑоÑ
server_reset_queryвÑполнÑÑÑÑÑ Ð²Ð¾ вÑÐµÑ ÑÐµÐ¶Ð¸Ð¼Ð°Ñ Ð¿Ñла. Ðогда ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾ÑклÑÑÑн (по ÑмолÑаниÑ),server_reset_queryбÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑÑÑ ÑолÑко в Ñежиме пÑла ÑеанÑов. СоединениÑм в Ñежиме пÑла ÑÑанзакÑий не должен ÑÑебоваÑÑÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ ÑбÑоÑа ÑоÑÑоÑниÑ.ÐÑа возможноÑÑÑ Ð¿ÑедоÑÑавлÑеÑÑÑ Ð´Ð»Ñ ÑлÑÑаев, когда пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ вполне коÑÑекÑно иÑполÑзÑÑÑ ÑвойÑÑва ÑеанÑов, подклÑÑаÑÑÑ Ðº пÑÐ»Ñ ÑÑанзакÑий pgbouncer. Ðна позволÑÐµÑ ÑмениÑÑ Ð½ÐµÐ´ÐµÑеÑминиÑованное непÑавилÑное поведение на деÑеÑминиÑованное (но вÑÑ Ð¶Ðµ непÑавилÑное) â клиенÑÑ Ð²Ñегда ÑеÑÑÑÑ ÑÐ²Ð¾Ñ ÑоÑÑоÑние поÑле каждой ÑÑанзакÑии.
Ðо ÑмолÑаниÑ: 0
server_check_delayÐпÑеделÑеÑ, как долго Ð´Ð¾Ð»Ð¶Ð½Ñ ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð¾ÑвобождаемÑе подклÑÑÐµÐ½Ð¸Ñ Ð² ÑоÑÑоÑнии гоÑовноÑÑи к повÑоÑÐ½Ð¾Ð¼Ñ Ð¸ÑполÑзованиÑ, без запÑÑка запÑоÑа пÑовеÑки подклÑÑениÑ. ÐÑи знаÑении 0 ÑÑÐ¾Ñ Ð·Ð°Ð¿ÑÐ¾Ñ Ð·Ð°Ð¿ÑÑкаеÑÑÑ Ð²Ñегда.
Ðо ÑмолÑаниÑ: 30.0
server_check_queryÐÑоÑÑой Ñ Ð¾Ð»Ð¾ÑÑой запÑоÑ, пÑовеÑÑÑÑий, ÑÐ¾Ñ ÑанÑеÑÑÑ Ð»Ð¸ подклÑÑение к ÑеÑвеÑÑ.
ÐÑли ÑÑо пÑÑÑÐ°Ñ ÑÑÑока, пÑовеÑка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¾ÑклÑÑаеÑÑÑ.
Ðо ÑмолÑаниÑ: SELECT 1;
server_fast_closeÐпÑеделÑеÑ, должен ли ÑеÑÐ²ÐµÑ Ð² Ñежиме пÑла ÑеанÑов оÑклÑÑаÑÑÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ либо поÑле завеÑÑÐµÐ½Ð¸Ñ ÑекÑÑей ÑÑанзакÑии, еÑли он Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² Ñежиме
close_needed(коÑоÑÑй вклÑÑаеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸RECONNECTиRELOADили пÑи изменениÑÑ Ð² DNS), или Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ дожидаÑÑÑÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑеанÑа. Ð ÐµÐ¶Ð¸Ð¼Ñ Ð¿Ñла запÑоÑов и ÑÑанзакÑий Ñак и ÑабоÑаÑÑ, поÑÑÐ¾Ð¼Ñ Ð²ÐºÐ»ÑÑение ÑÑого паÑамеÑÑа на ÑÑи ÑÐµÐ¶Ð¸Ð¼Ñ Ð½Ðµ влиÑеÑ.ÐÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð²ÐºÐ»ÑÑÑн, Ñо еÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение к ÑеÑвеÑÑ Ð·Ð°ÐºÑÑваеÑÑÑ Ð´Ð¾ завеÑÑÐµÐ½Ð¸Ñ ÑеанÑа клиенÑа, клиенÑÑкое подклÑÑение Ñакже закÑÑваеÑÑÑ. Тем ÑамÑм гаÑанÑиÑÑеÑÑÑ, ÑÑо пÑеÑÑвание ÑеанÑа не оÑÑанеÑÑÑ Ð½ÐµÐ·Ð°Ð¼ÐµÑеннÑм Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñа.
ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ ÑÑкоÑиÑÑ Ð²ÑÑÑпление в ÑÐ¸Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ паÑамеÑÑов Ñоединений в ÑлÑÑае иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñла ÑеанÑов и ÑÑÑеÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾Ð»Ð³Ð¾Ð¶Ð¸Ð²ÑÑÐ¸Ñ ÑеанÑов. ÐедоÑÑаÑком его иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñо, ÑÑо клиенÑÑкие ÑеанÑÑ Ð¼Ð¾Ð³ÑÑ Ð¿ÑеÑÑваÑÑÑÑ Ð¿Ñи изменении конÑигÑÑаÑии, Ñак ÑÑо клиенÑÑкие пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑмеÑÑ Ð¿ÐµÑеподклÑÑаÑÑÑÑ Ð¸ воÑÑÑанавливаÑÑ ÑоÑÑоÑние ÑеанÑа. Ðо замеÑÑÑе, ÑÑо никакие ÑÑанзакÑии пÑи ÑÑом не бÑдÑÑ Ð¿Ð¾ÑеÑÑнÑ, Ñак как пÑеÑÑваÑÑÑÑ Ð±ÑдÑÑ Ð½Ðµ вÑполнÑÑÑиеÑÑ ÑÑанзакÑии, а ÑолÑко лиÑÑ Ð¿ÑоÑÑаиваÑÑие ÑеанÑÑ.
Ðо ÑмолÑаниÑ: 0
server_lifetimepgbouncer бÑÐ´ÐµÑ Ð·Ð°ÐºÑÑваÑÑ Ð½ÐµÐ¸ÑполÑзÑемое ÑеÑвеÑное подклÑÑение, ÑÑÑеÑÑвÑÑÑее долÑÑе заданного вÑемени (в ÑекÑÐ½Ð´Ð°Ñ ). ÐÐ¾Ð»Ñ Ð¾Ð·Ð½Ð°ÑаеÑ, ÑÑо Ñоединение бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÑолÑко один Ñаз, а заÑем бÑÐ´ÐµÑ Ð·Ð°ÐºÑÑваÑÑÑÑ.
Ðо ÑмолÑаниÑ: 3600.0
server_idle_timeoutÐÑли подклÑÑение к ÑеÑвеÑÑ Ð¿ÑоÑÑÐ°Ð¸Ð²Ð°ÐµÑ Ð´Ð¾Ð»ÑÑе заданного вÑемени (в ÑекÑÐ½Ð´Ð°Ñ ), оно бÑÐ´ÐµÑ ÑбÑоÑено. ÐÑи знаÑении 0 Ñайм-аÑÑ Ð¾ÑклÑÑаеÑÑÑ.
Ðо ÑмолÑаниÑ: 600.0
server_connect_timeoutÐÑли иниÑиализаÑÐ¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¸ Ð²Ñ Ð¾Ð´ на ÑеÑÐ²ÐµÑ Ð½Ðµ завеÑÑаеÑÑÑ Ð·Ð° Ñказанное вÑÐµÐ¼Ñ (в ÑекÑÐ½Ð´Ð°Ñ ), Ñоединение бÑÐ´ÐµÑ Ð·Ð°ÐºÑÑÑо.
Ðо ÑмолÑаниÑ: 15.0
server_login_retryÐÑи оÑибке Ð²Ñ Ð¾Ð´Ð° на ÑеÑвеÑ, из-за ÑÐ±Ð¾Ñ Ð² connect() или пÑи аÑÑенÑиÑикаÑии, pgbouncer бÑÐ´ÐµÑ Ð¶Ð´Ð°ÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ вÑÐµÐ¼Ñ (в ÑекÑÐ½Ð´Ð°Ñ ).
Ðо ÑмолÑаниÑ: 15.0
client_login_timeoutÐÑли ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑаеÑÑÑ, но не Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑойÑи аÑÑенÑиÑикаÑÐ¸Ñ Ð·Ð° Ñказанное вÑÐµÐ¼Ñ (в ÑекÑÐ½Ð´Ð°Ñ ), он бÑÐ´ÐµÑ Ð¾ÑклÑÑÑн. ТÑебÑеÑÑÑ Ð² оÑновном, ÑÑÐ¾Ð±Ñ Â«Ð¼ÑÑÑвÑе» подклÑÑÐµÐ½Ð¸Ñ Ð½Ðµ задеÑживали опеÑаÑÐ¸Ñ SUSPEND и, как ÑледÑÑвие, пеÑезагÑÑÐ·ÐºÑ Ð½Ð° леÑÑ.
Ðо ÑмолÑаниÑ: 60.0
autodb_idle_timeoutÐÑли ÑоздаваемÑе авÑомаÑиÑеÑки (ÑеÑез «*») пÑÐ»Ñ Ð±Ð°Ð· даннÑÑ Ð½Ðµ иÑполÑзÑÑÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ вÑÐµÐ¼Ñ (в ÑекÑÐ½Ð´Ð°Ñ ), они оÑвобождаÑÑÑÑ. ÐинÑÑом ÑÑого ÑвлÑеÑÑÑ Ñо, ÑÑо Ð¸Ñ ÑÑаÑиÑÑика Ñакже ÑбÑаÑÑваеÑÑÑ.
Ðо ÑмолÑаниÑ: 3600.0
dns_max_ttlÐÑÐµÐ¼Ñ ÐºÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑезÑлÑÑаÑов поиÑка в DNS (в ÑекÑÐ½Ð´Ð°Ñ ). ÐÑли пÑи поиÑке в DNS возвÑаÑаÑÑÑÑ ÑазнÑе оÑвеÑÑ, pgbouncer бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¸Ñ Ð¿Ð¾ оÑеÑеди. ÐейÑÑвиÑелÑное знаÑение DNS TTL игноÑиÑÑеÑÑÑ.
Ðо ÑмолÑаниÑ: 15.0
dns_nxdomain_ttlÐÑÐµÐ¼Ñ ÐºÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ñибок DNS и ÑезÑлÑÑаÑов NXDOMAIN (в ÑекÑÐ½Ð´Ð°Ñ ).
Ðо ÑмолÑаниÑ: 15.0
dns_zone_check_periodÐнÑеÑвал пÑовеÑки ÑеÑийного номеÑа зонÑ.
pgbouncer Ð¼Ð¾Ð¶ÐµÑ ÑобÑаÑÑ ÑпиÑок зон DNS из имÑн Ñзлов (вÑÑ Ð¿Ð¾Ñле пеÑвой ÑоÑки) и заÑем пеÑиодиÑеÑки пÑовеÑÑÑÑ, не изменилÑÑ Ð»Ð¸ ÑеÑийнÑй Ð½Ð¾Ð¼ÐµÑ Ð·Ð¾Ð½Ñ. ÐÑли он менÑеÑÑÑ, Ñо вÑе имена Ñзлов, оÑноÑÑÑиеÑÑ Ðº зоне, ÑазÑеÑаÑÑÑÑ Ð·Ð°Ð½Ð¾Ð²Ð¾. ÐÑли Ð´Ð»Ñ ÐºÐ°ÐºÐ¾Ð³Ð¾-либо Ñзла полÑÑаеÑÑÑ Ð´ÑÑгой IP-адÑеÑ, его подклÑÑÐµÐ½Ð¸Ñ Ð¿ÑизнаÑÑÑÑ Ð½ÐµÐ´ÐµÐ¹ÑÑвиÑелÑнÑми.
РабоÑÐ°ÐµÑ ÑолÑко Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñекой UDNS или c-ares (когда ÑбоÑка конÑигÑÑиÑÑеÑÑÑ c
--with-udnsили--with-cares).Ðо ÑмолÑаниÑ: 0.0 (оÑклÑÑено)
ÐаÑамеÑÑÑ TLS
client_tls_sslmodeРежим TLS, вÑбиÑаемÑй Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений клиенÑов. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ñ Ð¸ÑполÑзованием TLS запÑеÑенÑ. Ðогда ÑÑÐ¾Ñ Ñежим вклÑÑаеÑÑÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ Ñакже наÑÑÑоиÑÑ Ð²
client_tls_key_fileиclient_tls_cert_fileклÑÑ Ð¸ ÑеÑÑиÑикаÑ, коÑоÑÑе бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ pgbouncer.disableÐбÑÑнÑй TCP. ÐÑли ÐºÐ»Ð¸ÐµÐ½Ñ Ð·Ð°Ð¿ÑаÑÐ¸Ð²Ð°ÐµÑ TLS, его запÑÐ¾Ñ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ. ÐÑо Ñежим по ÑмолÑаниÑ.
allowÐÑли ÐºÐ»Ð¸ÐµÐ½Ñ Ð·Ð°Ð¿ÑаÑÐ¸Ð²Ð°ÐµÑ TLS, он иÑполÑзÑеÑÑÑ. РпÑоÑивном ÑлÑÑае иÑполÑзÑеÑÑÑ Ð¾Ð±ÑÑнÑй пÑоÑокол TCP. ÐÑли ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿ÑедоÑÑавлÑÐµÑ Ñвой ÑеÑÑиÑикаÑ, он не пÑовеÑÑеÑÑÑ.
preferТо же, ÑÑо и
allow.requireÐÐ»Ð¸ÐµÐ½Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ иÑполÑзоваÑÑ TLS. РпÑоÑивном ÑлÑÑае Ñоединение клиенÑа ÑбÑаÑÑваеÑÑÑ. ÐÑли ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿ÑедоÑÑавлÑÐµÑ Ñвой ÑеÑÑиÑикаÑ, он не пÑовеÑÑеÑÑÑ.
verify-caÐÐ»Ð¸ÐµÐ½Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ иÑполÑзоваÑÑ TLS Ñ Ð³Ð¾Ð´Ð½Ñм клиенÑÑким ÑеÑÑиÑикаÑом.
verify-fullТо же, ÑÑо и
verify-ca.
client_tls_key_fileÐакÑÑÑÑй клÑÑ pgbouncer, пÑименÑемÑй Ð´Ð»Ñ ÑиÑÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½ÑÑÐºÐ¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений.
Ðо ÑмолÑаниÑ: не задано.
client_tls_cert_fileСеÑÑиÑÐ¸ÐºÐ°Ñ ÑаÑÑного клÑÑа. ÐлиенÑÑ Ð¼Ð¾Ð³ÑÑ Ð¿ÑовеÑиÑÑ ÐµÐ³Ð¾.
Ðо ÑмолÑаниÑ: не задано.
client_tls_ca_fileФайл Ñ ÐºÐ¾ÑневÑм ÑеÑÑиÑикаÑом, по коÑоÑÐ¾Ð¼Ñ Ð±ÑдÑÑ Ð¿ÑовеÑÑÑÑÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑкие ÑеÑÑиÑикаÑÑ.
Ðо ÑмолÑаниÑ: не ÑÑÑановлен.
client_tls_protocolsÐпÑеделÑеÑ, какие веÑÑии пÑоÑокола TLS ÑазÑеÑенÑ. ÐопÑÑÑимÑе знаÑениÑ:
tlsv1.0,tlsv1.1,tlsv1.2,tlsv1.3. ÐÑаÑкие обознаÑениÑ:all(tlsv1.0,tlsv1.1,tlsv1.2,tlsv1.3),secure(tlsv1.2,tlsv1.3),legacy(ÑавнознаÑно all).Ðо ÑмолÑаниÑ:
allclient_tls_ciphersÐо ÑмолÑаниÑ:
fastclient_tls_ecdhcurveÐÐ¼Ñ ÑллипÑиÑеÑкой кÑивой, пÑименÑемой пÑи обмене клÑÑами ECDH.
ÐопÑÑÑимÑе знаÑениÑ:
none(DH оÑклÑÑÑн),auto(256-биÑнÑй ECDH), Ð¸Ð¼Ñ ÐºÑивой.Ðо ÑмолÑаниÑ:
autoclient_tls_dheparamsТип обмена клÑÑами DHE.
ÐопÑÑÑимÑе знаÑениÑ:
none(DH оÑклÑÑÑн),auto(2048-биÑнÑй DH),legacy(1024-биÑнÑй DH).Ðо ÑмолÑаниÑ:
autoserver_tls_sslmodeРежим TLS Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений к ÑеÑвеÑам Postgres Pro. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð½Ðµ иÑполÑзÑÑÑ TLS.
disableÐбÑÑнÑй TCP. TLS даже не запÑаÑиваеÑÑÑ Ñ ÑеÑвеÑа. ÐÑо Ñежим по ÑмолÑаниÑ.
preferСнаÑала вÑегда запÑаÑиваеÑÑÑ TLS-подклÑÑение к Postgres Pro, а в ÑлÑÑае оÑказа пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¿ÐµÑеклÑÑение на пÑоÑÑой TCP. СеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа не пÑовеÑÑеÑÑÑ.
requireÐодклÑÑение обÑзаÑелÑно должно ÑÑÑанавливаÑÑÑÑ ÑеÑез TLS. ÐÑли ÑеÑÐ²ÐµÑ Ð½Ðµ пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÐµÐ³Ð¾, пÑоÑÑой TCP иÑполÑзоваÑÑÑÑ Ð½Ðµ бÑдеÑ. СеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа не пÑовеÑÑеÑÑÑ.
verify-caÐодклÑÑение должно ÑÑÑанавливаÑÑÑÑ ÑеÑез TLS, а ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа должен бÑÑÑ Ð´ÐµÐ¹ÑÑвиÑелÑнÑм ÑоглаÑно ÑайлÑ
server_tls_ca_file. ÐÐ¼Ñ Ñзла ÑеÑвеÑа по ÑеÑÑиÑикаÑÑ Ð½Ðµ пÑовеÑÑеÑÑÑ.verify-fullÐодклÑÑение должно ÑÑÑанавливаÑÑÑÑ ÑеÑез TLS, а ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа должен бÑÑÑ Ð´ÐµÐ¹ÑÑвиÑелÑнÑм ÑоглаÑно ÑайлÑ
server_tls_ca_file. ÐÐ¼Ñ Ñзла должно ÑооÑвеÑÑÑвоваÑÑ ÑÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¼Ñ Ð² ÑеÑÑиÑикаÑе.
server_tls_ca_fileФайл Ñ ÐºÐ¾ÑневÑм ÑеÑÑиÑикаÑом, по коÑоÑÐ¾Ð¼Ñ Ð±ÑдÑÑ Ð¿ÑовеÑÑÑÑÑÑ ÑеÑÑиÑикаÑÑ ÑеÑвеÑа Postgres Pro.
Ðо ÑмолÑаниÑ: не ÑÑÑановлен.
server_tls_key_fileÐакÑÑÑÑй клÑÑ pgbouncer, Ñ ÐºÐ¾ÑоÑÑм он бÑÐ´ÐµÑ Ð°ÑÑенÑиÑиÑиÑоваÑÑÑÑ Ð½Ð° ÑеÑвеÑе Postgres Pro.
Ðо ÑмолÑаниÑ: не задано.
server_tls_cert_fileСеÑÑиÑÐ¸ÐºÐ°Ñ Ð·Ð°ÐºÑÑÑого клÑÑа. СеÑÐ²ÐµÑ Postgres Pro Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑовеÑÑÑÑ ÐµÐ³Ð¾.
Ðо ÑмолÑаниÑ: не задано.
server_tls_protocolsÐпÑеделÑеÑ, какие веÑÑии пÑоÑокола TLS ÑазÑеÑенÑ. ÐопÑÑÑимÑе знаÑениÑ:
tlsv1.0,tlsv1.1,tlsv1.2,tlsv1.3. ÐÑаÑкие обознаÑениÑ:all(tlsv1.0,tlsv1.1,tlsv1.2,tlsv1.3),secure(tlsv1.2,tlsv1.3),legacy(ÑавнознаÑно all).Ðо ÑмолÑаниÑ:
allserver_tls_ciphersÐо ÑмолÑаниÑ:
fast
ÐпаÑнÑе Ñайм-аÑÑÑ
УÑÑановка ÑледÑÑÑÐ¸Ñ Ñайм-аÑÑов Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑиводиÑÑ Ðº неожиданнÑм оÑибкам.
query_timeoutÐапÑоÑÑ, вÑполнÑÑÑиеÑÑ Ð´Ð¾Ð»ÑÑе ÑÑого вÑемени (в ÑекÑÐ½Ð´Ð°Ñ ), бÑдÑÑ Ð¾ÑменÑÑÑÑÑ. Ðго знаÑение ÑледÑÐµÑ Ð²ÑбиÑаÑÑ Ð»Ð¸ÑÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¸Ð¼ менÑÑим паÑамеÑÑа
statement_timeoutна ÑеÑвеÑе, ÑÑÐ¾Ð±Ñ ÑÑо пÑоиÑÑ Ð¾Ð´Ð¸Ð»Ð¾ ÑолÑко пÑи пÑÐ¾Ð±Ð»ÐµÐ¼Ð°Ñ Ð² ÑеÑи.Ðо ÑмолÑаниÑ: 0.0 (оÑклÑÑено)
query_wait_timeoutÐакÑималÑное вÑемÑ, коÑоÑое могÑÑ Ð¾Ð¶Ð¸Ð´Ð°ÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑÑ (в ÑекÑÐ½Ð´Ð°Ñ ). ÐÑли запÑÐ¾Ñ Ð½Ðµ назнаÑаеÑÑÑ ÑеÑвеÑÑ Ð·Ð° ÑÑо вÑемÑ, ÐºÐ»Ð¸ÐµÐ½Ñ Ð¾ÑклÑÑаеÑÑÑ. ÐÑо пÑименÑеÑÑÑ Ð´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð·Ð°Ñ Ð²Ð°ÑÑÐ²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений «завиÑÑими» ÑеÑвеÑами.
ÐÑо Ñакже Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ Ð² ÑиÑÑаÑиÑÑ , когда ÑеÑÐ²ÐµÑ Ð¾ÑклÑÑÑн или база даннÑÑ Ð½Ðµ пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ какой-либо пÑиÑине. ÐÑли ÑÑÐ¾Ñ Ñайм-аÑÑ Ð¾ÑклÑÑиÑÑ, клиенÑÑ Ð±ÑдÑÑ ÑÑоÑÑÑ Ð² оÑеÑеди неогÑаниÑенно долго.
Ðо ÑмолÑаниÑ: 120
client_idle_timeoutÐлиенÑÑкие подклÑÑениÑ, пÑоÑÑаиваÑÑие долÑÑе ÑÑого вÑемени (в ÑекÑÐ½Ð´Ð°Ñ ), закÑÑваÑÑÑÑ. ÐÑо знаÑение должно бÑÑÑ Ð±Ð¾Ð»ÑÑе Ñайм-аÑÑа подклÑÑениÑ, ÑÑÑановленного на ÑÑоÑоне клиенÑа, и пÑименÑеÑÑÑ Ð¾Ð½Ð¾ ÑолÑко Ð´Ð»Ñ ÑеÑÐµÐ½Ð¸Ñ Ð¿Ñоблем Ñ ÑеÑÑÑ.
Ðо ÑмолÑаниÑ: 0.0 (оÑклÑÑено)
idle_transaction_timeoutÐÑли ÐºÐ»Ð¸ÐµÐ½Ñ Â«Ð¿ÑоÑÑÐ°Ð¸Ð²Ð°ÐµÑ Ð² ÑÑанзакÑии» долÑÑе ÑÑого вÑемени (в ÑекÑÐ½Ð´Ð°Ñ ), он бÑÐ´ÐµÑ Ð¾ÑклÑÑÑн.
Ðо ÑмолÑаниÑ: 0.0 (оÑклÑÑено)
ÐизкоÑÑовневÑе паÑамеÑÑÑ ÑеÑи
pkt_bufÐ Ð°Ð·Ð¼ÐµÑ Ð²Ð½ÑÑÑеннего бÑÑеÑа Ð´Ð»Ñ Ð¿Ð°ÐºÐµÑов. ÐлиÑÐµÑ Ð½Ð° ÑÐ°Ð·Ð¼ÐµÑ Ð¾ÑпÑавлÑемÑÑ TCP-пакеÑов и обÑее иÑполÑзование памÑÑи. СобÑÑвенно пакеÑÑ libpq могÑÑ Ð±ÑÑÑ Ð±Ð¾Ð»ÑÑе ÑÑого бÑÑеÑа, Ñак ÑÑо Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи делаÑÑ ÐµÐ³Ð¾ болÑÑим.
Ðо ÑмолÑаниÑ: 4096
max_packet_sizeÐакÑималÑнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ð°ÐºÐµÑов Postgres Pro, коÑоÑÑй ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿ÑопÑÑÑиÑÑ ÑеÑез ÑÐµÐ±Ñ pgbouncer. Ðдин Ð¿Ð°ÐºÐµÑ Ð¿ÑедÑÑавлÑÐµÑ Ð»Ð¸Ð±Ð¾ один запÑоÑ, либо ÑÑÑÐ¾ÐºÑ Ð¸Ð· набоÑа ÑезÑлÑÑаÑов. Ð Ð°Ð·Ð¼ÐµÑ Ð²Ñего набоÑа ÑезÑлÑÑаÑов Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð±Ð¾Ð»ÑÑе.
Ðо ÑмолÑаниÑ: 2147483647
listen_backlogÐаÑамеÑÑ Ð¾ÑеÑеди Ð´Ð»Ñ listen(2). ÐпÑеделÑеÑ, ÑколÑко неоÑвеÑеннÑÑ Ð·Ð°Ð¿ÑоÑов на подклÑÑение бÑÐ´ÐµÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð² оÑеÑеди. Ðогда оÑеÑÐµÐ´Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð°, ÑледÑÑÑие новÑе подклÑÑÐµÐ½Ð¸Ñ Ð±ÑдÑÑ ÑбÑаÑÑваÑÑÑÑ.
Ðо ÑмолÑаниÑ: 128
sbuf_loopcntУÑÑанавливаеÑ, ÑколÑко Ñиклов Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¾Ð±ÑабаÑÑваÑÑÑÑ Ð´Ð°Ð½Ð½Ñе Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ подклÑÑениÑ, поÑле Ñего нÑжно пеÑÐµÑ Ð¾Ð´Ð¸ÑÑ Ðº дÑÑгим. Ðез ÑÑого огÑаниÑÐµÐ½Ð¸Ñ Ð¾Ð´Ð½Ð¾ подклÑÑение Ñ Ð±Ð¾Ð»ÑÑим набоÑом ÑезÑлÑÑаÑом Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð½ÑÑÑ pgbouncer на долгое вÑемÑ. Родном Ñикле обÑабаÑÑваÑÑÑÑ Ð´Ð°Ð½Ð½Ñе ÑазмеÑом
pkt_bufбайÑ. ÐÐ¾Ð»Ñ ÑбиÑÐ°ÐµÑ Ð¾Ð³ÑаниÑение.Ðо ÑмолÑаниÑ: 5
suspend_timeoutСколÑко ÑекÑнд ждаÑÑ ÑбÑоÑа бÑÑеÑа пÑи вÑполнении SUSPEND или пеÑезагÑÑзки (-R). ÐÑли ÑбÑÐ¾Ñ Ð½Ðµ завеÑÑилÑÑ, подклÑÑение ÑбÑаÑÑваеÑÑÑ.
Ðо ÑмолÑаниÑ: 10
tcp_defer_acceptÐодÑобнее об ÑÑом и дÑÑÐ³Ð¸Ñ Ð¿Ð°ÑамеÑÑÐ°Ñ TCP можно ÑзнаÑÑ Ð² ÑÑководÑÑве
man 7 tcp.Ðо ÑмолÑаниÑ: 45 в Linux, в дÑÑÐ³Ð¸Ñ ÑиÑÑÐµÐ¼Ð°Ñ â 0
tcp_socket_bufferÐо ÑмолÑаниÑ: не задано.
tcp_keepaliveÐклÑÑÐ°ÐµÑ Ð±Ð°Ð·Ð¾Ð²Ñй опÑÐ¾Ñ Ð°ÐºÑивноÑÑи Ñо ÑÑандаÑÑнÑми паÑамеÑÑами ÐС.
Ð Linux ÑиÑÑемнÑе паÑамеÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ: tcp_keepidle=7200, tcp_keepintvl=75, tcp_keepcnt=9. ÐеÑоÑÑно, они имеÑÑ Ð±Ð»Ð¸Ð·ÐºÐ¸Ðµ знаÑÐµÐ½Ð¸Ñ Ð¸ в дÑÑÐ³Ð¸Ñ ÐС.
Ðо ÑмолÑаниÑ: 1
tcp_keepcntÐо ÑмолÑаниÑ: не задано.
tcp_keepidleÐо ÑмолÑаниÑ: не задано.
tcp_keepintvlÐо ÑмолÑаниÑ: не задано.
Раздел [databases]
ÐÑÐ¾Ñ Ñаздел ÑодеÑÐ¶Ð¸Ñ Ð¿Ð°ÑÑ ÐºÐ»ÑÑ=знаÑение, где в каÑеÑÑве клÑÑа пÑинимаеÑÑÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , а в каÑеÑÑве знаÑÐµÐ½Ð¸Ñ â ÑÑÑока подклÑÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ libpq в виде Ð¿Ð°Ñ ÐºÐ»ÑÑ=знаÑение. Так как Ñама libpq не иÑполÑзÑеÑÑÑ, в ÑÑой ÑÑÑоке можно задаÑÑ Ð½Ðµ вÑе ÑвойÑÑва, коÑоÑÑе Ð¿Ð¾Ð½Ð¸Ð¼Ð°ÐµÑ libpq (service=, .pgpass).
ÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ _0-9A-Za-z без кавÑÑек. Ðмена, ÑодеÑжаÑие дÑÑгие ÑимволÑ, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°ÐºÐ»ÑÑаÑÑÑÑ Ð² двойнÑе кавÑÑки по пÑавилам Ð´Ð»Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑов SQL (две кавÑÑки ("") воÑпÑинимаÑÑÑÑ Ð²Ð½ÑÑÑи ÑÑÑоки как одна).
«*» воÑпÑинимаеÑÑÑ ÐºÐ°Ðº Ð¸Ð¼Ñ Ð²ÑеÑ
оÑÑалÑнÑÑ
баз: еÑли ÑоÑного ÑооÑвеÑÑÑÐ²Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑенной Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
не наÑ
одиÑÑÑ, в каÑеÑÑве ÑÑÑоки подклÑÑÐµÐ½Ð¸Ñ Ð²ÑбиÑаеÑÑÑ Ð´Ð°Ð½Ð½Ð¾Ðµ знаÑение. Такие авÑомаÑиÑеÑки ÑоздаваемÑе запиÑи баз даннÑÑ
оÑиÑаÑÑÑÑ, еÑли они пÑоÑÑаиваÑÑ Ð±Ð¾Ð»ÑÑе вÑемени, задаваемого паÑамеÑÑом autodb_idle_timeout.
dbnameÐÐ¼Ñ Ñелевой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
Ðо ÑмолÑаниÑ: Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð½Ð° ÑÑоÑоне клиенÑа.
hostÐÐ¼Ñ Ð¸Ð»Ð¸ IP-адÑÐµÑ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа, к коÑоÑÐ¾Ð¼Ñ Ð½Ñжно подклÑÑиÑÑÑÑ. Ðмена компÑÑÑеÑов ÑазÑеÑаÑÑÑÑ Ð² Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ, и ÑезÑлÑÑÐ°Ñ ÐºÐµÑиÑÑеÑÑÑ Ð² ÑеÑение вÑемени, заданного паÑамеÑÑом
dns_max_ttl. ÐÑли ÑезÑлÑÑÐ°Ñ ÑазÑеÑÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ менÑеÑÑÑ, ÑÑÑеÑÑвÑÑÑие подклÑÑÐµÐ½Ð¸Ñ Ðº ÑеÑвеÑÑ Ð°Ð²ÑомаÑиÑеÑки закÑÑваÑÑÑÑ Ð¿Ñи Ð¸Ñ Ð¾Ñвобождении (в ÑооÑвеÑÑÑвии Ñ Ñежимом пÑла), и изменение немедленно оÑÑажаеÑÑÑ Ð½Ð° новÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑÑ . ÐÑли DNS возвÑаÑÐ°ÐµÑ Ð½ÐµÑколÑко запиÑей, они иÑполÑзÑÑÑÑÑ Ð¿Ð¾ оÑеÑеди.Ðо ÑмолÑаниÑ: не задан, ÑÑо подÑазÑÐ¼ÐµÐ²Ð°ÐµÑ Ð¸ÑполÑзование ÑокеÑов Unix.
portÐо ÑмолÑаниÑ: 5432
userÐÑли задано
user=, вÑе подклÑÑÐµÐ½Ð¸Ñ Ðº Ñелевой базе даннÑÑ Ð±ÑдÑÑ Ð²ÑполнÑÑÑÑÑ Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм именем полÑзоваÑелÑ, ÑÑо ознаÑаеÑ, ÑÑо Ð´Ð»Ñ ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð±ÑÐ´ÐµÑ Ð²Ñего один пÑл.РпÑоÑивном ÑлÑÑае pgbouncer пÑÑаеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ Ðº Ñелевой базе даннÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ полÑзоваÑелÑ, пеÑеданнÑм клиенÑом, ÑÑо ознаÑаеÑ, ÑÑо Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ полÑзоваÑÐµÐ»Ñ Ð±ÑÐ´ÐµÑ Ð¾ÑделÑнÑй пÑл.
passwordÐлина знаÑениÑ
passwordогÑаниÑиваеÑÑÑ 160 Ñимволами.ÐÑли паÑÐ¾Ð»Ñ Ð·Ð´ÐµÑÑ Ð½Ðµ задаÑÑÑÑ, бÑÐ´ÐµÑ Ð¸ÑполÑзован паÑÐ¾Ð»Ñ Ð¸Ð·
auth_fileилиauth_query.auth_userÐеÑеопÑеделÑÐµÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑÑ Ð¿ÐµÑеменнÑÑ
auth_user, еÑли она задана.pool_sizeÐадаÑÑ Ð¼Ð°ÐºÑималÑное колиÑеÑÑво пÑлов Ð´Ð»Ñ ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐÑли не задано, пÑименÑеÑÑÑ Ð·Ð½Ð°Ñение
default_pool_size.reserve_poolÐадаÑÑ ÑиÑло дополниÑелÑнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений Ð´Ð»Ñ ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐÑли не задано, пÑименÑеÑÑÑ Ð·Ð½Ð°Ñение
reserve_pool_size.connect_queryÐапÑоÑ, коÑоÑÑй бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑоединениÑ, но до Ñого, как его ÑмогÑÑ Ð¸ÑполÑзоваÑÑ ÐºÐ°ÐºÐ¸Ðµ-либо клиенÑÑ. ÐÑли пÑи запÑоÑе возникаÑÑ Ð¾Ñибки, они ÑолÑко ÑикÑиÑÑÑÑÑÑ Ð² жÑÑнале, дÑÑгой ÑеакÑии не ÑледÑеÑ.
pool_modeÐадаÑÑ Ñежим пÑла Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ задаÑÑÑÑ, пÑименÑеÑÑÑ Ð·Ð½Ð°Ñение pool_mode по ÑмолÑаниÑ.
max_db_connectionsÐадаÑÑ Ð¼Ð°ÐºÑимÑм подклÑÑений Ð´Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ (Ñо еÑÑÑ, иÑполÑзÑÑ Ð²Ñе пÑÐ»Ñ ÑÑой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , нелÑÐ·Ñ Ð±ÑÐ´ÐµÑ ÑÑÑановиÑÑ Ð±Ð¾Ð»ÑÑе ÑÑого ÑиÑла подклÑÑений к ÑеÑвеÑÑ).
client_encodingÐапÑаÑÐ¸Ð²Ð°ÐµÑ Ñ ÑеÑвеÑа иÑполÑзование Ñказанной клиенÑÑкой кодиÑовки (
client_encoding).datestyleÐапÑаÑÐ¸Ð²Ð°ÐµÑ Ñ ÑеÑвеÑа иÑполÑзование Ñказанного ÑÑÐ¸Ð»Ñ Ð´Ð°ÑÑ (
datestyle).timezoneÐапÑаÑÐ¸Ð²Ð°ÐµÑ Ñ ÑеÑвеÑа иÑполÑзование Ñказанного ÑаÑового поÑÑа (
timezone).
Раздел [users]
ÐÑÐ¾Ñ Ñаздел ÑодеÑÐ¶Ð¸Ñ Ð¿Ð°ÑÑ ÐºÐ»ÑÑ=знаÑение, где в каÑеÑÑве клÑÑа пÑинимаеÑÑÑ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, а в каÑеÑÑве знаÑÐµÐ½Ð¸Ñ â пеÑеопÑеделÑемÑе Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии в виде Ð¿Ð°Ñ ÐºÐ»ÑÑ=знаÑение (в ÑоÑмаÑе ÑÑÑок подклÑÑÐµÐ½Ð¸Ñ libpq). Таким обÑазом пеÑеопÑеделиÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ лиÑÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¸Ðµ паÑамеÑÑÑ.
pool_modeÐадаÑÑ Ñежим пÑла Ð´Ð»Ñ Ð²ÑÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений данного полÑзоваÑелÑ. ÐÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ задаÑÑÑÑ, пÑименÑеÑÑÑ Ð·Ð½Ð°Ñение pool_mode по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸Ð»Ð¸ заданное Ð´Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
max_user_connectionsÐадаÑÑ Ð¼Ð°ÐºÑимÑм подклÑÑений Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ (Ñо еÑÑÑ, иÑполÑзÑÑ Ð²Ñе пÑлÑ, нелÑÐ·Ñ Ð±ÑÐ´ÐµÑ ÑÑÑановиÑÑ Ð±Ð¾Ð»ÑÑе ÑÑого ÑиÑла подклÑÑений к ÑеÑвеÑÑ).
ÐиÑекÑива вклÑÑениÑ
Файл конÑигÑÑаÑии pgbouncer Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð´Ð¸ÑекÑÐ¸Ð²Ñ Ð²ÐºÐ»ÑÑениÑ, коÑоÑÑе ÑказÑваÑÑ, ÑÑо нÑжно пÑоÑиÑаÑÑ Ð¸ обÑабоÑаÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑй Ñайл конÑигÑÑаÑии. ÐÑо позволÑÐµÑ ÑазделиÑÑ Ñайл конÑигÑÑаÑии на ÑизиÑеÑки оÑделÑнÑе ÑаÑÑи. ÐиÑекÑÐ¸Ð²Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð²ÑглÑдÑÑ Ð¿ÑимеÑно Ñак:
%include имÑ_ÑайлаÐÑли Ñайл задаÑÑÑÑ Ð½Ðµ абÑолÑÑнÑм пÑÑÑм, его пÑÑÑ Ð²Ð¾ÑпÑинимаеÑÑÑ Ð¾ÑноÑиÑелÑно ÑекÑÑего ÑабоÑего каÑалога.
ФоÑÐ¼Ð°Ñ Ñайла аÑÑенÑиÑикаÑии
pgbouncer нÑждаеÑÑÑ Ð² ÑобÑÑвенной базе даннÑÑ Ð¿Ð¾Ð»ÑзоваÑелей. Ðн загÑÑÐ¶Ð°ÐµÑ ÑпиÑок полÑзоваÑелей из ÑекÑÑового Ñайла в ÑледÑÑÑем ÑоÑмаÑе:
"username1" "password" ... "username2" "md5abcdef012342345" ... "username2" "SCRAM-SHA-256$ÑиÑло_иÑеÑаÑий:ÑолÑ$ÑÐ¾Ñ ÑанÑннÑй_клÑÑ:клÑÑ_ÑеÑвеÑа"
Ð ÑÑÑоке должно бÑÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ñм два полÑ, заклÑÑÑннÑÑ Ð² двойнÑе кавÑÑки. РпеÑвом поле задаÑÑÑÑ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, а во вÑоÑом â паÑолÑ, либо оÑкÑÑÑÑм ÑекÑÑом, либо заÑиÑÑннÑй MD5 или SCRAM. ÐÑÑалÑное ÑодеÑжимое ÑÑÑоки pgbouncer игноÑиÑÑеÑ.
ÐÑинÑÑÑй в Postgres Pro ÑоÑÐ¼Ð°Ñ Ð¿Ð°ÑолÑ, заÑиÑÑнного MD5:
"md5" + md5(password + username)
Таким обÑазом, Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ admin Ñ Ð¿Ð°Ñолем 1234 заÑиÑÑннÑй MD5 паÑÐ¾Ð»Ñ Ð±ÑÐ´ÐµÑ ÑледÑÑÑим: md545f2603610af569b6155c45067268c6b.
ÐÑинÑÑÑй в Postgres Pro ÑоÑÐ¼Ð°Ñ Ð¿Ð°ÑолÑ, заÑиÑÑнного SCRAM:
SCRAM-SHA-256$ÑиÑло_иÑеÑаÑий:ÑолÑ$ÑÐ¾Ñ ÑанÑннÑй_клÑÑ:клÑÑ_ÑеÑвеÑа
Файл аÑÑенÑиÑикаÑии можно ÑоÑÑавиÑÑ Ð²ÑÑÑнÑÑ, но Ñакже можно ÑгенеÑиÑоваÑÑ ÐµÐ³Ð¾ из какого-Ñо дÑÑгого ÑпиÑка полÑзоваÑелей и паÑолей. РкаÑеÑÑве пÑимеÑа ÑкÑипÑа, коÑоÑÑй генеÑиÑÑÐµÑ Ñайл Ñ Ð´Ð°Ð½Ð½Ñми аÑÑенÑиÑикаÑии из ÑаблиÑÑ pg_shadow, Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ ./etc/mkauth.py.
ФоÑÐ¼Ð°Ñ Ñайла HBA
Ðн ÑооÑвеÑÑÑвÑÐµÑ ÑоÑмаÑÑ Ñайла Postgres Pro pg_hba.conf, опиÑÐ°Ð½Ð½Ð¾Ð¼Ñ Ð² Разделе 19.1.
ÐоддеÑживаемÑе ÑÐ¸Ð¿Ñ Ð·Ð°Ð¿Ð¸Ñей:
local,host,hostssl,hostnossl.Рполе Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑÑÑ Ð²Ð°ÑианÑÑ:
all,sameuser, @Ñайл, неÑколÑко имÑн. Ðе поддеÑживаÑÑÑÑ:replication,samerole,samegroup.Рполе имени полÑзоваÑÐµÐ»Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑÑÑ Ð²Ð°ÑианÑÑ:
all, @Ñайл, неÑколÑко имÑн. Ðе поддеÑживаеÑÑÑ:+groupname.Рполе адÑеÑа поддеÑживаеÑÑÑ:
IPv4,IPv6. Ðе поддеÑживаÑÑÑÑ: имена DNS, пÑеÑикÑÑ Ð´Ð¾Ð¼ÐµÐ½Ð¾Ð².Рполе меÑода аÑÑенÑиÑикаÑии поддеÑживаÑÑÑÑ ÑолÑко Ñе, коÑоÑÑе поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ pgbouncer в
auth_type, за иÑклÑÑениемanyиpam, коÑоÑÑе ÑабоÑаÑÑ ÑолÑко глобалÑно. СопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð¼Ñн полÑзоваÑелей (map=) не поддеÑживаÑÑÑÑ.
ÐÑимеÑ
ÐинималÑÐ½Ð°Ñ ÐºÐ¾Ð½ÑигÑÑаÑиÑ:
[databases] template1 = host=127.0.0.1 dbname=template1 auth_user=someuser [pgbouncer] pool_mode = session listen_port = 6543 listen_addr = 127.0.0.1 auth_type = md5 auth_file = users.txt logfile = pgbouncer.log pidfile = pgbouncer.pid admin_users = someuser stats_users = stat_collector
ÐаÑамеÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿Ð¾ ÑмолÑаниÑ:
[databases] ; подклÑÑение к foodb ÑеÑез ÑÐ¾ÐºÐµÑ Unix foodb = ; пеÑенапÑавление bardb в Ð±Ð°Ð·Ñ bazdb на локалÑном компÑÑÑеÑе bardb = host=127.0.0.1 dbname=bazdb ; обÑаÑение к Ñелевой базе даннÑÑ Ð±ÑÐ´ÐµÑ Ð¿ÑоизводиÑÑ Ð¾Ð´Ð¸Ð½ полÑзоваÑÐµÐ»Ñ forcedb = host=127.0.0.1 port=300 user=baz password=foo client_encoding=UNICODE datestyle=ISO
ÐÑÐ¸Ð¼ÐµÑ Ð±ÐµÐ·Ð¾Ð¿Ð°Ñной ÑÑнкÑии Ð´Ð»Ñ auth_query:
CREATE OR REPLACE FUNCTION pgbouncer.user_lookup(in i_username text, out uname text, out phash text)
RETURNS record AS $$
BEGIN
SELECT usename, passwd FROM pg_catalog.pg_shadow
WHERE usename = i_username INTO uname, phash;
RETURN;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
REVOKE ALL ON FUNCTION pgbouncer.user_lookup(text) FROM public, pgbouncer;
GRANT EXECUTE ON FUNCTION pgbouncer.user_lookup(text) TO pgbouncer;