{"id":478020,"date":"2026-04-30T04:52:16","date_gmt":"2026-04-30T04:52:16","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=478020"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=478020","title":{"rendered":"\u0420\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 PostgreSQL \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e WAL-G"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f pgBackRest <a href=\"https:\/\/pgbackrest.org\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0430<\/a> \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f, \u043f\u0440\u043e\u0435\u043a\u0442 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d, \u0441\u0442\u0430\u043b\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0439\u0442\u0438 \u0437\u0430\u043c\u0435\u043d\u0443 \u0434\u043b\u044f pgBackRest. \u0413\u043b\u0430\u0432\u043d\u044b\u043c\u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430\u043c\u0438 <a href=\"https:\/\/tproger.ru\/news\/pgbackrest-perestali-podderzhivat-glavnyj-open-source-bekap-po\" rel=\"noopener noreferrer nofollow\">\u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442<\/a> WAL-G \u0438 Barman. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c pg_basebackup+pg_receivewal. \u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e WAL-G \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 S3 \u0438 WAL-G \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435, \u043d\u0435\u043f\u043b\u043e\u0445\u0438\u0435 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f. \u041a\u0440\u043e\u043c\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 S3, WAL-G \u043c\u043e\u0436\u0435\u0442 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0438\u0437 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 <a href=\"https:\/\/wiki.astralinux.ru\/tandocs\/ispol-zovanie-wal-g-dlya-1-s3-hranilishcha-yandex-cloud-2-nfs-3-sovmestno-s-patroni-311350069.html\" rel=\"noopener noreferrer nofollow\">Patroni<\/a>. \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0434\u0438\u0441\u043a\u0435, \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, NFS. \u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c\u0430\u044f.<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043c\u0430\u043d\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c PostgreSQL \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 WAL-G.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b32\/5d6\/f97\/b325d6f97d1286c419afc8bf115500b4.png\" width=\"1126\" height=\"636\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b32\/5d6\/f97\/b325d6f97d1286c419afc8bf115500b4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b32\/5d6\/f97\/b325d6f97d1286c419afc8bf115500b4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>WAL-G \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u0437 <a href=\"https:\/\/github.com\/wal-g\/wal-g\" rel=\"noopener noreferrer nofollow\">\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432<\/a> \u0438\u043b\u0438 \u0438\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 (<strong>dpkg -i wal-g-*.deb)<\/strong>. \u0418\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b wal-g, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d \u0432 \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e. \u0415\u0441\u043b\u0438 \u044d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 $PATH, \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0443\u0442\u044c \u043a \u0443\u0442\u0438\u043b\u0438\u0442\u0435, \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f $PATH:<\/p>\n<pre><code class=\"bash\">root@host:~$ ln -s \/opt\/tantor\/usr\/bin\/wal-g \/usr\/local\/bin\/wal-g<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435. \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <strong>&#8212;config<\/strong>. \u041c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 WAL-G \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e:<\/p>\n<pre><code class=\"bash\">root@host:~$ wal-g | grep config      --config string   config file (default is $HOME\/.walg.json)      --turbo           Ignore all kinds of throttling defined in config<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 $HOME\/.walg.json.<\/p>\n<p>\u0414\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u0430 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"bash\">root@host:~$ su - postgrespostgres@host:~$ cat &gt; $HOME\/.walg.json &lt;&lt; EOF{    \"WALG_FILE_PREFIX\": \"\/var\/lib\/postgresql\/backup\",    \"WALG_COMPRESSION_METHOD\": \"brotli\",    \"WALG_DELTA_MAX_STEPS\": \"5\",    \"PGHOST\": \"\/var\/run\/postgresql\",    \"PGDATA\": \"\/var\/lib\/postgresql\/tantor-se-server-18\/data\"}EOF<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0420\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043b\u044e\u0447 <strong>WALG_FILE_PREFIX.<\/strong><\/p>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c brotli \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 <a href=\"https:\/\/habr.com\/ru\/articles\/486188\/\" rel=\"noopener noreferrer nofollow\">\u043b\u0443\u0447\u0448\u0435\u0435<\/a> \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0436\u0438\u043c\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b (\u0431\u044d\u043a\u0430\u043f\u044b \u0438 WAL), \u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e brotli \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c none., WAL \u0444\u0430\u0439\u043b\u044b \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 16\u041c\u0431, \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441 WAL-\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e.<\/p>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435 \u0441 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439, \u0430 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 S3 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>$HOME\/.walg.json<\/strong>, \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0442\u0435\u043c\u0438 \u0436\u0435 \u0441\u0430\u043c\u044b\u043c\u0438.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e wal-g \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435, \u043c\u043e\u0436\u043d\u043e \u0434\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443: <\/p>\n<pre><code class=\"bash\">postgres@host:~$ wal-g backup-listINFO: 2026\/04\/28 10:33:54.281318 List backups from storages: [default]INFO: 2026\/04\/28 10:33:54.281702 No backups found<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0411\u044d\u043a\u0430\u043f\u043e\u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0438\u0445 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u0435\u043b\u0430\u043b\u0438.<\/p>\n<h2>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 PostgreSQL \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f WAL<\/h2>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441 \u0431\u044d\u043a\u0430\u043f\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c WAL-\u0444\u0430\u0439\u043b\u044b. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 archive_command. \u0414\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f WAL \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 WAL-G \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/p>\n<pre><code class=\"bash\">postgres=# alter system set archive_command = 'wal-g wal-push \"%p\" &gt;&gt; $PGDATA\/log\/archive_command.log 2&gt;&amp;1';alter system set restore_command = 'wal-g wal-fetch \"%f\" \"%p\" &gt;&gt; $PGDATA\/log\/restore_command.log 2&gt;&amp;1';alter system set archive_mode=on;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <strong>archive_command <\/strong>\u0437\u0430\u0434\u0430\u0451\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 WAL-\u0441\u0435\u0433\u043c\u0435\u043d\u0442. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u044c\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e (\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 &#171;0&#187;), \u0438\u043d\u0430\u0447\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0438 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0443\u0434\u0430\u043b\u044f\u0442\u044c\u0441\u044f. <strong>%p<\/strong> &#8212; \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u043f\u0443\u0442\u0451\u043c \u043a WAL-\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c, \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d. \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0432 stdout \u0438 stderr \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b.<\/p>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <strong>restore_command<\/strong> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c startup, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e \u0444\u0430\u0439\u043b\u0443 backup_label \u0438\u043b\u0438 pg_control, \u043a\u0430\u043a\u043e\u0439 WAL-\u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f (\u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043a\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c). \u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c WAL-\u0444\u0430\u0439\u043b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 $PGDATA\/pg_wal.<\/p>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <strong>archive_mode <\/strong>\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <strong>archive_command.<\/strong><\/p>\n<h2>Push \u0438\u043b\u0438 Pull<\/h2>\n<p>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 <strong>archive_mode<\/strong> (&#171;push&#187;) &#8212; \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c wal-g \u043a\u0430\u043a \u0441\u043b\u0443\u0436\u0431\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0430 (&#171;pull&#187;) \u0444\u0430\u0439\u043b\u044b \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432:<\/p>\n<pre><code class=\"bash\">postgres@host:~$ wal-g wal-receiveINFO: 2026\/04\/28 21:44:41.565679 FILE PATH: 00000002.history.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f WAL \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <strong>restore_command, <\/strong>\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <strong>archive_mode<\/strong> \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (off). \u0422\u0430\u043a \u043a\u0430\u043a WAL-G \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 WAL-\u0444\u0430\u0439\u043b\u044b, \u0442\u043e \u043f\u0440\u043e\u0449\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <strong>archive_command<\/strong>. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0441 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0441\u0442\u0438\u0440\u0430\u0442\u044c \u0438\u043b\u0438 \u043c\u0435\u043d\u044f\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043a\u0443\u0434\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b, \u0438\u043d\u0430\u0447\u0435 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a, \u0437\u0430\u0432\u043b\u0430\u0434\u0435\u0432\u0448\u0438\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u0445\u043e\u0441\u0442\u043e\u043c, \u0441\u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0435\u0440\u0435\u0442\u044c \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u0442\u044c \u0431\u044d\u043a\u0430\u043f\u044b.<\/p>\n<p>WAL-G \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u0442\u044c \u0436\u0443\u0440\u043d\u0430\u043b\u044b, \u043d\u043e \u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 PostgreSQL (PGDATA) \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 &#171;pull&#187;, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b (\u0432 \u0442\u0435\u043e\u0440\u0438\u0438, \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code><strong>wal-g backup-push --pghost<\/strong> 127.0.0.1<\/code>). \u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0438 \u0434\u0435\u043b\u044c\u0442\u0430-\u0431\u044d\u043a\u0430\u043f\u044b, \u043e \u0447\u0451\u043c \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0441\u043e\u043e\u0431\u0449\u0438\u0442 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u044d\u043a\u0430\u043f\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 &#171;pull&#187;:<\/p>\n<p><code>INFO: Features like delta backup and partial restore are disabled, there might be a performance impact.<\/code><\/p>\n<p>\u042d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u044d\u043a\u0430\u043f\u043e\u0432 \u0432 \u0440\u0435\u0436\u0438\u0435 &#171;pull&#187;, \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u0435 WAL \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0442\u0430\u043a\u0438\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <strong>wal-receive<\/strong>\u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0444\u0430\u0439\u043b WAL \u0438 \u043f\u0440\u0438 \u0438\u0441\u0447\u0435\u0437\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 PGDATA\/pg_wal \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 WAL. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u0442\u0435\u0440\u044c (<strong>zero data loss, RPO=0<\/strong>) \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c: \u0443\u0442\u0438\u043b\u0438\u0442\u0430 pg_receivewal, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 walreveiver (\u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0435), Polar DataMax (\u0432 TantorXData).<\/p>\n<h2>WAL-G \u0438 pg_receivewal<\/h2>\n<p>WAL-G \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0441 pg_receivewal: \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u044d\u043a\u0430\u043f\u044b \u0432 \u0432\u044b\u0441\u043e\u043a\u043e\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0441\u043e \u0441\u0436\u0430\u0442\u0438\u0435\u043c WAL-G, \u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u044b \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 pg_receivewal. \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 pg_receivewal, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 <strong>restore_command<\/strong> \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043a\u0443\u0434\u0430 pg_receivewal \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u0436\u0443\u0440\u043d\u0430\u043b\u044b \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c <strong>archive_mode<\/strong>.<\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0444\u0430\u0439\u043b *.partial \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code><strong>restore_command = 'cp $HOME\/backup\/%f %p || cp $HOME\/backup\/%f.partial %p'<\/strong><\/code>.\u0424\u0430\u0439\u043b\u044b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c \u00a0.partial \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u0444\u0430\u0439\u043b .partial \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0441\u044f, \u043d\u0443\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435. \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u0439 \u0441\u043e\u0444\u0442\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0441\u043e\u0444\u0442\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 WAL-G, \u0435\u0441\u0442\u044c <a href=\"https:\/\/github.com\/wal-g\/wal-g\/issues\/2227\" rel=\"noopener noreferrer nofollow\">\u043c\u0435\u043b\u043a\u0438\u0439 \u0431\u0430\u0433<\/a> \u043f\u0440\u043e \u0442\u043e, \u0447\u0442\u043e \u043a \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0444\u0430\u0439\u043b\u0430 &#171;tar&#187; \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0442\u043e\u0447\u043a\u0430.<\/p>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u044d\u043a\u0430\u043f\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 WAL-G<\/h2>\n<p>\u0427\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438, \u043d\u0443\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c (\u0430 \u043d\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c) \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440. \u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043c\u0441\u044f \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 WAL-\u0441\u0435\u0433\u043c\u0435\u043d\u0442, \u0442\u0430\u043a \u043a\u0430\u043a archive_command \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 WAL-\u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<\/p>\n<pre><code class=\"bash\">postgres@host:~$ psql -c \"select pg_switch_wal();\" pg_switch_wal --------------- 0\/30002BC(1 row)postgres@host:~$ cat $PGDATA\/log\/archive_command.log INFO: 2026\/04\/28 11:31:34.145668 Files will be uploaded to storage: defaultINFO: 2026\/04\/28 11:31:34.192862 FILE PATH: 000000010000000000000003.br<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0444\u0430\u0439\u043b archive_command.log, \u043f\u0443\u0442\u044c \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u044b\u043b \u0443\u043a\u0430\u0437\u0430\u043d \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 <strong>archive_command<\/strong>.<\/p>\n<p>\u0417\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. WAL-G \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u0441 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0430 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438. \u041f\u0435\u0440\u0432\u044b\u0439 \u0431\u044d\u043a\u0430\u043f \u0432\u0441\u0435\u0433\u0434\u0430 <strong>\u043f\u043e\u043b\u043d\u044b\u0439<\/strong>.<\/p>\n<p>\u0420\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430:<\/p>\n<pre><code class=\"bash\">postgres@host:~$ wal-g backup-push $PGDATAINFO: 2026\/04\/28 11:40:37.903727 Backup will be pushed to storage: defaultINFO: 2026\/04\/28 11:40:37.912409 Couldn't find previous backup. Doing full backup....INFO: 2026\/04\/28 11:40:38.357616 Wrote backup with name base_000000010000000000000005 to storage default<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0431\u044d\u043a\u0430\u043f \u0435\u0441\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435:<\/p>\n<pre><code class=\"bash\">postgres@host:~$ wal-g backup-listINFO: 2026\/04\/28 11:47:02.111831 List backups from storages: [default]backup_name                   modified                  wal_file_name            storage_namebase_000000010000000000000005 2026-04-28T11:40:38+03:00 000000010000000000000005 default<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u043e\u0432 \/var\/lib\/postgresql\/backup \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0431\u044d\u043a\u0430\u043f\u043e\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code>postgres@host:~$ ls -al $HOME\/backup\/basebackups_005\/*\/tar_partitionstotal 2760-rw-r--r-- 1 postgres postgres     269 Apr 28 11:40 backup_label.tar.br-rw-r--r-- 1 postgres postgres 2806055 Apr 28 11:40 part_001.tar.br-rw-r--r-- 1 postgres postgres     300 Apr 28 11:40 pg_control.tar.br<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u044f\u0442\u044c (<strong>WALG_DELTA_MAX_STEPS)<\/strong> \u0431\u044d\u043a\u0430\u043f\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 DELTA:<\/p>\n<pre><code class=\"bash\">postgres@host:~$ wal-g backup-push $PGDATAINFO: 2026\/04\/28 11:59:41.614186 Backup will be pushed to storage: defaultINFO: 2026\/04\/28 11:59:41.628244 LATEST backup is: 'base_000000010000000000000005'INFO: 2026\/04\/28 11:59:41.629001 Delta backup from base_000000010000000000000005 with LSN 0\/5000028....INFO: 2026\/04\/28 11:59:41.833147 Wrote backup with name base_000000010000000000000007_D_000000010000000000000005 to storage default<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u043b\u0435\u0437\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043c\u0443\u0441\u043e\u0440\u0430 \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 &#8212; \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0435 \u0431\u044d\u043a\u0430\u043f\u044b, \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b:<\/p>\n<pre><code class=\"bash\">postgres@host:~$ wal-g delete garbage --confirmINFO: 2026\/04\/28 20:49:20.660407 Backup to delete will be searched in storages: [default]INFO: 2026\/04\/28 20:49:20.660540 retrieving permanent objectsINFO: 2026\/04\/28 20:49:20.661749 Running in default mode. Will remove outdated WAL files and leftover backup files.INFO: 2026\/04\/28 20:49:20.662257 Start deleteINFO: 2026\/04\/28 20:49:20.663400 Objects in folder:INFO: 2026\/04\/28 20:49:20.663440        will be deleted: wal_005\/00000002000000000000002A.br, from storage: default<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h2>\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 \u0431\u044d\u043a\u0430\u043f\u0430, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e WAL-G<\/h2>\n<p>\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0438 \u0443\u0434\u0430\u043b\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e PGDATA:<\/p>\n<pre><code class=\"bash\">postgres@host:~$ pg_ctl stopwaiting for server to shut down.... doneserver stoppedpostgres@host:~$ rm -rf $PGDATA\/*<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0441\u0438\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u043b\u043d\u0443\u044e \u043f\u043e\u0442\u0435\u0440\u044e \u043c\u0430\u0441\u0442\u0435\u0440\u0430 (&#171;disaster&#187;). \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0443\u0434\u0430\u043b\u044f\u0435\u0442, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 WAL-\u0441\u0435\u0433\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0431\u044b\u043b \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0432 \u0430\u0440\u0445\u0438\u0432. \u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0435, \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b. \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0438\u0434\u0451\u0442 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u043e\u0439.<\/p>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438\u0437 \u0431\u044d\u043a\u0430\u043f\u0430:<\/p>\n<pre><code class=\"bash\">postgres@host:~$ wal-g backup-fetch $PGDATA LATESTINFO: 2026\/04\/28 12:56:37.402035 Selecting the latest backup...INFO: 2026\/04\/28 12:56:37.402219 Backup to fetch will be searched in storages: [default]INFO: 2026\/04\/28 12:56:37.402360 LATEST backup is: 'base_000000010000000000000007_D_000000010000000000000005'INFO: 2026\/04\/28 12:56:37.406190 Delta from base_000000010000000000000005 at LSN 0\/5000028 ...INFO: 2026\/04\/28 12:56:38.500783 base_000000010000000000000005 fetched. Upgrading from LSN 0\/5000028 to LSN 0\/7000028 ...Backup extraction complete.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f <strong>PGDATA<\/strong> \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432:<\/p>\n<pre><code class=\"bash\">postgres@host:~$ ls $PGDATA\/pg_wal<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043f\u0443\u0441\u0442\u0430, \u043a\u0430\u043a \u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 PGDATA\/log, \u0447\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e &#8212; \u043b\u043e\u0433\u0438 \u043d\u0435 \u0431\u044d\u043a\u0430\u043f\u044f\u0442\u0441\u044f, \u0444\u0430\u0439\u043b\u044b WAL \u0431\u044d\u043a\u0430\u043f\u044f\u0442\u0441\u044f \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0444\u0430\u0439\u043b backup_label:<\/p>\n<pre><code class=\"bash\">postgres@host:~$ cat $PGDATA\/backup_label START WAL LOCATION: 0\/7000028 (file 000000010000000000000007)CHECKPOINT LOCATION: 0\/7000098BACKUP METHOD: streamedBACKUP FROM: primarySTART TIME: 2026-04-28 11:59:41 MSKLABEL: 2026-04-28 11:59:41.640728 +0300 MSK m=+0.075156967START TIMELINE: 1<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440:<\/p>\n<pre><code class=\"bash\">postgres@host:~$ pg_ctl startwaiting for server to start....pg_ctl: could not start server<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u00a0\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043d\u0435 \u0441\u043c\u043e\u0433 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f, \u043d\u0435\u0442 \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432 \u0434\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 pg_wal \u043d\u0435\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u0430. \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043d\u0435 \u043f\u043e\u0440\u0442\u0438\u0442 \u0444\u0430\u0439\u043b\u044b.<\/p>\n<p>\u041d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0436\u0435\u0442, \u0447\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 \u0431\u044d\u043a\u0430\u043f\u0430:<\/p>\n<pre><code class=\"bash\">postgres@host:~$ touch $PGDATA\/recovery.signal8) \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440: postgres@host:~$ pg_ctl start doneserver started<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0446\u0435\u0441\u0441 startup \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <strong>restore_command<\/strong> \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 WAL-\u0444\u0430\u0439\u043b\u044b, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0431\u044b\u043b \u00a0\u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 (recovery_target_*), \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0434\u043e \u043a\u0430\u043a\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430.<\/p>\n<p>\u00a0\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0439 \u0436\u0443\u0440\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0442\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d. \u0411\u044b\u043b\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u043d\u0435\u043f\u043e\u043b\u043d\u043e\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435. \u0416\u0443\u0440\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 \u0430\u0440\u0445\u0438\u0432, \u043d\u0435 \u0431\u044b\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u044b, \u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0432 \u043d\u0438\u0445 \u0431\u044b\u0442\u044c, \u0431\u044b\u043b\u0438 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u044b.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u044b pgBackRest, \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u0442\u0430\u043b \u0432\u044b\u0431\u043e\u0440 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u0430\u043c, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0442\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, WAL-G &#8212; \u043d\u0435\u043f\u043b\u043e\u0445\u043e\u0439 \u0432\u044b\u0431\u043e\u0440. \u0412\u00a0\u0441\u0442\u0430\u0442\u044c\u0435 \u0434\u0430\u043d\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u043a\u0430\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c WAL-G \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c PostgreSQL.<\/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\/1029864\/\">https:\/\/habr.com\/ru\/articles\/1029864\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f pgBackRest \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f, \u043f\u0440\u043e\u0435\u043a\u0442 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d, \u0441\u0442\u0430\u043b\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0439\u0442\u0438 \u0437\u0430\u043c\u0435\u043d\u0443 \u0434\u043b\u044f pgBackRest. \u0413\u043b\u0430\u0432\u043d\u044b\u043c\u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430\u043c\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 WAL-G \u0438 Barman. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c pg_basebackup+pg_receivewal. \u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e WAL-G \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 S3 \u0438 WAL-G \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435, \u043d\u0435\u043f\u043b\u043e\u0445\u0438\u0435 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f. \u041a\u0440\u043e\u043c\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 S3, WAL-G \u043c\u043e\u0436\u0435\u0442 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0438\u0437 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 Patroni. \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0434\u0438\u0441\u043a\u0435, \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, NFS. \u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c\u0430\u044f.\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043c\u0430\u043d\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c PostgreSQL \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 WAL-G.WAL-G \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438\u043b\u0438 \u0438\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 (dpkg -i wal-g-*.deb). \u0418\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b wal-g, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d \u0432 \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e. \u0415\u0441\u043b\u0438 \u044d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 $PATH, \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0443\u0442\u044c \u043a \u0443\u0442\u0438\u043b\u0438\u0442\u0435, \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f $PATH:root@host:~$ ln -s \/opt\/tantor\/usr\/bin\/wal-g \/usr\/local\/bin\/wal-g\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435. \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c &#8212;config. \u041c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 WAL-G \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e:root@host:~$ wal-g | grep config      &#8212;config string   config file (default is $HOME\/.walg.json)      &#8212;turbo           Ignore all kinds of throttling defined in config\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 $HOME\/.walg.json.\u0414\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u0430 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b:root@host:~$ su &#8212; postgrespostgres@host:~$ cat &gt; $HOME\/.walg.json &lt;&lt; EOF{    &#171;WALG_FILE_PREFIX&#187;: &#171;\/var\/lib\/postgresql\/backup&#187;,    &#171;WALG_COMPRESSION_METHOD&#187;: &#171;brotli&#187;,    &#171;WALG_DELTA_MAX_STEPS&#187;: &#171;5&#187;,    &#171;PGHOST&#187;: &#171;\/var\/run\/postgresql&#187;,    &#171;PGDATA&#187;: &#171;\/var\/lib\/postgresql\/tantor-se-server-18\/data&#187;}EOF\u0420\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043b\u044e\u0447 WALG_FILE_PREFIX.\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c brotli \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0435\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0436\u0438\u043c\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b (\u0431\u044d\u043a\u0430\u043f\u044b \u0438 WAL), \u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e brotli \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c none., WAL \u0444\u0430\u0439\u043b\u044b \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 16\u041c\u0431, \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441 WAL-\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e.\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435 \u0441 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439, \u0430 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 S3 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 \u0444\u0430\u0439\u043b\u0435 $HOME\/.walg.json, \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0442\u0435\u043c\u0438 \u0436\u0435 \u0441\u0430\u043c\u044b\u043c\u0438.\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e wal-g \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435, \u043c\u043e\u0436\u043d\u043e \u0434\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443: postgres@host:~$ wal-g backup-listINFO: 2026\/04\/28 10:33:54.281318 List backups from storages: [default]INFO: 2026\/04\/28 10:33:54.281702 No backups found\u0411\u044d\u043a\u0430\u043f\u043e\u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0438\u0445 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u0435\u043b\u0430\u043b\u0438.\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 PostgreSQL \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f WAL\u0427\u0442\u043e\u0431\u044b \u0441 \u0431\u044d\u043a\u0430\u043f\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c WAL-\u0444\u0430\u0439\u043b\u044b. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 archive_command. \u0414\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f WAL \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 WAL-G \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:postgres=# alter system set archive_command = &#8216;wal-g wal-push &#171;%p&#187; &gt;&gt; $PGDATA\/log\/archive_command.log 2&gt;&amp;1&#8217;;alter system set restore_command = &#8216;wal-g wal-fetch &#171;%f&#187; &#171;%p&#187; &gt;&gt; $PGDATA\/log\/restore_command.log 2&gt;&amp;1&#8217;;alter system set archive_mode=on;\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 archive_command \u0437\u0430\u0434\u0430\u0451\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 WAL-\u0441\u0435\u0433\u043c\u0435\u043d\u0442. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u044c\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e (\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 &#171;0&#187;), \u0438\u043d\u0430\u0447\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0438 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0443\u0434\u0430\u043b\u044f\u0442\u044c\u0441\u044f. %p &#8212; \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u043f\u0443\u0442\u0451\u043c \u043a WAL-\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c, \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d. \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0432 stdout \u0438 stderr \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b.\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 restore_command \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c startup, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e \u0444\u0430\u0439\u043b\u0443 backup_label \u0438\u043b\u0438 pg_control, \u043a\u0430\u043a\u043e\u0439 WAL-\u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f (\u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043a\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c). \u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c WAL-\u0444\u0430\u0439\u043b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 $PGDATA\/pg_wal.\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 archive_mode \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 archive_command.Push \u0438\u043b\u0438 Pull\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 archive_mode (&#171;push&#187;) &#8212; \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c wal-g \u043a\u0430\u043a \u0441\u043b\u0443\u0436\u0431\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0430 (&#171;pull&#187;) \u0444\u0430\u0439\u043b\u044b \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432:postgres@host:~$ wal-g wal-receiveINFO: 2026\/04\/28 21:44:41.565679 FILE PATH: 00000002.history.\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f WAL \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 restore_command, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 archive_mode \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (off). \u0422\u0430\u043a \u043a\u0430\u043a WAL-G \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 WAL-\u0444\u0430\u0439\u043b\u044b, \u0442\u043e \u043f\u0440\u043e\u0449\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c archive_command. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0441 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0441\u0442\u0438\u0440\u0430\u0442\u044c \u0438\u043b\u0438 \u043c\u0435\u043d\u044f\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043a\u0443\u0434\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b, \u0438\u043d\u0430\u0447\u0435 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a, \u0437\u0430\u0432\u043b\u0430\u0434\u0435\u0432\u0448\u0438\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u0445\u043e\u0441\u0442\u043e\u043c, \u0441\u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0435\u0440\u0435\u0442\u044c \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u0442\u044c \u0431\u044d\u043a\u0430\u043f\u044b.WAL-G \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u0442\u044c \u0436\u0443\u0440\u043d\u0430\u043b\u044b, \u043d\u043e \u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 PostgreSQL (PGDATA) \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 &#171;pull&#187;, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b (\u0432 \u0442\u0435\u043e\u0440\u0438\u0438, \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 wal-g backup-push &#8212;pghost 127.0.0.1). \u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0438 \u0434\u0435\u043b\u044c\u0442\u0430-\u0431\u044d\u043a\u0430\u043f\u044b, \u043e \u0447\u0451\u043c \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0441\u043e\u043e\u0431\u0449\u0438\u0442 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u044d\u043a\u0430\u043f\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 &#171;pull&#187;:INFO: Features like delta backup and partial restore are disabled, there might be a performance impact.\u042d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u044d\u043a\u0430\u043f\u043e\u0432 \u0432 \u0440\u0435\u0436\u0438\u0435 &#171;pull&#187;, \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u0435 WAL \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0442\u0430\u043a\u0438\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 wal-receive\u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0444\u0430\u0439\u043b WAL \u0438 \u043f\u0440\u0438 \u0438\u0441\u0447\u0435\u0437\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 PGDATA\/pg_wal \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 WAL. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u0442\u0435\u0440\u044c (zero data loss, RPO=0) \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c: \u0443\u0442\u0438\u043b\u0438\u0442\u0430 pg_receivewal, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 walreveiver (\u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0435), Polar DataMax (\u0432 TantorXData).WAL-G \u0438 pg_receivewalWAL-G \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0441 pg_receivewal: \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u044d\u043a\u0430\u043f\u044b \u0432 \u0432\u044b\u0441\u043e\u043a\u043e\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0441\u043e \u0441\u0436\u0430\u0442\u0438\u0435\u043c WAL-G, \u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u044b \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 pg_receivewal. \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 pg_receivewal, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 restore_command \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043a\u0443\u0434\u0430 pg_receivewal \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u0436\u0443\u0440\u043d\u0430\u043b\u044b \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c archive_mode.\u0421\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0444\u0430\u0439\u043b *.partial \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c restore_command = &#8216;cp $HOME\/backup\/%f %p || cp $HOME\/backup\/%f.partial %p&#8217;.\u0424\u0430\u0439\u043b\u044b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c \u00a0.partial \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u0444\u0430\u0439\u043b .partial \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0441\u044f, \u043d\u0443\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435. \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u0439 \u0441\u043e\u0444\u0442\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0441\u043e\u0444\u0442\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 WAL-G, \u0435\u0441\u0442\u044c \u043c\u0435\u043b\u043a\u0438\u0439 \u0431\u0430\u0433 \u043f\u0440\u043e \u0442\u043e, \u0447\u0442\u043e \u043a \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0444\u0430\u0439\u043b\u0430 &#171;tar&#187; \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0442\u043e\u0447\u043a\u0430.\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u044d\u043a\u0430\u043f\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 WAL-G\u0427\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438, \u043d\u0443\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c (\u0430 \u043d\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c) \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440. \u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043c\u0441\u044f \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 WAL-\u0441\u0435\u0433\u043c\u0435\u043d\u0442, \u0442\u0430\u043a \u043a\u0430\u043a archive_command \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 WAL-\u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:postgres@host:~$ psql -c &#171;select pg_switch_wal();&#187; pg_switch_wal &#8212;&#8212;&#8212;&#8212;&#8212; 0\/30002BC(1 row)postgres@host:~$ cat $PGDATA\/log\/archive_command.log INFO: 2026\/04\/28 11:31:34.145668 Files will be uploaded to storage: defaultINFO: 2026\/04\/28 11:31:34.192862 FILE PATH: 000000010000000000000003.br\u041f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0444\u0430\u0439\u043b archive_command.log, \u043f\u0443\u0442\u044c \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u044b\u043b \u0443\u043a\u0430\u0437\u0430\u043d \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 archive_command.\u0417\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. WAL-G \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u0441 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0430 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438. \u041f\u0435\u0440\u0432\u044b\u0439 \u0431\u044d\u043a\u0430\u043f \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043b\u043d\u044b\u0439.\u0420\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430:postgres@host:~$ wal-g backup-push $PGDATAINFO: 2026\/04\/28 11:40:37.903727 Backup will be pushed to storage: defaultINFO: 2026\/04\/28 11:40:37.912409 Couldn&#8217;t find previous backup. Doing full backup&#8230;.INFO: 2026\/04\/28 11:40:38.357616 Wrote backup with name base_000000010000000000000005 to storage default\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0431\u044d\u043a\u0430\u043f \u0435\u0441\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435:postgres@host:~$ wal-g backup-listINFO: 2026\/04\/28 11:47:02.111831 List backups from storages: [default]backup_name                   modified                  wal_file_name            storage_namebase_000000010000000000000005 2026-04-28T11:40:38+03:00 000000010000000000000005 default\u0412 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u043e\u0432 \/var\/lib\/postgresql\/backup \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0431\u044d\u043a\u0430\u043f\u043e\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445:postgres@host:~$ ls -al $HOME\/backup\/basebackups_005\/*\/tar_partitionstotal 2760-rw-r&#8212;r&#8212; 1 postgres postgres     269 Apr 28 11:40 backup_label.tar.br-rw-r&#8212;r&#8212; 1 postgres postgres 2806055 Apr 28 11:40 part_001.tar.br-rw-r&#8212;r&#8212; 1 postgres postgres     300 Apr 28 11:40 pg_control.tar.br\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u044f\u0442\u044c (WALG_DELTA_MAX_STEPS) \u0431\u044d\u043a\u0430\u043f\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 DELTA:postgres@host:~$ wal-g backup-push $PGDATAINFO: 2026\/04\/28 11:59:41.614186 Backup will be pushed to storage: defaultINFO: 2026\/04\/28 11:59:41.628244 LATEST backup is: &#8216;base_000000010000000000000005&#8217;INFO: 2026\/04\/28 11:59:41.629001 Delta backup from base_000000010000000000000005 with LSN 0\/5000028&#8230;.INFO: 2026\/04\/28 11:59:41.833147 Wrote backup with name base_000000010000000000000007_D_000000010000000000000005 to storage default\u041f\u043e\u043b\u0435\u0437\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043c\u0443\u0441\u043e\u0440\u0430 \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 &#8212; \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0435 \u0431\u044d\u043a\u0430\u043f\u044b, \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b:postgres@host:~$ wal-g delete garbage &#8212;confirmINFO: 2026\/04\/28 20:49:20.660407 Backup to delete will be searched in storages: [default]INFO: 2026\/04\/28 20:49:20.660540 retrieving permanent objectsINFO: 2026\/04\/28 20:49:20.661749 Running in default mode. Will remove outdated WAL files and leftover backup files.INFO: 2026\/04\/28 20:49:20.662257 Start deleteINFO: 2026\/04\/28 20:49:20.663400 Objects in folder:INFO: 2026\/04\/28 20:49:20.663440        will be deleted: wal_005\/00000002000000000000002A.br, from storage: default\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 \u0431\u044d\u043a\u0430\u043f\u0430, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e WAL-G\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0438 \u0443\u0434\u0430\u043b\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e PGDATA:postgres@host:~$ pg_ctl stopwaiting for server to shut down&#8230;. doneserver&#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-478020","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/478020","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=478020"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/478020\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=478020"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=478020"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=478020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}