{"id":302161,"date":"2020-04-20T09:00:25","date_gmt":"2020-04-20T09:00:25","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=302161"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=302161","title":{"rendered":"Postgresso 20"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/496974\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ez\/fy\/aj\/ezfyajccsosfqqp30i6bkzowyog.jpeg\"><br \/>  <i>\u0416\u0438\u0437\u043d\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u0432\u0430\u0441 \u0441 \u0441\u0430\u043c\u044b\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438 \u043d\u043e\u0432\u043e\u0441\u0442\u044f\u043c\u0438 PostgreSQL.<\/i><\/p>\n<h3>\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u044c<\/h3>\n<p>  <b>Feature Freeze<\/b><br \/>  \u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c 13-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 PostgreSQL \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0433\u043e\u0432. \u0421\u043f\u0438\u0441\u043e\u043a \u043d\u043e\u0432\u043e\u0433\u043e, \u0432\u043e\u043f\u0440\u0435\u043a\u0438 \u043c\u043d\u043e\u0433\u0438\u043c \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f\u043c, \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u0439. \u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u043d\u0430\u0448\u0443 \u0441\u0442\u0430\u0442\u044c\u044e<br \/>  <b><a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/493106\/\">\u041c\u043d\u043e\u0433\u043e \u043b\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0432 \u00ab\u0427\u0451\u0440\u0442\u043e\u0432\u043e\u0439 \u0434\u044e\u0436\u0438\u043d\u0435\u00bb<\/a><\/b>, \u0433\u0434\u0435 \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. \u041d\u043e \u0438 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 <i>\u0421\u0442\u0430\u0442\u044c\u0438<\/i> Postgresso \u0435\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0438, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0444\u0438\u0447\u0430\u043c.<\/p>\n<h3>\u0420\u0435\u043b\u0438\u0437\u044b<\/h3>\n<p>  <b>Postgres Pro Enterprise 12.2.1<\/b><br \/>  \u0412 \u044d\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u044b \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432\u0430 PostgreSQL 12 \u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432\u0435\u0442\u043a\u0438 Enterprise.<br \/>  \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/multimaster\">multimaster<\/a>: \u043a\u0430\u043a \u0438 \u0432 11.x, \u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Enterprise, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 2+1, \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u0438\u043d \u0438\u0437 \u0443\u0437\u043b\u043e\u0432 \u0440\u0435\u0444\u0435\u0440\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/multimaster#SETTING-UP-A-REFEREE\">\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>. \u0410 \u0435\u0449\u0451 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0443\u0437\u043b\u0430\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>mtm.check_query()<\/code>.<br \/>  \u0412 <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/cfs\">CFS<\/a> \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0441\u0436\u0430\u0442\u0438\u044f. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f zstd (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e), zlib \u0438 pglz, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b.<br \/>  \u0415\u0449\u0451 \u043e\u0434\u043d\u0430 \u0443\u0434\u0430\u0440\u043d\u0430\u044f \u0444\u0438\u0447\u0430 Enterprise \u2014 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c PTRACK, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/app-pgprobackup\">pg_pobackup<\/a>, \u2014 \u0431\u044b\u043b \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u043e\u0432\u044b\u0439 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 API. \u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438, \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441 PTRACK \u0432 pg_probackup, \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432 Postgres Pro Enterprise 12.x, \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c pg_probackup \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 2.2.6 \u0438\u043b\u0438 \u0432\u044b\u0448\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 PTRACK \u0437\u0430\u043d\u043e\u0432\u043e.<br \/>  \u0412\u0430\u0436\u043d\u044b\u0439 \u043f\u0430\u0442\u0447 <a href=\"https:\/\/commitfest.postgresql.org\/27\/2202\/\">\u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/a> \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 B-tree (\u0430\u0432\u0442\u043e\u0440 \u0410\u043d\u0430\u0441\u0442\u0430\u0441\u0438\u044f \u041b\u0443\u0431\u0435\u043d\u043d\u0438\u043a\u043e\u0432\u0430, Postgres Professional) \u0432 PostgreSQL 13, \u043d\u043e \u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/btree-implementation#BTREE-DEDUPLICATION\">\u0443\u0436\u0435 \u0435\u0441\u0442\u044c<\/a> \u0432 Enterprise 12.2.1. \u041f\u0440\u0438\u0447\u0435\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <code>deduplicate_items<\/code> \u043a\u043e\u043c\u0430\u043d\u0434\u044b CREATE INDEX. \u041e\u0431 \u044d\u0442\u043e\u043c \u0435\u0441\u0442\u044c <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/release-proee-12-2-1.html#PGPRO-MIGRATION-TO-12\">\u0437\u0434\u0435\u0441\u044c<\/a>.<a name=\"habracut\"><\/a><br \/>  \u0415\u0449\u0451 \u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432\u0430\u0445 \u043a\u0440\u0430\u0442\u043a\u043e:<\/p>\n<ul>\n<li><a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/connection-pooling\">\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043f\u0443\u043b<\/a> \u0431\u044b\u043b \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u0438\u0447\u0435\u0439, \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043e \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430.<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/pgpro-stats\">pgpro_stats<\/a>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f SQL-\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432, \u043d\u043e \u0438 <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/pgpro-stats\">\u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442<\/a> \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f.<\/li>\n<li>\u0414\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 <code>pg_stat_activity<\/code> <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/monitoring-stats#PG-STAT-ACTIVITY-VIEW\">\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e<\/a> \u043f\u043e\u043b\u0435 <code>wait_state_id<\/code>.<\/li>\n<li>\u0412 PostgreSQL 12 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d \u043e\u0431\u044a\u0451\u043c \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 WAL, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 GiST, GIN \u0438 SP-GiST, \u0432 Postgres Pro \u044d\u0442\u043e \u0443\u0447\u043b\u0438, \u043d\u043e \u0432\u043d\u0435\u0441\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043d\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0441\u044f.<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/runtime-config-resource\"><code>plan_cache_lru_memsize<\/code><\/a>, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043e\u0431\u044a\u0451\u043c \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0432\u043d\u043e 8 \u041c\u0411, \u0430 \u0435\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u043d \u0438 \u00ab\u0441\u0442\u0430\u0440\u044b\u0439\u00bb \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/runtime-config-resource\"><code>plan_cache_lru_size<\/code><\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0434\u0430\u0435\u0442 \u043d\u0435 \u043e\u0431\u044a\u0435\u043c, \u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432, \u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435, \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u043c\u043e\u0435 \u043f\u0435\u0440\u0432\u044b\u043c.<\/li>\n<\/ul>\n<p>  \u0412\u044b\u0448\u043b\u0430 \u0438 <b>Postgres Pro Standard 12.2.1<\/b>. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u043e\u0442 PostgreSQL \u0432 Standard \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u044b, \u043a\u0430\u043a \u0432 Postgres Pro Enterprise, \u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u043c \u043a <a href=\"https:\/\/postgrespro.ru\/docs\/postgrespro\/12\/release-pro-12-2-1\">\u0447\u0435\u0439\u043d\u0434\u0436\u043b\u043e\u0433\u0443<\/a>.<\/p>\n<p>  <b>pgAdmin 4 version 4.20<\/b><br \/>  \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b Collation, FTS Configuration, FTS Dictionary, FTS Parser, FTS Template, Domain, Domain Constraints, \u0438 Types \u0434\u043b\u044f <a href=\"https:\/\/www.pgadmin.org\/docs\/pgadmin4\/4.18\/schema_diff.html\">Schema Diff<\/a>.<\/p>\n<p>  \u041e \u0440\u0435\u043b\u0438\u0437\u0435 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 <a href=\"https:\/\/www.pgadmin.org\/docs\/pgadmin4\/dev\/release_notes_4_20.html\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/www.pgadmin.org\/download\/\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>.<\/p>\n<p>  <b>WAL-G v0.2.15<\/b><br \/>  \u0412 <a href=\"https:\/\/github.com\/wal-g\/wal-g\/releases\/tag\/v0.2.15\">\u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438<\/a> \u044f\u043d\u0434\u0435\u043a\u0441\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0431\u044d\u043a\u0430\u043f\u0430 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0442\u044c \u043e\u0442\u0441\u0442\u0430\u0432\u0430\u043d\u0438\u0435 (lag) \u0440\u0435\u043f\u043b\u0438\u043a\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 <code>catchup-push<\/code> \u0438 <code>catchup-fetch<\/code>, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u044d\u043a\u0430\u043f \u043e\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e LSN \u0441 \u043e\u0442\u0441\u0442\u0430\u0432\u0448\u0435\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0438. \u041f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f Libsodium, \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 (Retryer) \u0434\u043b\u044f AWS. <\/p>\n<p>  <b>repmgr 5.1<\/b><br \/>  \u0411\u044d\u043a\u0430\u043f \u043e\u0442 2ndQuadrant <a href=\"https:\/\/repmgr.org\/docs\/current\/release-5.1.0.html\">\u043e\u0431\u043e\u0433\u0430\u0442\u0438\u043b\u0441\u044f<\/a> \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438: \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c repmgr \u0431\u044b\u043b \u0441\u0443\u043f\u0435\u0440\u044e\u0437\u0435\u0440\u043e\u043c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0431\u0440\u0430\u043b\u0438 \u043e\u0442\u043e\u0432\u0441\u044e\u0434\u0443, \u043e\u0442\u043a\u0443\u0434\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0431\u0430\u0437\u044b \u043c\u043e\u0436\u0435\u0442 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0431\u0430\u0437\u0443, \u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441 \u0440\u043e\u043b\u044c\u044e REPLICATION \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0438 \u0441\u043b\u043e\u0442\u044b (\u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e). \u041d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0441\u0435 \u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043e\u043f\u0446\u0438\u0438 <code>-S | --superuser<\/code>. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c <a href=\"https:\/\/repmgr.org\/download\/repmgr-5.1.tar.gz\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>.<\/p>\n<p>  <b>pgBackRest 2.25<\/b><br \/>  \u0413\u043b\u0430\u0432\u043d\u0430\u044f <a href=\"https:\/\/pgbackrest.org\/release.html#2.25\">\u043d\u043e\u0432\u043e\u0441\u0442\u044c<\/a> \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u2014 LZ4-\u0441\u0436\u0430\u0442\u0438\u0435. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043e\u043f\u0446\u0438\u044f: <code>--dry-run<\/code> \u0434\u043b\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>expire<\/code>: \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u0431\u044d\u043a\u0430\u043f\u044b\/\u0430\u0440\u0445\u0438\u0432\u044b \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0443\u0434\u0430\u043b\u044f\u044f. \u041c\u043e\u0436\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u044d\u043a\u0430\u043f\u0430 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u043e\u0439, \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u043d\u043e\u0439 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u043b\u0430\u0433\u0430\u044f\u0441\u044c \u043d\u0430 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u043d\u0438\u0435 WAL \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0430\u0441\u043f\u0443\u0445\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430.<\/p>\n<p>  <b>check_pgbackrest 1.8<\/b><br \/>  \u0412\u044b\u0448\u043b\u0430 \u0438 <a href=\"https:\/\/github.com\/dalibo\/check_pgbackrest\/releases\">\u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f<\/a> \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 BackRest-\u0430 (\u0435\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u0435 CrunchyData, \u043a\u0430\u043a \u0441\u0430\u043c pgBackRest, \u0430 Dalibo). \u041f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043e\u043f\u0446\u0438\u044f <code>--list-archives<\/code>: \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 WAL.<\/p>\n<p>  <b>pgmetrics v1.9<\/b><br \/>  \u041f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0441\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a \u0441 AWS <a href=\"https:\/\/pgmetrics.io\/docs\/aws.html\">RDS \u0438 Aurora<\/a>, \u0441\u0431\u043e\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u0442\u0438\u043f\u043e\u0432 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0431\u044d\u043a\u0435\u043d\u0434\u043e\u0432, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0439 \u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0418 \u043c\u043e\u0436\u043d\u043e SET ROLE \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0441\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u0440\u0438\u043a \u043e\u043f\u0446\u0438\u0435\u0439 <code>--role<\/code>. \u0420\u0435\u043b\u0438\u0437 \u043d\u0430 <a href=\"https:\/\/github.com\/rapidloop\/pgmetrics\/releases\">\u0433\u0438\u0442\u0445\u0430\u0431\u0435<\/a>.<\/p>\n<p>  <b>pg_show_plans<\/b><br \/>  \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435, <a href=\"https:\/\/github.com\/cybertec-postgresql\/pg_show_plans\">\u043a\u043e\u0442\u043e\u0440\u043e\u0435<\/a> \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0438\u0441\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0425\u0430\u043d\u0441-\u042e\u0440\u0433\u0435\u043d \u0428\u0451\u043d\u0438\u0433 (Hans-J\u00fcrgen Sch\u00f6nig) \u0438\u0437 Cybertec, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u0435 \u043f\u043b\u0430\u043d\u044b \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430, \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u2014 \u043f\u0440\u044f\u043c\u043e \u043f\u043e\u043a\u0430 \u043e\u043d\u0438 \u0435\u0449\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f. \u041e\u043d \u043f\u043e\u044f\u0441\u043d\u044f\u0435\u0442 \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u0443 <a href=\"https:\/\/www.cybertec-postgresql.com\/en\/pg_show_plans-watching-execution-plans-in-postgresql-live\/\">\u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u0431\u043b\u043e\u0433\u0435<\/a> \u0438 <a href=\"https:\/\/www.cybertec-postgresql.com\/en\/products\/pg-show-plans\/\">\u043d\u0430 \u0441\u0430\u0439\u0442\u0435<\/a> \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u0418 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043d. pg_show_plans \u0434\u0430\u0436\u0435 \u0443\u0436\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438 \u043d\u0430 <i>\u0412\u0442\u043e\u0440\u043d\u0438\u043a\u0430\u0445 \u0443 \u0421\u0430\u043c\u043e\u0445\u0432\u0430\u043b\u043e\u0432\u0430<\/i> (\u0441\u043c. \u043d\u0430\u0448 \u0440\u0430\u0437\u0434\u0435\u043b <i>\u0412\u0435\u0431\u0438\u043d\u0430\u0440\u044b<\/i>). \u041a\u0441\u0442\u0430\u0442\u0438, \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <a href=\"https:\/\/postgrespro.ru\/docs\/postgrespro\/12\/pg-query-state\">pg_query_state<\/a>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432 Postgres Pro Standard\/Enterprise, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430. \u041d\u043e \u043a \u0432\u0430\u043d\u0438\u043b\u044c\u043d\u043e\u043c\u0443 PostgreSQL \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0430\u0442\u0447.<\/p>\n<p>  <b>Joe 0.6.2\/1\/0<\/b><br \/>  \u041a\u0430\u0435\u043c\u0441\u044f: \u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b <a href=\"https:\/\/postgres.ai\/blog\/joe-0.6\/\">\u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u0447\u0430\u0442-\u0431\u043e\u0442\u0430<\/a> \u043c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u043e \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0432 <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/488846\/\">\u043f\u0440\u043e\u0448\u043b\u043e\u043c<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/472082\/\">\u043f\u043e\u0437\u0430\u043f\u0440\u043e\u0448\u043b\u043e\u043c<\/a> Postgresso, \u0445\u043e\u0442\u044f \u043e\u043d\u0430 \u0434\u043e\u0441\u0442\u043e\u0439\u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e. \u042d\u0442\u043e\u0442 DBA-\u0431\u043e\u0442, \u043a\u0430\u043a \u0435\u0433\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438\u0437 Postgres.ai, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0431\u0430\u0437\u0435, \u043d\u0435 \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u0430\u044f \u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443, \u043d\u043e \u0438 \u0431\u0435\u0437 \u0434\u043e\u043b\u0433\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0442\u0435\u0441\u0442\u043e\u0432\u0443\u044e \u0441\u0440\u0435\u0434\u0443 (\u0442\u0435\u0440\u0430\u0431\u0430\u0439\u0442\u043d\u044b\u0435 \u0431\u0430\u0437\u044b <a href=\"https:\/\/gitlab.com\/postgres-ai\/database-lab\">\u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f<\/a> \u0437\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u044b). \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u044d\u0442\u043e\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0439: \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 <a href=\"https:\/\/www.youtube.com\/watch?v=SjS2sLhZAOA\">\u0410\u043d\u0430\u0442\u043e\u043b\u0438\u0439 \u0421\u0442\u0430\u043d\u0441\u043b\u0435\u0440<\/a> \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u0432 \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u043d\u0430 Highload++, \u0441\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c. <br \/>  \u0412 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 0.6.2 \u0438 0.6.1 \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0433\u0444\u0438\u043a\u0441\u044b, \u043d\u043e \u0437\u0430\u0442\u043e \u0432 0.6.0 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u0435\u0449\u0438: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 <a href=\"https:\/\/hypopg.readthedocs.io\/en\/latest\/\">\u0433\u0438\u043f\u043e\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438<\/a> (\u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c <a href=\"https:\/\/github.com\/HypoPG\/hypopg\">HypoPG<\/a>). \u0421 \u0433\u0438\u043f\u043e\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430 <code>hypo<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: <code>hypo reset<\/code> \u2014 \u0443\u0431\u0438\u0442\u044c \u0432\u0441\u0435 \u0433\u0438\u043f\u043e\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b. \u041d\u043e\u0432\u0430\u044f <a href=\"https:\/\/postgres.ai\/docs\/joe-bot\/usage\">\u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/a> <code>plan<\/code> \u043e\u0442\u0434\u0430\u0451\u0442 \u043f\u043b\u0430\u043d, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044f \u0437\u0430\u043f\u0440\u043e\u0441.<\/p>\n<p>  <b>Pyrseas 0.9.1<\/b><br \/>  \u042d\u0442\u0430 <a href=\"https:\/\/pyrseas.readthedocs.io\/en\/latest\/\">\u0432\u0435\u0440\u0441\u0438\u044f<\/a> \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f-\u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0445\u0435\u043c\u044b \u0411\u0414 \u043d\u0430 YAML\/JSON, \u0441\u0432\u0435\u0440\u043a\u0438 \u0441\u0445\u0435\u043c \u0411\u0414 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 PostgreSQL 12. \u0412\u043e\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0430 <a href=\"https:\/\/pgxn.org\/dist\/pyrseas\/\">\u043d\u0430 PGXN<\/a>.<\/p>\n<p>  <b>pgFormatter 4.3<\/b><br \/>  <a href=\"https:\/\/github.com\/darold\/pgFormatter\/blob\/master\/ChangeLog\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b<\/a> \u0434\u0432\u0435 \u043e\u043f\u0446\u0438\u0438, \u043f\u043e\u0447\u0438\u043d\u0435\u043d\u044b \u0431\u0430\u0433\u0438:<\/p>\n<ul>\n<li><code>-r | --redshift<\/code> \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 AWS Redshift;<\/li>\n<li><code>-N | --numbering<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u0432\u0438\u0434\u0430 <code>\/* Statement # n *\/<\/code>;<\/li>\n<li>\u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 WITH;<\/li>\n<li>\u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 psql;<\/li>\n<li>\u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a \u0441\u043f\u0438\u0441\u043a\u0443 PostgreSQL-\u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/li>\n<\/ul>\n<p>  <b>pg_timeout 0.0.1<\/b><br \/>  \u0418 \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435: <a href=\"https:\/\/github.com\/pierreforstmann\/pg_timeout\">\u0441 \u043d\u0438\u043c<\/a> \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u043b\u044f \u0441\u0435\u0441\u0441\u0438\u0438 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0432 \u0435\u0433\u043e \u0432 \u0434\u0432\u0443\u0445 GUC:<\/p>\n<ul>\n<li><code>pg_timeout.naptime<\/code>: \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434 \u0444\u043e\u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u043f\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u043c\u0438 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f (10 \u0441\u0435\u043a. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e)<\/li>\n<li><code>pg_timeout.idle_session_timeout<\/code>: \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434 \u0441\u0435\u0441\u0441\u0438\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0436\u0438\u0442\u044c \u0432 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438 (60 \u0441\u0435\u043a. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e).<\/li>\n<\/ul>\n<p>  \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0432 \u043b\u043e\u0433\u0435. \u041d\u043e\u043c\u0435\u0440 \u0440\u0435\u043b\u0438\u0437\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0437\u0430 \u0441\u0435\u0431\u044f.<\/p>\n<p>  <b>pg_logqueryid<\/b><br \/>  \u0410 <a href=\"https:\/\/github.com\/pierreforstmann\/pg_logqueryid\">\u044d\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435<\/a> \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 <code>pg_stat_statements<\/code>, \u043a\u043e\u0433\u0434\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d <code>auto_explain<\/code>.<\/p>\n<p>  <b>Psycopg 2.8.5<\/b><br \/>  \u042d\u0442\u043e\u0442 <a href=\"https:\/\/www.psycopg.org\/articles\/2020\/04\/06\/psycopg-285-released\/\">Python-\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440<\/a> \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 AIX.<\/p>\n<p>  <b>pg_timetable 2.0<\/b><br \/>  \u0412 \u044d\u0442\u043e\u0442 <a href=\"https:\/\/github.com\/cybertec-postgresql\/pg_timetable#21-official-release-packages\">\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439<\/a> (scheduler) \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f: \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u0442\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043a\u0430\u043a <code>@reboot<\/code>, <code>@every<\/code> \u0438\u043b\u0438 <code>@after<\/code>.<\/p>\n<p>  <b>pgBadger 11.2<\/b><br \/>  \u0412 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043b\u043e\u0433\u043e\u0432 \u0416\u0438\u043b\u044f \u0414\u0430\u0440\u043e\u043b\u044f (Gilles Darold) <a href=\"https:\/\/github.com\/darold\/pgbadger\/releases\">\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b<\/a>:<\/p>\n<ul>\n<li>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0438 \u0430\u0432\u0442\u043e\u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043b\u043e\u0433\u043e\u0432 AWS Redshift;<\/li>\n<li>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043b\u043e\u0433\u043e\u0432 pgbouncer 1.11;<\/li>\n<li>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0436\u0430\u0442\u0438\u044f zstd \u0438 lz4;<\/li>\n<li>\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442\u0443 \u0432\u043e\u0442 \u0442\u0430\u043a: <code>pgbadger -I -O &quot;\/out-dir\/data&quot; --noreport \/var\/log\/postgresql*.log<\/code> \u0438\u043b\u0438<\/li>\n<li>\u0442\u0430\u043a: <code>pgbadger -I -l &quot;\/out-dir\/data\/LAST_PARSED&quot; -H &quot;\/out-dir\/reports&quot; \/out-dir\/data\/2020\/02\/19\/*.bin<\/code>.<\/li>\n<\/ul>\n<p>  <b>PAF v2.3.0<\/b><br \/>  \u0412\u0435\u0440\u0441\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0433\u043e <a href=\"https:\/\/clusterlabs.github.io\/PAF\/documentation.html\">\u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/a> \u043e\u0442 ClusterLabs, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 <b>Pacemaker+Corosync<\/b>, \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 PostgreSQL 12. \u041e\u043d\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 \u0431\u043e\u043b\u0435\u0435 \u0434\u0440\u0435\u0432\u043d\u0438\u043c\u0438, \u0447\u0435\u043c Pacemaker 1.1.13 + corosync 2.x.<\/p>\n<p>  <b>pgagroal 0.5.1<\/b><br \/>  \u041d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e <a href=\"https:\/\/agroal.github.io\/pgagroal\/\/release\/announcement\/2020\/04\/14\/pgagroal-0.5.1.html\">\u043f\u0443\u043b\u0435\u0440\u0430<\/a> \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043e\u0442\u0441\u044e\u0434\u0430: <a href=\"https:\/\/github.com\/agroal\/pgagroal\/releases\/download\/0.5.1\/pgagroal-0.5.1.tar.gz\">\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438<\/a>, <a href=\"https:\/\/yum.postgresql.org\/\">RPM<\/a>.<\/p>\n<h3>\u041e\u0431\u043b\u0430\u043a\u0430<\/h3>\n<p>  <b>Amazon RDS Now Supports PostgreSQL 12<\/b><br \/>  \u0412 <a href=\"https:\/\/aws.amazon.com\/ru\/about-aws\/whats-new\/2020\/03\/amazon-rds-now-supports-postgresql-12\/\">\u0430\u043d\u043e\u043d\u0441\u0435<\/a> \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0440\u0435\u043b\u0438\u0437\u043e\u043c \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 (\u0432 \u0447\u0438\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0438\u0445) \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f:<br \/>  PostGIS 3.0,<br \/>  PGAudit 1.4,<br \/>  wal2json 2.1,<br \/>  PLV8 2.3.14,<br \/>  Orafce 3.8,<br \/>  pg_repack 1.4.5,<br \/>  pg_hint_plan 1.3.5.22a77c,<br \/>  pglogical 2.3.0.<\/p>\n<p>  <b>How to Authenticate Postgres Users Against Amazon AWS Cognito<\/b><br \/>  \u041d\u0435 \u043d\u0430\u0439\u0434\u044f \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u043e \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 <a href=\"https:\/\/aws.amazon.com\/ru\/cognito\/?nc1=h_ls\">Cognito<\/a> \u0434\u043b\u044f PostgreSQL, \u042d\u0440\u043d\u0441\u0442-\u0413\u0435\u043e\u0440\u0433 \u0428\u043c\u0438\u0434 (Ernst-Georg Schmid) \u0430\u043a\u0430 <i>ergo<\/i> <a href=\"https:\/\/theplateisbad.blogspot.com\/2020\/03\/authenticate-postgresql-users-against.html\">\u0441\u0430\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043b<\/a> \u0441\u043a\u0440\u0438\u043f\u0442 <a href=\"https:\/\/gist.github.com\/ergo70\"> cognito_PAM.py<\/a> \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u044e\u0449\u0438\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 PostgreSQL \u0438 pgbouncer.<\/p>\n<h3>\u0421\u0442\u0430\u0442\u044c\u0438<\/h3>\n<p>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043d\u0430 \u043b\u044e\u0442\u0443\u044e \u0437\u043b\u043e\u0431\u0443 \u0434\u043d\u044f. \u041d\u043e \u044d\u0442\u0438 \u0434\u0432\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043e\u0442\u043d\u044e\u0434\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0432\u0435\u0441\u0442\u043a\u043e\u0439, \u043e\u043d\u0438 \u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b \u0432 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435.<\/p>\n<p>  <b>Charting the spread of COVID-19 using data<\/b><br \/>  \u0412 \u0431\u043b\u043e\u0433\u0435 Timescale \u043f\u043e \u0448\u0430\u0433\u0430\u043c <a href=\"https:\/\/blog.timescale.com\/blog\/charting-the-spread-of-covid-19-using-timescale\/?utm_source=pg-weekly-sponsor&amp;utm_medium=email&amp;utm_campaign=pg-weekly-sponsor-april-2020&amp;utm_content=covid-blog-post\">\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442<\/a>, \u043a\u0430\u043a \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043a\u0430\u0440\u0442 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432\u0438\u0440\u0443\u0441\u0430. \u0414\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u0440 \u0431\u0440\u0430\u043b \u0441 <a href=\"https:\/\/github.com\/CSSEGISandData\/COVID-19\/tree\/master\/csse_covid_19_data\">\u0433\u0438\u0442\u0445\u0430\u0431\u0430 \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430 \u0414\u0436\u043e\u043d\u0430 \u0425\u043e\u043f\u043a\u0438\u043d\u0441\u0430<\/a>, \u0437\u0430\u043b\u0438\u0432\u0430\u043b \u0432 <a href=\"https:\/\/www.timescale.com\/products?utm_source=timescale-covid19&amp;utm_medium=blog&amp;utm_campaign=mar-2020-advocacy\">TimescaleDB<\/a>, \u0430 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b <a href=\"https:\/\/docs.timescale.com\/latest\/tutorials\/tutorial-grafana\/?utm_source=timescale-covid19&amp;utm_medium=blog&amp;utm_campaign=mar-2020-advocacy\">Grafana<\/a>.<\/p>\n<p>  <b>Intersecting GPS-Tracks to identify infected individuals<\/b><br \/>  <a href=\"https:\/\/www.cybertec-postgresql.com\/en\/intersecting-gps-tracks-to-identify-infected-individuals\/\">\u0421\u0442\u0430\u0442\u044c\u044f<\/a> \u043d\u0430 Cybertec \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0438 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u043e\u0432. \u0414\u043b\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043e\u043a\u043e\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0430 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u0438\u0440\u0443\u0441\u0430 \u2014 <a href=\"https:\/\/qgis.org\/en\/site\/\">QGIS<\/a>.<\/p>\n<p>  <b>Create and Visualize Machine Learning Models Using 2UDA<\/b><br \/>  2ndQuadrant (\u044d\u0442\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u044b\u043a\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u0430 \u0432 \u044d\u0442\u0438 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430: \u0432\u0435\u0431\u0438\u043d\u0430\u0440\u044b \u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u0438\u0431\u044b\u0432\u0430\u044e\u0442 \u043f\u043e\u0442\u043e\u043a\u043e\u043c) \u0432 \u044d\u0442\u043e\u0439 <a href=\"https:\/\/www.2ndquadrant.com\/en\/resources\/2uda\/\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0438\u0441\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438, \u0433\u0434\u0435 \u0435\u0441\u0442\u044c \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u043f\u0430\u043a\u0435\u0442 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. 2UDA \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u0440\u0435\u0434\u0443 Orange \u0438 \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 PostgreSQL \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0435\u0433\u043e \u0432\u0435\u0440\u0441\u0438\u0438 \u2014 12.2. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0443\u0447\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u0435 <b>\u0441\u043e \u0421\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u041b\u0435\u0441\u043e\u043c<\/b>. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u0441\u0435\u0440\u0438\u0438 <a href=\"https:\/\/www.2ndquadrant.com\/en\/blog\/how-to-use-the-svm-machine-learning-model-with-2uda-postgresql-and-orange-part-2\/\">\u0443\u0447\u0438\u043b\u0438 <b>SVM<\/b><\/a> (\u043e\u043d \u0436\u0435 \u041c\u0435\u0442\u043e\u0434 \u041e\u043f\u043e\u0440\u043d\u044b\u0445 \u0412\u0435\u043a\u0442\u043e\u0440\u043e\u0432) \u0438 <a href=\"https:\/\/www.2ndquadrant.com\/en\/blog\/how-to-use-machine-learning-with-2uda-postgresql-and-orange\/\">\u0438\u0441\u043a\u0430\u0442\u044c \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0445<\/a> \u0441\u043e\u0441\u0435\u0434\u0435\u0439 (KNN). <\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0438\u0445 \u0436\u0435 \u0441\u0435\u0440\u0438\u044f \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 <b>PostgreSQL \u0434\u043b\u044f Windows<\/b>: \u0447\u0430\u0441\u0442\u0438 <a href=\"https:\/\/www.2ndquadrant.com\/en\/blog\/developing-postgresql-windows-part-3\/\">3<\/a> <a href=\"https:\/\/www.2ndquadrant.com\/en\/blog\/developing-postgresql-windows-part-2\/\">2<\/a> <a href=\"https:\/\/www.2ndquadrant.com\/en\/blog\/developing-postgresql-windows-part-1\/\">1<\/a>.<\/p>\n<p>  <b>Comparing MongoDB vs Postgres over JOINs<\/b><br \/>  \u041d\u0430\u0434\u043e \u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u043d\u0435 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438, \u0430 \u0441 \u0430\u0432\u0442\u043e\u0440\u043e\u0432: <b>\u041c\u0430\u0439\u043a\u043b \u0421\u0442\u043e\u0443\u043d\u0431\u0440\u0435\u0439\u043a\u0435\u0440 (Michael Stonebraker, \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439)<\/b> \u0438 <b>\u0410\u043b\u044c\u0432\u0430\u0440\u043e \u042d\u0440\u043d\u0430\u043d\u0434\u0435\u0441 (\u00c1lvaro Hern\u00e1ndez)<\/b>. \u0410\u043b\u044c\u0432\u0430\u0440\u043e, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u0442\u043e\u0436\u0435 \u00ab\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439\u00bb \u2014 \u043e\u043d \u043d\u0435\u043e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u043b \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0445 \u0432 \u041c\u043e\u0441\u043a\u0432\u0435: \u0432\u043e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0433\u043e <a href=\"https:\/\/pgconf.ru\/2020\/271979\">\u0434\u043e\u043a\u043b\u0430\u0434<\/a> \u043e <a href=\"https:\/\/stackgres.io\/\">StackGres<\/a> \u043d\u0430 PGConf.Russia 2020. \u041d\u0443 \u0430 \u0442\u0435\u043c\u0430 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f NoSQL \u0441 Postgres \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <b>10 Things I Hate About Postgres<\/b><br \/>  \u041e\u0447\u0435\u0440\u0435\u0434\u043d\u0430\u044f <a href=\"https:\/\/medium.com\/@rbranson\/10-things-i-hate-about-postgresql-20dbab8c2791\">\u0445\u043e\u043b\u043e\u0434\u043d\u0430\u044f \u0444\u0430\u0437\u0430<\/a> \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u043d\u043e\u0433\u043e \u0434\u0443\u0448\u0430 Postgres vs \u0414\u0440\u0443\u0433\u0438\u0435 \u0421\u0423\u0411\u0414. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0420\u0438\u043a\u0430 \u0411\u0440\u044d\u043d\u0441\u043e\u043d\u0430 (Rick Branson) \u0432\u0435\u0441\u044c\u043c\u0430 \u0436\u0435\u0441\u0442\u043a\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0432\u0441\u0451 \u043b\u0443\u0447\u0448\u0435 \u0438 \u043b\u0443\u0447\u0448\u0435 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u043c\u0430\u0436\u043e\u0440\u043d\u044b\u043c \u0440\u0435\u043b\u0438\u0437\u043e\u043c. \u041d\u043e \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432 \u0435\u0441\u0442\u044c \u0436\u0435\u0441\u0442\u043a\u0438\u0439 \u043f\u0440\u0435\u0434\u0435\u043b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043e\u0431\u0443\u0441\u043b\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439 Postgres \u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 \u0442\u0435\u043c \u0436\u0435 MySQL \u0441 \u0435\u0433\u043e <i>\u043e\u0434\u0438\u043d \u0442\u0440\u0435\u0434 \u043d\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435<\/i>.<\/p>\n<p>  <b>Parallel Query Inside Function<\/b><br \/>  \u0410\u0431\u0434\u0443\u043b \u0419\u0430\u0434\u0438 (Abdul Yadi) <a href=\"https:\/\/abdulyadi.wordpress.com\/2020\/04\/07\/parallel-query-inside-function\/\">\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442<\/a> \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 SQL \u0438 PL\/pgSQL. \u041e\u043d \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b, \u0447\u0442\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u0432 SQL \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u0431\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 SQL \u0438 PL\/pgSQL. \u0418 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0443\u043b\u043e\u0432\u043a\u0443, \u043a\u0430\u043a \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c \u0438 \u0432 PL\/pgSQL.<\/p>\n<p>  <b>Monitoring the query planner<\/b><br \/>  \u0416\u0443\u043b\u044c\u0435\u043d \u0420\u0443\u043e (Julien Rouhaud) <a href=\"https:\/\/rjuju.github.io\/postgresql\/2020\/04\/04\/new-in-pg13-monitoring-query-planner.html\">\u043f\u0438\u0448\u0435\u0442<\/a> \u0432 \u0441\u0432\u043e\u0435\u043c <a href=\"https:\/\/rjuju.github.io\/\">\u0414\u043e\u043c\u0438\u043a\u0435 \u0416\u0443\u0436\u0443<\/a> \u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0435 \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430.<\/p>\n<p>  <b>Waiting for PostgreSQL 13 \u2013 Allow pg_stat_statements to track planning statistics<\/b><br \/>  \u0425\u0443\u0431\u0435\u0440\u0442 \u00ab\u0414\u0435\u043f\u0435\u0448\u00bb \u041b\u044e\u0431\u0430\u0448\u0435\u0432\u0441\u043a\u0438\u0439 <a href=\"https:\/\/www.depesz.com\/2020\/04\/02\/waiting-for-postgresql-13-allow-pg_stat_statements-to-track-planning-statistics\/\">\u043f\u0438\u0448\u0435\u0442<\/a> \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u0430\u0442\u0447\u0435, \u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0435\u0433\u043e \u043d\u0430 pgbench \u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u043e\u043b\u0433\u043e\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u043f\u043b\u0430\u043d \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e). \u041a\u0441\u0442\u0430\u0442\u0438, \u0432 <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/493106\/\">\u043d\u0430\u0448\u0435\u043c \u043e\u0431\u0437\u043e\u0440\u0435<\/a> \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0441 <b>pg_stat_statements<\/b>.<\/p>\n<p>  <b>PostgreSQL Person of the Week: Michael Paquier<\/b><br \/>  \u041c\u0438\u0448\u0435\u043b\u044c \u041f\u0430\u043a\u044c\u0435 (\u043e\u043d \u0440\u043e\u0434\u0438\u043b\u0441\u044f \u0438 \u0443\u0447\u0438\u043b\u0441\u044f \u0432\u043e \u0424\u0440\u0430\u043d\u0446\u0438\u0438, \u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u042f\u043f\u043e\u043d\u0438\u0438), \u043c\u043d\u043e\u0433\u0438\u043c \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439 \u043f\u043e \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0435 <i>hackers<\/i>, \u043d\u0430\u0447\u0438\u043d\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0435\u0449\u0435 \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 8.3. \u041d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u043b\u044e\u0431\u0438\u043c\u043e\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442: <a href=\"https:\/\/www.postgresql.org\/docs\/current\/pgstatstatements.html\">pg_stat_statement<\/a>! (\u0432\u043e\u0441\u043a\u043b\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u043d\u0430\u043a \u0435\u0433\u043e), \u0430 \u0438\u0437 \u0444\u0438\u0447 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 <a href=\"https:\/\/www.postgresql.org\/docs\/current\/tableam.html\">TableAM<\/a>.<\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0432\u044b\u0431\u043e\u0440 \u043f\u0435\u0440\u0441\u043e\u043d\u043e\u0439 \u043d\u0435\u0434\u0435\u043b\u0438 <b>\u0410\u0439\u043b\u0430\u0440\u0438\u0438 \u0411\u0430\u0442\u0442\u0438\u0441\u043e\u043d<\/b> (Ilaria Battiston) \u0431\u044b\u043b \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c: \u043e\u043d\u0430 22-\u043b\u0435\u0442\u043d\u044f\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043a\u0430-\u0438\u0442\u0430\u043b\u044c\u044f\u043d\u043a\u0430, \u0438\u0437\u0443\u0447\u0430\u044e\u0449\u0430\u044f Data Engineering \u0432 \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0435 \u041c\u044e\u043d\u0445\u0435\u043d\u0430. \u0427\u0435\u043c \u043e\u043d\u0430 \u0437\u0430\u0441\u043b\u0443\u0436\u0438\u043b\u0430 \u0442\u0438\u0442\u0443\u043b \u2014 <a href=\"https:\/\/postgresql.life\/post\/ilaria_battiston\/\">\u0447\u0438\u0442\u0430\u0439\u0442\u0435<\/a>.<\/p>\n<p>  <b>\u041f\u0438\u0448\u0435\u043c \u0432 PostgreSQL \u043d\u0430 \u0441\u0443\u0431\u0441\u0432\u0435\u0442\u043e\u0432\u043e\u0439: 1 host, 1 day, 1TB<\/b><br \/>  \u041a\u0438\u0440\u0438\u043b\u043b \u0411\u043e\u0440\u043e\u0432\u0438\u043a\u043e\u0432 \u0430\u043a\u0430 <a href=\"https:\/\/habr.com\/ru\/users\/kilor\/\" class=\"user_link\">Kilor<\/a> (\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u00ab\u0422\u0435\u043d\u0437\u043e\u0440\u00bb) <a href=\"https:\/\/habr.com\/ru\/company\/tensor\/blog\/497008\/\">\u043f\u0438\u0448\u0435\u0442<\/a> \u043e \u0442\u043e\u043c, <i>\u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0411\u0414, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0432 \u043f\u043e\u0442\u043e\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/i> \u0421\u043f\u043e\u0439\u043b\u0435\u0440: \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0441 \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u042d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0430\u0432\u0442\u043e\u0440 \u0442\u0440\u043e\u0433\u0430\u043b \u0438 \u0432 <a href=\"https:\/\/habr.com\/ru\/company\/tensor\/blog\/492694\/\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u0432 \u0442\u0435\u043e\u0440\u0438\u0438, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u043e\u043f\u044b\u0442\u0435.<\/p>\n<p>  <b>PostgreSQL&#8217;s &#8216;Related Projects&#8217;<\/b><br \/>  \u0410\u043d\u0434\u0440\u0435\u0430\u0441 \u0428\u0435\u0440\u0431\u0430\u0443\u043c (Andreas Scherbaum) <a href=\"https:\/\/andreas.scherbaum.la\/blog\/archives\/1023-Related-Projects.html\">\u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442<\/a>, \u0447\u0442\u043e \u043d\u0430 postgresql.org \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c <a href=\"https:\/\/www.postgresql.org\/developer\/related-projects\/\">\u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0430<\/a> \u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u0438\u043c\u0435\u044e\u0449\u0438\u0445 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a PostgreSQL, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a pgweb, pglister, PostgreSQL Build Farm \u0438 \u0434\u0440\u0443\u0433\u0438\u0445.<\/p>\n<p>  <b>A Beginners Guide to Basic Indexing in Postgres<\/b><br \/>  \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e <a href=\"https:\/\/bannister.me\/blog\/a-beginners-guide-to-basic-indexing\/\">\u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445<\/a>. \u0414\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0432\u0448\u0438\u0445, \u043d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u0435\u0441\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/326096\/\">\u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439<\/a> \u043e\u0431 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0445 \u0415\u0433\u043e\u0440\u0430 \u0420\u043e\u0433\u043e\u0432\u0430 <a href=\"https:\/\/habr.com\/ru\/users\/erogov\/\" class=\"user_link\">erogov<\/a> (\u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0438 <a href=\"https:\/\/postgrespro.ru\/education\/books\/introbook\"><i>\u043c\u0430\u043b\u044e\u0442\u043a\u0430<\/i><\/a>, \u043e\u043d\u0430 \u0436\u0435 <i>\u041f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e<\/i>, \u0433\u0434\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043e\u0431 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0445). <\/p>\n<p>  <b>Useful Queries for Postgres Index Maintenance<\/b><br \/>  \u0418\u0431\u0440\u0430\u0440 \u0410\u0445\u043c\u0435\u0434 (Ibrar Ahmed) \u0438\u0437 Percona \u0432 \u043d\u0435\u0434\u043b\u0438\u043d\u043d\u043e\u0439 <a href=\"https:\/\/www.percona.com\/blog\/2020\/03\/31\/useful-queries-for-postgresql-index-maintenance\/\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u0434\u0430\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u044b \u0441\u043b\u0435\u0436\u043a\u0438 \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430.<\/p>\n<p>  <b>\u0417\u0434\u043e\u0440\u043e\u0432\u044c\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0432 PostgreSQL \u0433\u043b\u0430\u0437\u0430\u043c\u0438 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430<\/b><br \/>  \u0418\u0432\u0430\u043d \u0412\u0430\u0445\u0440\u0443\u0448\u0435\u0432 (\u042f\u043d\u0434\u0435\u043a\u0441) \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"https:\/\/github.com\/mfvanek\/pg-index-health\">pg-index-health<\/a>, \u0430 \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/490824\/\">\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043e\u043d \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u044b. \u0418\u0432\u0430\u043d \u043f\u0440\u0438\u0437\u043d\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0438\u043b <i>\u0432\u0435\u043b\u0438\u043a\u0443\u044e \u0447\u0438\u0441\u0442\u043a\u0443<\/i>, \u0432\u043e\u043e\u0434\u0443\u0448\u0435\u0432\u0438\u0432\u0448\u0438\u0441\u044c <a href=\"https:\/\/www.youtube.com\/watch?v=aaecM4wKdh\">\u0434\u043e\u043a\u043b\u0430\u0434\u043e\u043c<\/a> \u041e\u043b\u0435\u0433\u0430 \u0411\u0430\u0440\u0442\u0443\u043d\u043e\u0432\u0430 \u0438 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u041a\u043e\u0440\u043e\u0442\u043a\u043e\u0432\u0430. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0432 \u0435\u0433\u043e \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b, \u043d\u043e \u0432\u0441\u0451 \u043d\u0443\u0436\u043d\u044b\u0435 SQL-\u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043c\u043e\u0436\u043d\u043e, \u0432\u0438\u0434\u0438\u043c\u043e, \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/github.com\/mfvanek\/pg-index-health-sql\">\u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/a>. <\/p>\n<h3>\u041e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u043e\u043c\u0443<\/h3>\n<p>  <b>\u00ab\u0412\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0432\u0441\u0451\u00bb \u0438\u043b\u0438 #\u0441\u0438\u0434\u0438\u043c\u0434\u043e\u043c\u0430 \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0439<\/b><br \/>  \u041d\u0430 <a href=\"https:\/\/postgrespro.ru\/blog\/pgsql\/5259210\">\u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435<\/a> \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0441\u0435 \u043a\u0443\u0440\u0441\u044b \u043e\u0442\u0434\u0435\u043b\u0430 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f Postgres Professional.<br \/>  \u041d\u043e \u043a\u0443\u0440\u0441\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u043a\u0430\u043a <a href=\"https:\/\/www.youtube.com\/channel\/UCawnwMqZ6JeoSiEhrS6X69A\">\u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442\u044b Youtube<\/a>.<\/p>\n<h3>\u0412\u0435\u0431\u0438\u043d\u0430\u0440\u044b \u0438 \u043c\u0438\u0442\u0430\u043f\u044b<\/h3>\n<p>  <b>Postgres-\u0432\u0442\u043e\u0440\u043d\u0438\u043a\u0438<\/b><br \/>  \u0418\u0445 \u043f\u0440\u043e\u0432\u043e\u0434\u044f\u0442 \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0421\u0430\u043c\u043e\u0445\u0432\u0430\u043b\u043e\u0432 (Postgres.ai) \u0438 \u0418\u043b\u044c\u044f \u041a\u043e\u0441\u043c\u043e\u0434\u0435\u043c\u044c\u044f\u043d\u0441\u043a\u0438\u0439 (DataEgret).<br \/>  <a href=\"https:\/\/www.youtube.com\/watch?v=_q-lJPYmmIA\">#16<\/a>: c \u0443\u0447\u0430\u0441\u0442\u0438\u0435\u043c \u041c\u0430\u043a\u0441\u0438\u043c\u0430 \u0411\u043e\u0433\u0443\u043a\u0430 \u0438 \u0412\u0438\u043a\u0442\u043e\u0440\u0432 \u0415\u0433\u043e\u0440\u043e\u0432\u0430 (\u043e\u0431\u0430 DataEgret). \u041e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u043e\u0441\u044c: \u043a\u0430\u043a \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043a\u0430\u0447\u043a\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 5 \u0440\u0430\u0437.<br \/>  <a href=\"https:\/\/www.youtube.com\/watch?v=Q0eEtwc24qM\">#15<\/a>. \u041e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u043e\u0441\u044c \u0442\u0435\u043c\u044b: <a href=\"https:\/\/www.reddit.com\/r\/PostgreSQL\/comments\/f2qs3x\/postgresql_is_the_linux_of_databases\/\"><i>PostgreSQL is the Linux of databases<\/i><\/a>; \u0435\u0449\u0451 \u0440\u0430\u0437 \u043e GiST; \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0445 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439 \u0432 PostgreSQL 13 \u2014 \u0443 pg_stat_statements \u0438 EXPLAIN; Macro-analysis: Planning stats in pg_stat_statements; Micro-analysis: WAL stats in EXPLAIN; pg_show_plans \u043e\u0442 Cybertec.<br \/>  <a href=\"https:\/\/www.youtube.com\/watch?v=fsVtZxnsZ1Y\">#14<\/a>: \u041e\u0448\u0438\u0431\u043a\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Postgres. \u0413\u043e\u0441\u0442\u044c: \u041f\u0430\u0432\u0435\u043b \u0411\u0438\u0441\u0441\u0435.<br \/>  <a href=\"https:\/\/www.youtube.com\/watch?v=m_CxECk_-Dw\">#13<\/a>: \u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 JSON \u0432 Postgres (+CTE, LATERAL, \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u044b, GiST-\u0438\u043d\u0434\u0435\u043a\u0441).<\/p>\n<p>  <b>2ndQuadrant\u043e\u0432\u0441\u043a\u0438\u0435 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u0432\u0435\u0431\u0438\u043d\u0430\u0440\u044b<\/b><\/p>\n<p>  <b>Date\/Timestamp types in PostgreSQL<\/b><br \/>  22 \u0430\u043f\u0440\u0435\u043b\u044f, \u042d\u043d\u0434\u0440\u044e \u0414\u0430\u043d\u0441\u0442\u044d\u043d (Andrew Dunstan).<\/p>\n<p>  <b>KNN Indexing in PostgreSQL<\/b><br \/>  29 \u0430\u043f\u0440\u0435\u043b\u044f, \u041a\u0438\u0440\u043a \u0420\u043e\u0439\u0431\u0430\u043b (Kirk Roybal).<\/p>\n<p>  \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0435 \u0438\u0445 <a href=\"https:\/\/www.2ndquadrant.com\/en\/webinars\/\">\u0432\u0435\u0431\u0438\u043d\u0430\u0440\u043e\u0432<\/a>.<\/p>\n<h3>\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438<\/h3>\n<p>  <b>PGCon 2020<\/b><br \/>  <a href=\"https:\/\/www.pgcon.org\/2020\/\">\u041f\u0440\u043e\u0439\u0434\u0435\u0442<\/a> 26-29 \u043c\u0430\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u043d\u043b\u0430\u0439\u043d.<\/p>\n<p>  \u0418\u0437 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0445 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440::<\/p>\n<p>  <b>Easy And Correct High Availability Postgres with Kubernetes<\/b><br \/>  <a href=\"http:\/\/Youtube-%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%20https:\/\/www.youtube.com\/user\/postgresopen\/about\">Postgres Open<\/a> \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0432\u0438\u0434\u0435\u043e \u0441 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439 Postgres Open, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 (\u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u043e \u0438, \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u0434\u0435\u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438) \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u0432 \u0421\u0428\u0410. \u0412 <a href=\"https:\/\/www.youtube.com\/watch?v=p0WVyHDWsgA\">\u044d\u0442\u043e\u043c \u0434\u043e\u043a\u043b\u0430\u0434\u0435<\/a> \u0441 Postgres Open 2019 \u0421\u0442\u0438\u0432\u0435\u043d \u041f\u0430\u0443\u0441\u0442\u0438 (Steven Pousty) \u0438\u0437 Crunchy Data \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u043c PostgreSQL \u043e\u0442 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0434\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439.<\/p>\n<p>  <b>PGConf.Russia<\/b><br \/>  \u0418\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u0431\u041e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0435\u043e, \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u043e \u0441\u043b\u0430\u0439\u0434\u0430\u0445, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u0430 <a href=\"https:\/\/pgconf.ru\/2020\">\u0441\u0430\u0439\u0442\u0435 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438<\/a>.<\/p>\n<p>  <b>Highload++<\/b><br \/>  \u0414\u043e\u043a\u043b\u0430\u0434\u044b, \u0432\u0438\u0434\u0438\u043c\u043e, \u0443\u0434\u043e\u0431\u043d\u0435\u0439 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <a href=\"https:\/\/www.youtube.com\/user\/profyclub\">youtube-\u043a\u0430\u043d\u0430\u043b\u0435<\/a> <a href=\"https:\/\/www.highload.ru\/\">\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438<\/a>.<\/p>\n<h3>\u041d\u043e\u0432\u043e\u0441\u0442\u0438 \u044d\u0442\u0438\u043a\u0438<\/h3>\n<p>  <b>The Code of Conduct Committee 2019 Annual Report<\/b><br \/>  17 \u043c\u0430\u0440\u0442\u0430 \u041a\u043e\u043c\u0438\u0442\u0435\u0442 \u043f\u043e \u041a\u043e\u0434\u0435\u043a\u0441\u0443 \u041f\u043e\u0441\u0442\u0433\u0440\u0435\u0441\u0438\u0441\u0442\u0430 <a href=\"https:\/\/www.postgresql.org\/about\/policies\/coc\/reports\/2019\/\">\u043e\u0442\u0447\u0438\u0442\u0430\u043b\u0441\u044f<\/a> \u043e \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435. \u0418\u0437 \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0432 \u043a\u0440\u0443\u0433\u0430\u0445 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0445 \u043f\u043e\u0441\u0442\u0433\u0440\u0435\u0441\u0438\u0441\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0418\u043b\u044c\u044e \u041a\u043e\u0441\u043c\u043e\u0434\u0435\u043c\u044c\u044f\u043d\u0441\u043a\u043e\u0433\u043e. \u0418\u0437 \u043e\u0442\u0447\u0435\u0442\u0430, \u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0441\u043b\u0435\u0434\u0443\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u043a\u0430 \u043d\u0438 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0438\u0441\u0442 \u043d\u0435 \u0431\u044b\u043b \u0437\u0430\u0431\u0430\u043d\u0435\u043d.<\/p>\n<p>  <b>Slave \u2014 \u0432\u0441\u0451<\/b><br \/>  \u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u0430\u0437\u0434\u043d\u0435\u043d\u044b <i>\u0440\u0430\u0431\u044b<\/i> \u043f\u043e \u0432\u0441\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Postgres: <b>Slave<\/b> \u0441\u0442\u0430\u043b <b>Standby<\/b> \u0432 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438. \u0412 \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 <b>master<\/b> \u0441\u0442\u0430\u043b <b>root<\/b>, \u0430 <b>slave<\/b> \u2014 <b>leaf<\/b>.<\/p>\n<hr>\n<p>  <i>\u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u043a\u0430\u043d\u0430\u043b <a href=\"https:\/\/t.me\/postgresso\">postgresso<\/a>!<\/i><\/p>\n<p>  \u0418\u0434\u0435\u0438 \u0438 \u043f\u043e\u0436\u0435\u043b\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0441\u044b\u043b\u0430\u0439\u0442\u0435 \u043d\u0430 \u043f\u043e\u0447\u0442\u0443: news_channel@postgrespro.ru<br \/>  \u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0438: <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/488846\/\">#19<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/472082\/\">#18<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/466065\/\">#17<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/456790\/\">#16<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/445544\/\">#15<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/436352\/\">#14<\/a>, <a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/434760\/\">#13<\/a>, <a href=\"https:\/\/habr.com\/company\/postgrespro\/blog\/428275\/\">#12<\/a>, <a href=\"https:\/\/habr.com\/company\/postgrespro\/blog\/426745\/\">#11 (\u0441\u043f\u0435\u0446)<\/a>, <a href=\"https:\/\/habr.com\/topic\/edit\/422527\/\">#10<\/a>, <a href=\"https:\/\/habr.com\/company\/postgrespro\/blog\/420283\/\">#9<\/a>, <a href=\"https:\/\/habr.com\/company\/postgrespro\/blog\/415675\/\">#8<\/a>, <a href=\"https:\/\/habr.com\/company\/postgrespro\/blog\/413419\/\">#7<\/a>, <a href=\"https:\/\/habr.com\/company\/postgrespro\/blog\/358560\/\">#6<\/a>, <a href=\"https:\/\/habr.com\/company\/postgrespro\/blog\/353736\/\">#5<\/a>, <a href=\"https:\/\/habrahabr.ru\/company\/postgrespro\/blog\/351650\/\">#4<\/a>, <a href=\"https:\/\/habrahabr.ru\/company\/postgrespro\/blog\/349100\/\">#3<\/a>, <a href=\"https:\/\/habrahabr.ru\/company\/postgrespro\/blog\/347858\/\">#2<\/a>, <a href=\"https:\/\/habrahabr.ru\/company\/postgrespro\/blog\/345652\/\">#1<\/a><\/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\/company\/postgrespro\/blog\/496974\/\"> https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/496974\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/496974\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ez\/fy\/aj\/ezfyajccsosfqqp30i6bkzowyog.jpeg\"><br \/>  <i>\u0416\u0438\u0437\u043d\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u0432\u0430\u0441 \u0441 \u0441\u0430\u043c\u044b\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438 \u043d\u043e\u0432\u043e\u0441\u0442\u044f\u043c\u0438 PostgreSQL.<\/i><\/p>\n<h3>\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u044c<\/h3>\n<p>  <b>Feature Freeze<\/b><br \/>  \u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c 13-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 PostgreSQL \u0437\u0430\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0433\u043e\u0432. \u0421\u043f\u0438\u0441\u043e\u043a \u043d\u043e\u0432\u043e\u0433\u043e, \u0432\u043e\u043f\u0440\u0435\u043a\u0438 \u043c\u043d\u043e\u0433\u0438\u043c \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f\u043c, \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u0439. \u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u043d\u0430\u0448\u0443 \u0441\u0442\u0430\u0442\u044c\u044e<br \/>  <b><a href=\"https:\/\/habr.com\/ru\/company\/postgrespro\/blog\/493106\/\">\u041c\u043d\u043e\u0433\u043e \u043b\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0432 \u00ab\u0427\u0451\u0440\u0442\u043e\u0432\u043e\u0439 \u0434\u044e\u0436\u0438\u043d\u0435\u00bb<\/a><\/b>, \u0433\u0434\u0435 \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. \u041d\u043e \u0438 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 <i>\u0421\u0442\u0430\u0442\u044c\u0438<\/i> Postgresso \u0435\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0438, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0444\u0438\u0447\u0430\u043c.<\/p>\n<h3>\u0420\u0435\u043b\u0438\u0437\u044b<\/h3>\n<p>  <b>Postgres Pro Enterprise 12.2.1<\/b><br \/>  \u0412 \u044d\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u044b \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432\u0430 PostgreSQL 12 \u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432\u0435\u0442\u043a\u0438 Enterprise.<br \/>  \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/multimaster\">multimaster<\/a>: \u043a\u0430\u043a \u0438 \u0432 11.x, \u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Enterprise, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 2+1, \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u0438\u043d \u0438\u0437 \u0443\u0437\u043b\u043e\u0432 \u0440\u0435\u0444\u0435\u0440\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/multimaster#SETTING-UP-A-REFEREE\">\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>. \u0410 \u0435\u0449\u0451 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0443\u0437\u043b\u0430\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>mtm.check_query()<\/code>.<br \/>  \u0412 <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/cfs\">CFS<\/a> \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0441\u0436\u0430\u0442\u0438\u044f. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f zstd (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e), zlib \u0438 pglz, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b.<br \/>  \u0415\u0449\u0451 \u043e\u0434\u043d\u0430 \u0443\u0434\u0430\u0440\u043d\u0430\u044f \u0444\u0438\u0447\u0430 Enterprise \u2014 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c PTRACK, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/app-pgprobackup\">pg_pobackup<\/a>, \u2014 \u0431\u044b\u043b \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u043e\u0432\u044b\u0439 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 API. \u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438, \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441 PTRACK \u0432 pg_probackup, \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432 Postgres Pro Enterprise 12.x, \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c pg_probackup \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 2.2.6 \u0438\u043b\u0438 \u0432\u044b\u0448\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 PTRACK \u0437\u0430\u043d\u043e\u0432\u043e.<br \/>  \u0412\u0430\u0436\u043d\u044b\u0439 \u043f\u0430\u0442\u0447 <a href=\"https:\/\/commitfest.postgresql.org\/27\/2202\/\">\u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/a> \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 B-tree (\u0430\u0432\u0442\u043e\u0440 \u0410\u043d\u0430\u0441\u0442\u0430\u0441\u0438\u044f \u041b\u0443\u0431\u0435\u043d\u043d\u0438\u043a\u043e\u0432\u0430, Postgres Professional) \u0432 PostgreSQL 13, \u043d\u043e \u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/btree-implementation#BTREE-DEDUPLICATION\">\u0443\u0436\u0435 \u0435\u0441\u0442\u044c<\/a> \u0432 Enterprise 12.2.1. \u041f\u0440\u0438\u0447\u0435\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <code>deduplicate_items<\/code> \u043a\u043e\u043c\u0430\u043d\u0434\u044b CREATE INDEX. \u041e\u0431 \u044d\u0442\u043e\u043c \u0435\u0441\u0442\u044c <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/12\/release-proee-12-2-1.html#PGPRO-MIGRATION-TO-12\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-302161","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/302161","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=302161"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/302161\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=302161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=302161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=302161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}