{"id":497387,"date":"2026-10-05T11:10:50","date_gmt":"2026-10-05T11:10:50","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=497387"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2026-10-05T11:10:50","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=497387","title":{"rendered":"PostgreSQL 19: \u041a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442 2026-03 \u0427\u0430\u0441\u0442\u044c 5.3 (DBA3, DBS)"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>PostgreSQL 19: \u041a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442 2026-03 \u0427\u0430\u0441\u0442\u044c 5.3 (DBA3, DBS)<\/h2>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/91\/d1\/45\/91d145401215c52436418782ea32cd0d.png\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/webt\/91\/d1\/45\/91d145401215c52436418782ea32cd0d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/webt\/91\/d1\/45\/91d145401215c52436418782ea32cd0d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u043e\u0431\u0437\u043e\u0440 \u043c\u0430\u0440\u0442\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442\u0430 19-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438. \u0412 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0441\u0435\u0440\u0438\u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0435\u0441\u044f \u043a \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c \u043a\u0443\u0440\u0441\u043e\u0432 <a href=\"https:\/\/postgrespro.ru\/education\/courses\/DBA3\">DBA3<\/a> \u0438 <a href=\"https:\/\/postgrespro.ru\/education\/courses\/DBS\">DBS<\/a>.<\/p>\n<p>\u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e \u043f\u043b\u0430\u043d \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442\u0435 19-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/postgrespro\/articles\/1089000\/\">\u0427\u0430\u0441\u0442\u044c 5.1 (QPT)<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/postgrespro\/articles\/1089600\/\">\u0427\u0430\u0441\u0442\u044c 5.2 (DBA1, DBA2)<\/a><\/p>\n<\/li>\n<li>\n<p><em>\u0427\u0430\u0441\u0442\u044c 5.3 (DBA3, DBS) \u2013 \u043c\u044b \u0437\u0434\u0435\u0441\u044c<\/em> \ud83d\ude42<\/p>\n<\/li>\n<li>\n<p>\u0427\u0430\u0441\u0442\u044c 5.4 (SQL, DEV1, DEV2)<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u043a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442\u0430\u0445 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0437\u0434\u0435\u0441\u044c: <a href=\"https:\/\/habr.com\/ru\/companies\/postgrespro\/articles\/984580\/\">2025-07<\/a>, <a href=\"https:\/\/habr.com\/ru\/companies\/postgrespro\/articles\/986694\/\">2025-09<\/a>, <a href=\"https:\/\/habr.com\/ru\/companies\/postgrespro\/articles\/992426\/\">2025-11<\/a>, <a href=\"https:\/\/habr.com\/ru\/companies\/postgrespro\/articles\/996010\/\">2026-01<\/a>.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043e\u0431\u0437\u043e\u0440\u0435:<\/p>\n<ul>\n<li>\n<p><a href=\"#commit_b15c1513984\">pg_verifybackup, pg_waldump: \u0447\u0442\u0435\u043d\u0438\u0435 WAL \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 tar<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_01d485b142e\">pg_stat_recovery: \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_dddbbc253b9\">psql: \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u0435\u043f\u043b\u0438\u043a\u0438 \u0432 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_d6628a5ea0a\">pg_createsubscriber &#8212;logdir: \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_fd366065e06\">\u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438: \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_8185bb53476\">\u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438: \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 postgres_fdw<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_a8f45dee917\">wal_sender_shutdown_timeout: \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 WAL \u043f\u0440\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_8a6af3ad087\">wal_receiver_timeout: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_4f433025f66\">SSL: SNI \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_dd1398f1378\">GRANT\/REVOKE \u2026 GRANTED BY<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_1d92e0c2cc4\">\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0431 \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_bc60ee86066\">\u041f\u0430\u0440\u043e\u043b\u0438 MD5: \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u043a \u0441\u043d\u044f\u0442\u0438\u044e \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_d9819760279\">pg_[read|write]_all_data: \u0442\u0435\u043f\u0435\u0440\u044c \u0438 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#commit_aecc558666a\">psql: \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0434\u043b\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438<\/a><\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"commit_b15c1513984\" id=\"commit_b15c1513984\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/5955\/\"><strong>pg_verifybackup, pg_waldump: \u0447\u0442\u0435\u043d\u0438\u0435 WAL \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 tar<\/strong><\/a> <br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=b15c1513984\"><code>b15c1513984<\/code><\/a>, <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=b3cf461b3cf\"><code>b3cf461b3cf<\/code><\/a><\/p>\n<p><a href=\"https:\/\/www.postgresql.org\/docs\/devel\/app-pgverifybackup.html\">pg_verifybackup<\/a> \u0438 <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/app-pgwaldump.html\">pg_waldump<\/a> \u0440\u0430\u043d\u044c\u0448\u0435 \u0443\u043c\u0435\u043b\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c WAL-\u0444\u0430\u0439\u043b\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e\u043c \u0432\u0438\u0434\u0435. \u0414\u043b\u044f \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0432 tar-\u0430\u0440\u0445\u0438\u0432\u0435 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0447\u0438\u0442\u0430\u044e\u0442 \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e\u0442 WAL \u043f\u0440\u044f\u043c\u043e \u0432\u043d\u0443\u0442\u0440\u0438 tar-\u0444\u0430\u0439\u043b\u0430.<\/p>\n<pre><code class=\"bash\">$ pg_basebackup --pgdata=. --format=tar$ ls -l<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper\"><\/span><\/a><\/div><\/pre>\n<pre><code>total 6088948-rw------- 1 pal pal     192411 Oct  5 12:06 backup_manifest-rw------- 1 pal pal 6218102272 Oct  5 12:06 base.tar-rw------- 1 pal pal   16778752 Oct  5 12:06 pg_wal.tar<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code class=\"bash\">$ pg_verifybackup .<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>backup successfully verified<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 WAL-\u0444\u0430\u0439\u043b\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435, \u043d\u043e \u0438 \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 tar, \u0443 pg_verifybackup \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#8212;wal-path \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u0435\u0436\u043d\u0435\u0433\u043e &#8212;wal-directory. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#8212;wal-directory \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c, \u043d\u043e \u043f\u043e\u043a\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<p><a class=\"anchor\" name=\"commit_01d485b142e\" id=\"commit_01d485b142e\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/6438\/\"><strong>pg_stat_recovery: \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=01d485b142e\"><code>01d485b142e<\/code><\/a><\/p>\n<p>\u041d\u043e\u0432\u043e\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/monitoring-stats.html#MONITORING-PG-STAT-RECOVERY-VIEW\">pg_stat_recovery<\/a> \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u041f\u0440\u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 startup \u043d\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0435 \u0438 \u043d\u0443\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443:<\/p>\n<pre><code class=\"pgsql\">SELECT * FROM pg_stat_recovery\\gx<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>-[ RECORD 1 ]------------+------------------------------promote_triggered        | flast_replayed_read_lsn   | F\/2F000028last_replayed_end_lsn    | F\/2F000060last_replayed_tli        | 1replay_end_lsn           | F\/2F000060replay_end_tli           | 1recovery_last_xact_time  | current_chunk_start_time | 2026-09-08 13:55:36.859622+03pause_state              | not paused<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0412\u043d\u0435 \u0440\u0435\u0436\u0438\u043c\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 \u043c\u0430\u0441\u0442\u0435\u0440\u0435, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a.<\/p>\n<p>\u0420\u0430\u043d\u044c\u0448\u0435 \u0447\u0430\u0441\u0442\u044c \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0435\u0434\u0438\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.<\/p>\n<p><a class=\"anchor\" name=\"commit_dddbbc253b9\" id=\"commit_dddbbc253b9\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/5872\/\"><strong>psql: \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u0435\u043f\u043b\u0438\u043a\u0438 \u0432 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0438<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=dddbbc253b9\"><code>dddbbc253b9<\/code><\/a><\/p>\n<p>\u0412 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0438 psql \u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0440\u0435\u043f\u043b\u0438\u043a\u0435 \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041d\u043e\u0432\u044b\u0439 \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b %i \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 PROMPT1\/PROMPT2 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u0435\u0436\u0438\u043c\u0430 (primary\/standby) \u0432 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"pgsql\">postgres@postgres(19.0)=# \\dconfig in_hot_standby<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>List of configuration parameters   Parameter    | Value ----------------+------- in_hot_standby | off(1 row)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code class=\"pgsql\">postgres@postgres(19.0)=# \\set PROMPT1 [%i]:PROMPT1<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>[primary]postgres@postgres(19.0)=# <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043d\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0443 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f:<\/p>\n<pre><code class=\"pgsql\">[primary]postgres@postgres(19.0)=# \\c - - - 5402<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>You are now connected to database \"postgres\" as user \"postgres\" via socket in \"\/tmp\" at port \"5402\".<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code class=\"pgsql\">[standby]postgres@postgres(19.0)=# \\dconfig in_hot_standby<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>List of configuration parameters   Parameter    | Value ----------------+------- in_hot_standby | on(1 row)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>[standby]postgres@postgres(19.0)=# <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u042d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0437\u043b\u043e\u0432.<\/p>\n<p><a class=\"anchor\" name=\"commit_d6628a5ea0a\" id=\"commit_d6628a5ea0a\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/6592\/\"><strong>pg_createsubscriber &#8212;logdir: \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u044b<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=d6628a5ea0a\"><code>d6628a5ea0a<\/code><\/a>, <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=6b5b7eae3ae\"><code>6b5b7eae3ae<\/code><\/a>, <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=847336ba53a\"><code>847336ba53a<\/code><\/a><\/p>\n<p>\u0423\u0442\u0438\u043b\u0438\u0442\u0430 <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/app-pgcreatesubscriber.html\">pg_createsubscriber<\/a> (\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0449\u0430\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0440\u0435\u043f\u043b\u0438\u043a\u0443 \u0432 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430) \u0432\u044b\u0432\u043e\u0434\u0438\u043b\u0430 \u0432\u0441\u0435 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430. \u041d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#8212;logdir \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u0432\u043e\u0434 \u0432 \u0444\u0430\u0439\u043b\u044b:<\/p>\n<pre><code class=\"bash\">$ pg_createsubscriber -D . -P \"host=localhost port=5401\" -d demo --logdir=log<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 log \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043c\u0435\u0442\u043a\u043e\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432.<\/p>\n<pre><code class=\"bash\">$ ls -lR log<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>log:total 8drwx------ 2 pal pal 4096 Oct  5 13:10 20261005T121108.763drwx------ 2 pal pal 4096 Oct  5 13:11 20261005T131143.866log\/20261005T121108.763:total 4-rw------- 1 pal pal 403 Oct  5 13:10 pg_createsubscriber_internal.loglog\/20261005T131143.866:total 8-rw------- 1 pal pal    0 Oct  5 13:11 pg_createsubscriber_internal.log-rw------- 1 pal pal 4375 Oct  5 13:11 pg_createsubscriber_server.log<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><a class=\"anchor\" name=\"commit_fd366065e06\" id=\"commit_fd366065e06\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/6099\/\"><strong>\u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438: \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=fd366065e06\"><code>fd366065e06<\/code><\/a>, <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=493f8c6439c\"><code>493f8c6439c<\/code><\/a>, <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=5984ea868ee\"><code>5984ea868ee<\/code><\/a><\/p>\n<p>\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0444\u0440\u0430\u0437\u0443 FOR ALL TABLES, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b \u0432\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043a\u0440\u043e\u043c\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445?<\/p>\n<p>\u0412 19-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0445 CREATE|ALTER PUBLICATION \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u0437 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b:<\/p>\n<pre><code class=\"pgsql\">CREATE PUBLICATION pub FOR ALL TABLES EXCEPT (TABLE seats, boarding_passes);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code class=\"pgsql\">\\dRp+<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>                                                       Publication pub  Owner   | All tables | All sequences | Inserts | Updates | Deletes | Truncates | Generated columns | Via root | Description ----------+------------+---------------+---------+---------+---------+-----------+-------------------+----------+------------- postgres | t          | f             | t       | t       | t       | t         | none              | f        | Except tables:    \"bookings.boarding_passes\"    \"bookings.seats\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><a class=\"anchor\" name=\"commit_8185bb53476\" id=\"commit_8185bb53476\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/4529\/\"><strong>\u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438: \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 postgres_fdw<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=8185bb53476\"><code>8185bb53476<\/code><\/a><\/p>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b CREATE SUBSCRIPTION:<\/p>\n<pre><code class=\"pgsql\">\\h create subscription<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>Command:     CREATE SUBSCRIPTIONDescription: define a new subscriptionSyntax:CREATE SUBSCRIPTION subscription_name    { SERVER server_name | CONNECTION 'conninfo' }    PUBLICATION publication_name [, ...]    [ WITH ( subscription_parameter [= value] [, ... ] ) ]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0410 \u043e\u043d\u0438 \u0435\u0441\u0442\u044c. \u0414\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f (CONNECTION) \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043c\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 (SERVER). \u041f\u043e\u0434 \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f postgres_fdw.<\/p>\n<p>\u0422\u0430\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0442\u044c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e. \u0414\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u043d\u0435 \u043c\u0435\u043d\u044f\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (USER MAPPING) \u0434\u043b\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f pub \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 demo:<\/p>\n<pre><code class=\"pgsql\">publisher=# \\dRpx pub<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>List of publications-[ RECORD 1 ]-----+---------Name              | pubOwner             | postgresAll tables        | tAll sequences     | fInserts           | tUpdates           | tDeletes           | tTruncates         | tGenerated columns | noneVia root          | f<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435, \u0433\u0434\u0435 \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"pgsql\">postgres@subscriber=# CREATE EXTENSION postgres_fdw;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code class=\"pgsql\">postgres@subscriber=# CREATE SERVER demo_server  FOREIGN DATA WRAPPER postgres_fdw  OPTIONS (host 'localhost', port '5401', dbname 'demo');<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0440\u043e\u043b\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 (\u043d\u043e \u0431\u0435\u0437 \u043f\u0440\u0430\u0432 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"pgsql\">postgres@subscriber=# CREATE ROLE alice LOGIN;postgres@subscriber=# GRANT pg_create_subscription TO alice;postgres@subscriber=# GRANT CREATE ON DATABASE demo TO alice;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code class=\"pgsql\">postgres@subscriber=# GRANT USAGE ON SCHEMA bookings TO alice;postgres@subscriber=# GRANT ALL ON ALL TABLES IN SCHEMA bookings TO alice;postgres@subscriber=# GRANT USAGE ON FOREIGN SERVER demo_server TO alice;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0434\u043b\u044f alice. \u0412\u0430\u0436\u043d\u043e, \u0447\u0442\u043e alice \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0435\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043f\u0430\u0440\u043e\u043b\u044c:<\/p>\n<pre><code class=\"pgsql\">postgres@subscriber=# CREATE USER MAPPING FOR alice  SERVER demo_server  OPTIONS (user 'postgres', password 'postgres');<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c alice \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"pgsql\">alice@subscriber=&gt; CREATE SUBSCRIPTION sub  SERVER demo_server  PUBLICATION pub  WITH (run_as_owner = true);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><a class=\"anchor\" name=\"commit_a8f45dee917\" id=\"commit_a8f45dee917\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/6234\/\"><strong>wal_sender_shutdown_timeout: \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 WAL \u043f\u0440\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=a8f45dee917\"><code>a8f45dee917<\/code><\/a><\/p>\n<p>\u041f\u0440\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b walsender \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u043a \u043d\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c \u043d\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0445. \u041e\u0434\u043d\u0430\u043a\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u043d\u0430\u0434\u043e\u043b\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0430\u044e\u0442 \u0432 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0438 \u043e\u0442\u0432\u0435\u0442\u0430 \u043e\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0449\u0438\u0439 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0435, \u0436\u0434\u0435\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a.<\/p>\n<p>\u041d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/runtime-config-replication.html#GUC-WAL-SENDER-SHUTDOWN-TIMEOUT\"><em>wal_sender_shutdown_timeout<\/em><\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0434\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 WAL. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e:<\/p>\n<pre><code class=\"pgsql\">\\dconfig+ wal_sender_shutdown_timeout<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>                      List of configuration parameters          Parameter          | Value |  Type   | Context | Access privileges -----------------------------+-------+---------+---------+------------------- wal_sender_shutdown_timeout | -1    | integer | user    | (1 row)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><a class=\"anchor\" name=\"commit_8a6af3ad087\" id=\"commit_8a6af3ad087\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/5781\/\"><strong>wal_receiver_timeout: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=8a6af3ad087\"><code>8a6af3ad087<\/code><\/a>, <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=fb80f388f4a\"><code>fb80f388f4a<\/code><\/a><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f, \u043f\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 wal_receiver_timeout \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0445 CREATE|ALTER SUBSCRIPTION. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/runtime-config-replication.html#GUC-WAL-RECEIVER-TIMEOUT\"><em>wal_receiver_timeout<\/em><\/a> \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f-\u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 (context=user), \u0430 \u043d\u0435 \u0432\u0441\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b (sighup), \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u0440\u0430\u043d\u044c\u0448\u0435.<\/p>\n<p><a class=\"anchor\" name=\"commit_4f433025f66\" id=\"commit_4f433025f66\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/4984\/\"><strong>SSL: SNI \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=4f433025f66\"><code>4f433025f66<\/code><\/a>, <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=4abcdc1bbeb\"><code>4abcdc1bbeb<\/code><\/a><\/p>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc6066#section-3\">SNI<\/a> \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0431\u044b\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0435\u0449\u0435 \u0432 14-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/libpq-connect.html#LIBPQ-CONNECT-SSLSNI\">sslsni<\/a> \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 libpq. \u042d\u0442\u0438\u043c \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0435 TLS-\u043f\u0440\u043e\u043a\u0441\u0438, \u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043f\u0435\u0440\u0435\u0434 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c PostgreSQL. \u0421\u0430\u043c \u0436\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 PostgreSQL \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0442\u0434\u0430\u0432\u0430\u043b \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 postgresql.conf.<\/p>\n<p>\u0412 19-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0435\u0440\u0432\u0435\u0440 PostgreSQL \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u043e\u0435 \u0438\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 PostgreSQL \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043e\u0434\u043d\u043e\u0433\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u0438 \u043f\u043e\u0440\u0442\u0430.<\/p>\n<p>\u0414\u043b\u044f <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/ssl-tcp.html#SSL-SNI\">\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 SNI \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435<\/a> \u043d\u0443\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/runtime-config-connection.html#GUC-SSL-SNI\">ssl_sni<\/a>:<\/p>\n<pre><code class=\"pgsql\">\\dconfig+ ssl_sni<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>            List of configuration parameters Parameter | Value | Type | Context | Access privileges -----------+-------+------+---------+------------------- ssl_sni   | off   | bool | sighup  | (1 row)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0438\u043c\u0435\u043d \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c \u0438 \u043a\u043b\u044e\u0447\u0430\u043c \u0432 \u043d\u043e\u0432\u043e\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/runtime-config-file-locations.html#GUC-HOSTS-FILE\">pg_hosts.conf<\/a>. \u041f\u043e\u0441\u043b\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b \u043f\u0443\u0441\u0442:<\/p>\n<pre><code class=\"bash\">$ cat $PGDATA\/pg_hosts.conf<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code># PostgreSQL SNI Hostname mappings# ================================# HOSTNAME       SSL CERTIFICATE             SSL KEY     SSL CA       PASSPHRASE COMMAND         PASSPHRASE COMMAND RELOAD<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 ssl_sni \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0438 \u0432 pg_hosts.conf \u0435\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438, \u043e\u043d\u0438 \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043f\u0435\u0440\u0435\u0434 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 SSL \u0438\u0437 postgresql.conf.<\/p>\n<p><a class=\"anchor\" name=\"commit_dd1398f1378\" id=\"commit_dd1398f1378\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/6218\/\"><strong>GRANT\/REVOKE \u2026 GRANTED BY<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=dd1398f1378\"><code>dd1398f1378<\/code><\/a><\/p>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u044b GRANT \u0438 REVOKE \u0434\u043b\u044f \u0432\u044b\u0434\u0430\u0447\u0438 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0444\u0440\u0430\u0437\u0443 GRANTED BY, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a\u0430\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0434\u0430\u0442\u044c\/\u043e\u0442\u043e\u0437\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u044e. \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0444\u0440\u0430\u0437\u044b GRANTED BY \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 SQL. \u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0434\u0435\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u0438\u0448\u044c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0440\u043e\u043b\u044c. \u041f\u0440\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u043e\u043b\u0435\u0439 \u0432\u044b\u0434\u0430\u0432\u0430\u043b\u0430\u0441\u044c \u043e\u0448\u0438\u0431\u043a\u0430:<\/p>\n<pre><code>ERROR:  grantor must be current user<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0412 19-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c\/\u043e\u0442\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0440\u043e\u043b\u0438, \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u0423 \u0440\u043e\u043b\u0438 \u0432 GRANTED BY \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0430 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c\/\u043e\u0442\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438, \u0438 \u043e\u043d\u0430 \u0441\u0430\u043c\u0430 \u043c\u043e\u0433\u043b\u0430 \u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443.<\/p>\n<\/li>\n<li>\n<p>\u0420\u043e\u043b\u044c, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u0440\u043e\u043b\u0438 \u0438\u0437 GRANTED BY (\u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0447\u043b\u0435\u043d\u0441\u0442\u0432\u0430 \u0441 INHERIT).<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0440\u043e\u043b\u044f\u043c\u0438: alice, bob, charlie \u0438 dave.<\/p>\n<p>\u0421\u0443\u043f\u0435\u0440\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043b \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0432\u044b\u0434\u0430\u043b alice \u0438 bob \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u044e SELECT \u0441 \u043f\u0440\u0430\u0432\u043e\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u0440\u043e\u043b\u044f\u043c:<\/p>\n<pre><code class=\"pgsql\">postgres=# CREATE TABLE test (id int);postgres=# GRANT SELECT ON test TO alice WITH GRANT OPTION;postgres=# GRANT SELECT ON test TO bob WITH GRANT OPTION;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0410 \u0442\u0430\u043a\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u043b \u0440\u043e\u043b\u044c charlie \u0432 \u0440\u043e\u043b\u0438 alice \u0438 bob \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u0447\u043b\u0435\u043d\u0441\u0442\u0432\u0430 INHERIT:<\/p>\n<pre><code class=\"pgsql\">postgres=# GRANT alice TO charlie WITH INHERIT true, SET false;postgres=# GRANT bob TO charlie WITH INHERIT true, SET false;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0440\u043e\u043b\u044c charlie \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u044e \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u0440\u0443\u0433\u0438\u043c \u0440\u043e\u043b\u044f\u043c \u043a\u0430\u043a \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 alice, \u0442\u0430\u043a \u0438 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 bob.<\/p>\n<pre><code class=\"pgsql\">charlie=&gt; GRANT SELECT ON test TO dave GRANTED BY bob;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>GRANT<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code class=\"pgsql\">charlie=&gt; \\dp test<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>                                 Access privileges Schema | Name | Type  |     Access privileges      | Column privileges | Policies --------+------+-------+----------------------------+-------------------+---------- public | test | table | postgres=arwdDxtm\/postgres+|                   |         |      |       | alice=r*\/postgres         +|                   |         |      |       | bob=r*\/postgres           +|                   |         |      |       | dave=r\/bob                 |                   | (1 row)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0410 \u0442\u0430\u043a\u0436\u0435 \u043e\u0442\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u044e:<\/p>\n<pre><code class=\"pgsql\">charlie=&gt; REVOKE SELECT ON test FROM dave GRANTED BY bob;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>REVOKE<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0420\u0430\u043d\u044c\u0448\u0435 \u0432 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043d\u0435 \u0431\u044b\u043b\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u043e\u0442 \u0447\u044c\u0435\u0433\u043e \u0438\u043c\u0435\u043d\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u043d\u0430 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u044f.<\/p>\n<p><a class=\"anchor\" name=\"commit_1d92e0c2cc4\" id=\"commit_1d92e0c2cc4\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/6381\/\"><strong>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0431 \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=1d92e0c2cc4\"><code>1d92e0c2cc4<\/code><\/a><\/p>\n<p>\u041d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/runtime-config-connection.html#GUC-PASSWORD-EXPIRATION-WARNING-THRESHOLD\"><em>password_expiration_warning_threshold<\/em><\/a> \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u0434\u0430\u0447\u0435\u0439 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u044e\u0449\u0435\u043c\u0441\u044f \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u043e 7 \u0434\u043d\u0435\u0439:<\/p>\n<pre><code class=\"pgsql\">\\dconfig+ password_expiration_warning_threshold<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>                           List of configuration parameters               Parameter               | Value |  Type   | Context | Access privileges ---------------------------------------+-------+---------+---------+------------------- password_expiration_warning_threshold | 7d    | integer | sighup  | (1 row)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0410 \u0441\u0430\u043c\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"pgsql\">postgres=# \\set tomorrow `date -d \"tomorrow\" \"+%Y%m%d\"`postgres=# ALTER ROLE alice VALID UNTIL :'tomorrow';<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>ALTER ROLE<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code class=\"pgsql\">postgres=# \\c - alice<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>Password for user alice: WARNING:  role password will expire soonDETAIL:  The password for role \"alice\" will expire in 5 hours.You are now connected to database \"postgres\" as user \"alice\".<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><a class=\"anchor\" name=\"commit_bc60ee86066\" id=\"commit_bc60ee86066\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/6470\/\"><strong>\u041f\u0430\u0440\u043e\u043b\u0438 MD5: \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u043a \u0441\u043d\u044f\u0442\u0438\u044e \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=bc60ee86066\"><code>bc60ee86066<\/code><\/a><\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/postgrespro\/articles\/886292\/\">\u0415\u0449\u0435 \u0441 18-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438<\/a> \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043f\u0430\u0440\u043e\u043b\u044f, \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e MD5, \u0432\u044b\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 MD5 \u0431\u0443\u0434\u0435\u0442 \u0441\u043d\u044f\u0442\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445. \u041d\u043e \u043f\u0430\u0440\u043e\u043b\u044c \u0432\u0441\u0435 \u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0441\u044f, \u0438 \u0438\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0432\u044b\u0434\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0441 \u0442\u0430\u043a\u0438\u043c \u043f\u0430\u0440\u043e\u043b\u0435\u043c.<\/p>\n<pre><code class=\"pgsql\">\\connect - alice<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>Password for user alice: WARNING:  authenticated with an MD5-encrypted passwordDETAIL:  MD5 password support is deprecated and will be removed in a future release of PostgreSQL.You are now connected to database \"postgres\" as user \"alice\".<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/runtime-config-connection.html#GUC-MD5-PASSWORD-WARNINGS\"><em>md5_password_warnings<\/em><\/a>. \u041d\u043e \u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043d\u0430 SCRAM-SHA-256 \u0442\u043e\u0447\u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0434\u0443\u043c\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p><a class=\"anchor\" name=\"commit_d9819760279\" id=\"commit_d9819760279\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/6485\/\"><strong>pg_[read|write]_all_data: \u0442\u0435\u043f\u0435\u0440\u044c \u0438 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=d9819760279\"><code>d9819760279<\/code><\/a><\/p>\n<p>\u041f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0440\u043e\u043b\u0438 <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/predefined-roles.html\">pg_read_all_data<\/a> \u0438 <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/predefined-roles.html\">pg_write_all_data<\/a> \u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u043b\u0438\u0441\u044c \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b (Large Objects). \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0440\u043e\u043b\u044c \u0431\u0435\u0437 \u043f\u0440\u0430\u0432 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u0430\u044f \u0432 pg_read_all_data, \u043d\u0435 \u043c\u043e\u0433\u043b\u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0440\u043e\u043b\u0438 pg_read_all_data \u0438 pg_write_all_data \u0434\u0430\u044e\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.<\/p>\n<p><a class=\"anchor\" name=\"commit_aecc558666a\" id=\"commit_aecc558666a\"><\/a><\/p>\n<p><a href=\"https:\/\/commitfest.postgresql.org\/patch\/6493\/\"><strong>psql: \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0434\u043b\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438<\/strong><\/a><br \/> commit: <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=aecc558666a\"><code>aecc558666a<\/code><\/a><\/p>\n<p>\u0420\u0430\u043d\u044c\u0448\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 psql \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043a \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f\u043c, \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430\u043c \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043a \u044d\u0442\u0438\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0445 <code>\\dRp+<\/code> (\u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438), <code>\\dRs+<\/code> (\u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438) \u0438 <code>\\dX+<\/code> (\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430):<\/p>\n<pre><code class=\"pgsql\">CREATE PUBLICATION pub FOR ALL SEQUENCES;COMMENT ON PUBLICATION pub IS '\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438';<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code class=\"pgsql\">\\dRp+x<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<pre><code>Publication pub-[ RECORD 1 ]-----+-------------------Owner             | postgresAll tables        | fAll sequences     | tInserts           | tUpdates           | tDeletes           | tTruncates         | tGenerated columns | noneVia root          | fDescription       | \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<hr\/>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u043f\u043e\u043a\u0430 \u0432\u0441\u0435. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u043e\u0431\u0437\u043e\u0440\u0435 \u0441\u0435\u0440\u0438\u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0435\u0441\u044f \u043a \u044f\u0437\u044b\u043a\u0443 SQL, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u0443\u0440\u0441\u0430\u043c <a href=\"https:\/\/postgrespro.ru\/education\/courses\/DEV1\">DEV1<\/a> \u0438 <a href=\"https:\/\/postgrespro.ru\/education\/courses\/DEV2\">DEV2<\/a>.<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1090470\/\">https:\/\/habr.com\/ru\/articles\/1090470\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>PostgreSQL 19: \u041a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442 2026-03 \u0427\u0430\u0441\u0442\u044c 5.3 (DBA3, DBS)\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u043e\u0431\u0437\u043e\u0440 \u043c\u0430\u0440\u0442\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442\u0430 19-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438. \u0412 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0441\u0435\u0440\u0438\u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0435\u0441\u044f \u043a \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c \u043a\u0443\u0440\u0441\u043e\u0432 DBA3 \u0438 DBS.\u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e \u043f\u043b\u0430\u043d \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442\u0435 19-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438:\u0427\u0430\u0441\u0442\u044c 5.1 (QPT)\u0427\u0430\u0441\u0442\u044c 5.2 (DBA1, DBA2)\u0427\u0430\u0441\u0442\u044c 5.3 (DBA3, DBS) \u2013 \u043c\u044b \u0437\u0434\u0435\u0441\u044c \ud83d\ude42\u0427\u0430\u0441\u0442\u044c 5.4 (SQL, DEV1, DEV2)\u041e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u043a\u043e\u043c\u043c\u0438\u0442\u0444\u0435\u0441\u0442\u0430\u0445 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0437\u0434\u0435\u0441\u044c: 2025-07, 2025-09, 2025-11, 2026-01.\u0412 \u044d\u0442\u043e\u043c \u043e\u0431\u0437\u043e\u0440\u0435:pg_verifybackup, pg_waldump: \u0447\u0442\u0435\u043d\u0438\u0435 WAL \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 tarpg_stat_recovery: \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044fpsql: \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u0435\u043f\u043b\u0438\u043a\u0438 \u0432 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0438pg_createsubscriber &#8212;logdir: \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u044b\u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438: \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438: \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 postgres_fdwwal_sender_shutdown_timeout: \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 WAL \u043f\u0440\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430wal_receiver_timeout: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438SSL: SNI \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430GRANT\/REVOKE \u2026 GRANTED BY\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0431 \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f\u041f\u0430\u0440\u043e\u043b\u0438 MD5: \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u043a \u0441\u043d\u044f\u0442\u0438\u044e \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438pg_[read|write]_all_data: \u0442\u0435\u043f\u0435\u0440\u044c \u0438 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432psql: \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0434\u043b\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438pg_verifybackup, pg_waldump: \u0447\u0442\u0435\u043d\u0438\u0435 WAL \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 tar  commit: b15c1513984, b3cf461b3cfpg_verifybackup \u0438 pg_waldump \u0440\u0430\u043d\u044c\u0448\u0435 \u0443\u043c\u0435\u043b\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c WAL-\u0444\u0430\u0439\u043b\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e\u043c \u0432\u0438\u0434\u0435. \u0414\u043b\u044f \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0432 tar-\u0430\u0440\u0445\u0438\u0432\u0435 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0447\u0438\u0442\u0430\u044e\u0442 \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e\u0442 WAL \u043f\u0440\u044f\u043c\u043e \u0432\u043d\u0443\u0442\u0440\u0438 tar-\u0444\u0430\u0439\u043b\u0430.$ pg_basebackup &#8212;pgdata=. &#8212;format=tar$ ls -ltotal 6088948-rw&#8212;&#8212;- 1 pal pal     192411 Oct  5 12:06 backup_manifest-rw&#8212;&#8212;- 1 pal pal 6218102272 Oct  5 12:06 base.tar-rw&#8212;&#8212;- 1 pal pal   16778752 Oct  5 12:06 pg_wal.tar$ pg_verifybackup .backup successfully verified\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 WAL-\u0444\u0430\u0439\u043b\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435, \u043d\u043e \u0438 \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 tar, \u0443 pg_verifybackup \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#8212;wal-path \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u0435\u0436\u043d\u0435\u0433\u043e &#8212;wal-directory. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#8212;wal-directory \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c, \u043d\u043e \u043f\u043e\u043a\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438.pg_stat_recovery: \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f commit: 01d485b142e\u041d\u043e\u0432\u043e\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 pg_stat_recovery \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u041f\u0440\u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 startup \u043d\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0435 \u0438 \u043d\u0443\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443:SELECT * FROM pg_stat_recovery\\gx-[ RECORD 1 ]&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;promote_triggered        | flast_replayed_read_lsn   | F\/2F000028last_replayed_end_lsn    | F\/2F000060last_replayed_tli        | 1replay_end_lsn           | F\/2F000060replay_end_tli           | 1recovery_last_xact_time  | current_chunk_start_time | 2026-09-08 13:55:36.859622+03pause_state              | not paused\u0412\u043d\u0435 \u0440\u0435\u0436\u0438\u043c\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 \u043c\u0430\u0441\u0442\u0435\u0440\u0435, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a.\u0420\u0430\u043d\u044c\u0448\u0435 \u0447\u0430\u0441\u0442\u044c \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0435\u0434\u0438\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.psql: \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u0435\u043f\u043b\u0438\u043a\u0438 \u0432 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0438 commit: dddbbc253b9\u0412 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0438 psql \u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0440\u0435\u043f\u043b\u0438\u043a\u0435 \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041d\u043e\u0432\u044b\u0439 \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b %i \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 PROMPT1\/PROMPT2 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u0435\u0436\u0438\u043c\u0430 (primary\/standby) \u0432 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435:postgres@postgres(19.0)=# \\dconfig in_hot_standbyList of configuration parameters   Parameter    | Value &#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;- in_hot_standby | off(1 row)postgres@postgres(19.0)=# \\set PROMPT1 [%i]:PROMPT1[primary]postgres@postgres(19.0)=# \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043d\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0443 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f:[primary]postgres@postgres(19.0)=# \\c &#8212; &#8212; &#8212; 5402You are now connected to database &#171;postgres&#187; as user &#171;postgres&#187; via socket in &#171;\/tmp&#187; at port &#171;5402&#187;.[standby]postgres@postgres(19.0)=# \\dconfig in_hot_standbyList of configuration parameters   Parameter    | Value &#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;- in_hot_standby | on(1 row)[standby]postgres@postgres(19.0)=# \u042d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0437\u043b\u043e\u0432.pg_createsubscriber &#8212;logdir: \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u044b commit: d6628a5ea0a, 6b5b7eae3ae, 847336ba53a\u0423\u0442\u0438\u043b\u0438\u0442\u0430 pg_createsubscriber (\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0449\u0430\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0440\u0435\u043f\u043b\u0438\u043a\u0443 \u0432 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430) \u0432\u044b\u0432\u043e\u0434\u0438\u043b\u0430 \u0432\u0441\u0435 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430. \u041d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#8212;logdir \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u0432\u043e\u0434 \u0432 \u0444\u0430\u0439\u043b\u044b:$ pg_createsubscriber -D . -P &#171;host=localhost port=5401&#187; -d demo &#8212;logdir=log\u0412\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 log \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043c\u0435\u0442\u043a\u043e\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432.$ ls -lR loglog:total 8drwx&#8212;&#8212; 2 pal pal 4096 Oct  5 13:10 20261005T121108.763drwx&#8212;&#8212; 2 pal pal 4096 Oct  5 13:11 20261005T131143.866log\/20261005T121108.763:total 4-rw&#8212;&#8212;- 1 pal pal 403 Oct  5 13:10 pg_createsubscriber_internal.loglog\/20261005T131143.866:total 8-rw&#8212;&#8212;- 1 pal pal    0 Oct  5 13:11 pg_createsubscriber_internal.log-rw&#8212;&#8212;- 1 pal pal 4375 Oct  5 13:11 pg_createsubscriber_server.log\u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438: \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 commit: fd366065e06, 493f8c6439c, 5984ea868ee\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0444\u0440\u0430\u0437\u0443 FOR ALL TABLES, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b \u0432\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043a\u0440\u043e\u043c\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445?\u0412 19-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0445 CREATE|ALTER PUBLICATION \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u0437 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b:CREATE PUBLICATION pub FOR ALL TABLES EXCEPT (TABLE seats, boarding_passes);\\dRp+                                                       Publication pub  Owner   | All tables | All sequences | Inserts | Updates | Deletes | Truncates | Generated columns | Via root | Description &#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;- postgres | t          | f             | t       | t       | t       | t         | none              | f        | Except tables:    &#171;bookings.boarding_passes&#187;    &#171;bookings.seats&#187;\u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438: \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 postgres_fdw commit: 8185bb53476\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b CREATE SUBSCRIPTION:\\h create subscriptionCommand:     CREATE SUBSCRIPTIONDescription: define a new subscriptionSyntax:CREATE SUBSCRIPTION subscription_name    { SERVER server_name | CONNECTION &#8216;conninfo&#8217; }    PUBLICATION publication_name [, &#8230;]    [ WITH ( subscription_parameter [= value] [, &#8230; ] ) ]\u0410 \u043e\u043d\u0438 \u0435\u0441\u0442\u044c. \u0414\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f (CONNECTION) \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043c\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 (SERVER). \u041f\u043e\u0434 \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f postgres_fdw.\u0422\u0430\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0442\u044c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e. \u0414\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u043d\u0435 \u043c\u0435\u043d\u044f\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (USER MAPPING) \u0434\u043b\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430.\u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f pub \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 demo:publisher=# \\dRpx pubList of publications-[ RECORD 1 ]&#8212;&#8212;+&#8212;&#8212;&#8212;Name              | pubOwner             | postgresAll tables        | tAll sequences     | fInserts           | tUpdates           | tDeletes           | tTruncates         | tGenerated columns | noneVia root          | f\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435, \u0433\u0434\u0435 \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438:postgres@subscriber=# CREATE EXTENSION postgres_fdw;postgres@subscriber=# CREATE SERVER demo_server  FOREIGN DATA WRAPPER postgres_fdw  OPTIONS (host &#8216;localhost&#8217;, port &#8216;5401&#8217;, dbname &#8216;demo&#8217;);\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0440\u043e\u043b\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 (\u043d\u043e \u0431\u0435\u0437 \u043f\u0440\u0430\u0432 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438:postgres@subscriber=# CREATE ROLE alice LOGIN;postgres@subscriber=# GRANT pg_create_subscription TO alice;postgres@subscriber=# GRANT CREATE ON DATABASE demo TO alice;postgres@subscriber=# GRANT USAGE ON SCHEMA bookings TO alice;postgres@subscriber=# GRANT ALL ON ALL TABLES IN SCHEMA bookings TO alice;postgres@subscriber=# GRANT USAGE ON FOREIGN SERVER demo_server TO alice;\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0434\u043b\u044f alice. \u0412\u0430\u0436\u043d\u043e, \u0447\u0442\u043e alice \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0435\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043f\u0430\u0440\u043e\u043b\u044c:postgres@subscriber=# CREATE USER MAPPING FOR alice  SERVER demo_server  OPTIONS (user &#8216;postgres&#8217;, password &#8216;postgres&#8217;);\u0422\u0435\u043f\u0435\u0440\u044c alice \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f:alice@subscriber=&gt; CREATE SUBSCRIPTION sub  SERVER demo_server  PUBLICATION pub  WITH (run_as_owner = true);wal_sender_shutdown_timeout: \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 WAL \u043f\u0440\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 commit: a8f45dee917\u041f\u0440\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b walsender \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u043a \u043d\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c \u043d\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0445. \u041e\u0434\u043d\u0430\u043a\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u043d\u0430\u0434\u043e\u043b\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0430\u044e\u0442 \u0432 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0438 \u043e\u0442\u0432\u0435\u0442\u0430 \u043e\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0449\u0438\u0439 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0435, \u0436\u0434\u0435\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a.\u041d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 wal_sender_shutdown_timeout \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0434\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 WAL. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e:\\dconfig+ wal_sender_shutdown_timeout                      List of configuration parameters          Parameter          | Value |  Type   | Context | Access privileges &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- wal_sender_shutdown_timeout | -1    | integer | user    | (1 row)wal_receiver_timeout: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 commit: 8a6af3ad087, fb80f388f4a\u0415\u0441\u043b\u0438 \u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f, \u043f\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438.\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 wal_receiver_timeout \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0445 CREATE|ALTER SUBSCRIPTION. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 wal_receiver_timeout \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f-\u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 (context=user), \u0430 \u043d\u0435 \u0432\u0441\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b (sighup), \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u0440\u0430\u043d\u044c\u0448\u0435.SSL: SNI \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 commit: 4f433025f66, 4abcdc1bbeb\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 SNI \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0431\u044b\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0435\u0449\u0435 \u0432 14-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0447\u0435\u0440\u0435\u0437&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-497387","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/497387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=497387"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/497387\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=497387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=497387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=497387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}