{"id":445483,"date":"2025-01-20T03:02:45","date_gmt":"2025-01-20T03:02:45","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=445483"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2025-01-20T03:02:45","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=445483","title":{"rendered":"<span>\u041d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0434\u043c\u043e\u0434\u0443\u043b\u044c \u0432 PostgreSQL Universal. \u041f\u043e\u043b\u043d\u044b\u0439 \u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0436\u0438\u043c\u044b<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e80\/a99\/9bd\/e80a999bdc4a55461340e5904a197d7a.png\" width=\"780\" height=\"440\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e80\/a99\/9bd\/e80a999bdc4a55461340e5904a197d7a.png\"\/><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u042d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u0446\u0438\u043a\u043b \u0441\u0442\u0430\u0442\u0435\u0439, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0439 RuBackup. \u0420\u0430\u043d\u0435\u0435 \u043c\u044b \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u043b\u0438\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/696074\/\">\u0442\u0435\u043c\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430<\/a>\u00a0\u0438\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/744032\/\">\u0440\u0430\u0441\u043a\u0430\u0442\u043a\u0438 \u0434\u0435\u043c\u043e-\u0441\u0442\u0435\u043d\u0434\u0430<\/a>.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 PostgreSQL Universal. \u0421\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u044b \u043a\u0430\u043a \u043d\u0430 \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445 \u0441 RuBackup, \u0442\u0430\u043a \u0438 \u043d\u0430 \u043b\u044e\u0434\u0435\u0439, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439 \u0434\u043b\u044f \u043b\u0438\u0447\u043d\u044b\u0445 \u0438 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0445 \u0446\u0435\u043b\u0435\u0439. \u041d\u0430\u0447\u043d\u0435\u043c!<\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 RuBackup \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043c\u0430\u0448\u0438\u043d<\/h2>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c\u00a0\u0432 \u043e\u0431\u0449\u0438\u0445 \u0447\u0435\u0440\u0442\u0430\u0445 \u0437\u043d\u0430\u043a\u043e\u043c \u0441 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c RuBackup.\u00a0\u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e\u00a0<a href=\"https:\/\/www.rubackup.ru\/documentation\/techdoc\/\">\u0437\u0434\u0435\u0441\u044c<\/a>\u00a0\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430.\u00a0\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0431\u0443\u0434\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u0430 PostgreSQL \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 c \u041e\u0421 Ubuntu 22.04.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b:<\/p>\n<ul>\n<li>\n<p><strong>rubackup-server.deb<\/strong>\u00a0\u2014 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439<strong> <\/strong>\u0441\u0435\u0440\u0432\u0435\u0440 rubackup, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441\u00a0\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b \u0438 \u0437\u0430\u0434\u0430\u0447 \u0434\u043b\u044f\u00a0\u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><strong>rubackup\u2011client.deb<\/strong>\u00a0\u2014 \u043a\u043b\u0438\u0435\u043d\u0442 rubackup<\/p>\n<\/li>\n<li>\n<p><strong>rubackup\u2011rbm.deb<\/strong>\u00a0\u2014 rubackup manager (rbm), \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f\u00a0\u0431\u044d\u043a\u0430\u043f\u0430. \u042d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f\u00a0\u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441\u00a0\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438<\/p>\n<\/li>\n<li>\n<p><strong>rubackup\u2011common.deb<\/strong>\u00a0\u2014 \u043d\u0430\u0431\u043e\u0440 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f\u00a0\u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/p>\n<\/li>\n<li>\n<p><strong>rubackup\u2011common\u2011gui.deb<\/strong>\u00a0\u2014 \u043d\u0430\u0431\u043e\u0440 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0434\u043b\u044f\u00a0rbm<\/p>\n<\/li>\n<li>\n<p><strong>rubackup\u2011postgresql.deb<\/strong>\u00a0\u2014 \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u0430 \u0421\u0423\u0411\u0414 postgresql<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438\u00a0\u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 2.4.<\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u043d\u0430\u0448\u0435\u043c <a href=\"https:\/\/docs.rubackup.ru\/QuickstartGuide\/2.4.0\/setting.html\">QuickstartGuide<\/a><\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435<\/h3>\n<p>\u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439<\/p>\n<pre><code class=\"bash\">sudo dpkg -i rubackup-server.deb rubackup-client.deb rubackup-common.deb rubackup-rbm.deb rubackup-common-gui.deb<\/code><\/pre>\n<p>\u041f\u0430\u043a\u0435\u0442\u044b \u0440\u0430\u0441\u043f\u0430\u043a\u0443\u044e\u0442\u0441\u044f \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e\u00a0<strong>\/opt\/rubackup<\/strong><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0443\u0442\u0438\u043b\u0438\u0442\u0443\u00a0<strong>rb_init<\/strong>. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432\u0430\u043d\u0438\u043b\u044c\u043d\u044b\u0439 PostgreSQL. \u041d\u0430 Ubuntu 22.04 \u044d\u0442\u043e 14 \u0432\u0435\u0440\u0441\u0438\u044f.<\/p>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043d\u0438\u0436\u0435:<\/p>\n<pre><code class=\"bash\">ubuntu@server-vm:~$ sudo su root@server-vm:\/home\/ubuntu# rb_init RuBackup initialization utility Copyright 2018-2024: LLC \"RUBACKUP\" \u0418\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0430 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u041e\u041e\u041e \"\u0420\u0423\u0411\u042d\u041a\u0410\u041f\" Author is Andrey Kuznetsov Version: 2.4.0; Build: 98e914d.  You MUST agree with the End User License Agreement (EULA) before installing RuBackup (y[es]\/n[o]\/r[ead]\/q[uit])y Do you want to configure RuBackup server (p[rimary], s[econdary], m[edia]) or RuBackup c[lient] (p\/s\/m\/c\/q)?p     Primary RuBackup server configuration...  Enter hostname or IP address of PostgreSQL server [ localhost ]:  Please enter password for \"postgres\" database user:  Do you want to use a secure SSL connection to the database 'rubackup'  (y\/n\/q)? n [2024-09-13 13:19:57] Info: Total usable main memory size: 4101967872 bytes [2024-09-13 13:19:57] Warning: PostgreSQL shared buffers is too small. Recommend to set it up to: 1025491968 bytes [2024-09-13 13:19:57] Info: PostgreSQL effective_cache_size: 4294967296 bytes [ OK ] [2024-09-13 13:19:57] Warning: PostgreSQL work_mem is too small. Recommend to set it up to: 33554432 bytes [2024-09-13 13:19:57] Info: PostgreSQL max_parallel_workers: 8 [ OK ] [2024-09-13 13:19:57] Info: PostgreSQL transaction isolation: read committed [ OK ] Do you want to continue with invalid database settings (y\/n)? y Enter name of RuBackup superuser [ rubackup ]:  Database user \"rubackup\" doesn't exist. Do you want to create database user \"rubackup\" (y\/n)? y Please enter password for \"rubackup\" database user:  Repeat password:  Create PostgreSQL user rubackup    User rubackup was created    Attention!!! --------&gt; Use this login to authenticate to RBM as RuBackup superuser Enter RuBackup database name [ rubackup ]:  Database \"rubackup\" doesn't exist. Do you want to create database \"rubackup\" on \"localhost\" host (y\/n)? y     Creating new \"rubackup\" database...     Execute: \/opt\/rubackup\/rc\/init\/bloom.sql: success    Execute: \/opt\/rubackup\/rc\/init\/server.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_aerodisk_vair.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_brest_template.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_brest_vm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_btrfs.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_ceph_rbd.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_communigate_pro.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_communigate_pro_mail.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_docker_container.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_docker_image.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_docker_volume.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_dynamix.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_filesystem.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_filesystem_win.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_freeipa.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_greenplum.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_isp_vmmanager.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_jatoba1.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_kvm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_lvm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_lxd_container.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_lxd_image.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_mailion.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_mariadb101.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_mssql.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_mssql_files.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_mysql.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_opennebula_template.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_opennebula_vm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_openstack.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_openstack_vol.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_oracle_dp_db.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_oracle_dp_table.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_oracle_rman.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_ovirt.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_pg_dump_database.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_pg_dump_table.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_pg_superb.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_postgres_pro.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_postgresql.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_proxmox_container.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_proxmox_vm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_redis.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_rescue_image.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_rupost.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_rustack.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_rvirt_vm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_s3_cloud_bucket.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_sqlite.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_tarantool.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_tionix.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_vcenter.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_veil_vm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_vmware_vm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_zfs.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_zfs_volume.sql: success  Do you want to add a required file system to the 'Default' pool in the configuration? (y\/n)?y Enter path: \/default-pool Path \"\/default-pool\" doesn't exist. Do you want to create it? (y\/n)y     RuBackup client configuration: client-server mode    Hostname of primary server: server-vm.astralinux.ru  Will you use secondary server (y\/n)?n  Possible interfaces for RuBackup client communication:     lo [0]    ens3 [1] Choose client net interface ID for use: 1    Selected interface: ens3 Do you allow centralized recovery (y\/n)?y Do you plan to use continuous remote replication to apply remote replicas on this client (y\/n)?y Enter local backup directory path [\/tmp] :  Set amount threads parallelizm for server [ 8 ]:  Set amount threads parallelizm media server [ 8 ]:      Create RuBackup master key...  RuBackup master key file was overwritten. Digital signature keys will also be recreated    Create new secret key    Create new public key Will you use digital signature (y\/n)?y Do you want to enable system monitoring of this client (y\/n)?y Do you want to set a soft memory threshold? (y\/n)?n Do you want to use ipv4[1] ipv6[2] or both[3] in DNS requests?3 Do you want to enable security audit ([y]es, [n]o, [q]uit)(y\/n\/q)?n<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u00a0<strong>rubackup_server<\/strong>,\u00a0<strong>rubackup_client\u00a0<\/strong>\u0438\u00a0<strong>rbm<\/strong><\/p>\n<pre><code class=\"bash\">sudo systemctl enable \/opt\/rubackup\/etc\/systemd\/system\/rubackup_server.service sudo systemctl enable \/opt\/rubackup\/etc\/systemd\/system\/rubackup_client.service<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c rubackup manager<\/p>\n<pre><code class=\"bash\">rbm&amp;<\/code><\/pre>\n<p>\u0427\u0435\u0440\u0435\u0437 rbm \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u043e\u0441\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0431\u044d\u043a\u0430\u043f \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0438. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0430\u0441\u044c \u0441 \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043c Done, \u0432\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e!<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/14e\/a72\/3e2\/14ea723e2878d918ab46a01e9604600c.png\" alt=\"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\" title=\"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\" width=\"847\" height=\"235\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/14e\/a72\/3e2\/14ea723e2878d918ab46a01e9604600c.png\"\/><\/p>\n<div><figcaption>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435.<\/p>\n<h3>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0421\u0423\u0411\u0414 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435<\/h3>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0421\u0423\u0411\u0414 PostgreSQL. \u0422\u0430\u043a\u0436\u0435 \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043f\u0430\u0442\u0447 Ptrack \u0434\u043b\u044f \u0421\u0423\u0411\u0414 PostgreSQL (\u043e\u0431 \u044d\u0442\u043e\u043c \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435).<\/p>\n<p>\u0412\u043e\u0437\u044c\u043c\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/postgres\/postgres\">GitHub<\/a> \u0438 \u043f\u0430\u0442\u0447 <a href=\"https:\/\/github.com\/postgrespro\/ptrack\">Ptrack<\/a><\/p>\n<pre><code class=\"bash\">cd \/var\/lib\/postgresql\/  export PG_BRANCH=REL_15_STABLE  # Get PostgreSQL and Ptrack sources git clone https:\/\/github.com\/postgres\/postgres.git -b $PG_BRANCH git clone https:\/\/github.com\/postgrespro\/ptrack.git postgres\/contrib\/ptrack  # Apply patch, compile and install PostgreSQL # apt install build-essential flex bison zlib1g-dev lib32readline8 lib32readline-dev cd postgres\/contrib\/ptrack &amp;&amp; make patch &amp;&amp; make install-postgres prefix=$PWD\/pgsql  # Add the newly created binaries to the PATH: export PATH=$PWD\/pgsql\/bin:$PATH  # Compile and install ptrack make install USE_PGXS=1<\/code><\/pre>\n<p>\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0435\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 PostgreSQL:<\/p>\n<pre><code class=\"bash\">\/var\/lib\/postgresql\/postgres\/contrib\/ptrack\/pgsql\/bin\/pg_ctl -D \/var\/lib\/postgresql\/pgdata\/ initdb<\/code><\/pre>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \/var\/lib\/postgresql\/pgdata\/postgresql.conf<\/p>\n<pre><code class=\"bash\">port = 5433 wal_level = replica archive_mode = on archive_command = 'cp %p \/opt\/rubackup\/mnt\/ postgresql_archives\/%f' restore_command = 'cp \/opt\/rubackup\/mnt\/ postgresql_archives\/%f %p'<\/code><\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u0432 \/var\/lib\/postgresql\/pgdata\/pg_hba.conf<\/p>\n<pre><code class=\"bash\">host    postgres        rubackup_backuper   127.0.0.1\/32        md5 host    replication     rubackup_backuper   127.0.0.1\/32        md5<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0433\u0440\u0443\u043f\u043f\u0443 postgres:<\/p>\n<pre><code class=\"bash\">mkdir -p \/opt\/rubackup\/mnt\/postgresql_archives\/ chown postgres:postgres \/opt\/rubackup\/mnt\/postgresql_archives\/<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c PostgreSQL<\/p>\n<pre><code class=\"bash\">\/opt\/rubackup\/mnt$ \/var\/lib\/postgresql\/postgres\/contrib\/ptrack\/pgsql\/bin\/pg_ctl -D \/var\/lib\/postgresql\/pgdata\/ start  waiting for server to start....2024-09-16 11:49:43.789 MSK [48561] LOG: starting PostgreSQL 15.8 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit 2024-09-16 11:49:43.789 MSK [48561] LOG: listening on IPv4 address \"127.0.0.1\", port 5433 2024-09-16 11:49:43.800 MSK [48561] LOG: listening on Unix socket \"\/tmp\/.s.PGSQL.5433\" 2024-09-16 11:49:43.815 MSK [48564] LOG: database system was shut down at 2024-09-16 11:43:48 MSK 2024-09-16 11:49:43.837 MSK [48561] LOG: database system is ready to accept connections done server started<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0434\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 psql<\/p>\n<pre><code class=\"bash\">sudo ln -sf \/tmp\/.s.PGSQL.5433 \/var\/run\/postgresql\/.s.PGSQL.5433 sudo ln -sf \/tmp\/.s.PGSQL.5433.lock \/var\/run\/postgresql\/.s.PGSQL.5433.lock<\/code><\/pre>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">sudo -u postgres psql -p 5433<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f rubackup_backuper \u0438 \u0434\u0430\u0434\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439:<\/p>\n<pre><code class=\"bash\">create user rubackup_backuper password '12345'; alter role rubackup_backuper with login;  grant execute on function pg_backup_start to rubackup_backuper; grant execute on function pg_backup_stop(bool) to rubackup_backuper; grant execute on function pg_switch_wal to rubackup_backuper; grant pg_read_all_settings to rubackup_backuper;<\/code><\/pre>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 PostgreSQL! \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435.<\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/h3>\n<p>\u041d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b:<\/p>\n<pre><code class=\"bash\">sudo dpkg -i rubackup-client.deb rubackup-common.deb rubackup-postgresql.deb<\/code><\/pre>\n<p>\u041f\u0430\u043a\u0435\u0442\u044b \u0440\u0430\u0441\u043f\u0430\u043a\u0443\u044e\u0442\u0441\u044f \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e\u00a0<strong>\/opt\/rubackup.<\/strong><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u00a0PostgreSQL Universal.<\/p>\n<h3>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u00a0PostgreSQL Universal<\/h3>\n<p>\/opt\/rubackup\/etc\/rb_module_postgresql.conf \u2014 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043c\u043e\u0434\u0443\u043b\u044f. \u0415\u0441\u043b\u0438 \u043c\u043e\u0434\u0443\u043b\u044c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u043d\u0435 \u0432\u043f\u0435\u0440\u0432\u044b\u0435, \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d \u0432 \/opt\/rubackup\/etc\/rb_module_postgresql_old.conf, \u0430 \u0432 \u043d\u043e\u0432\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0441\u043b\u0435 \u0441\u043b\u0438\u044f\u043d\u0438\u044f.<\/p>\n<p>\u041a\u0440\u0430\u0442\u043a\u043e \u043f\u0440\u043e\u0431\u0435\u0436\u0438\u043c\u0441\u044f \u043f\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c:<\/p>\n<pre><code class=\"bash\"># Symbol \"#\" at the beginning of the line treats as a comment # \"#\" in the middle of the line treats as a parameter value # So please do not use comments in one line with parameter # dbname postgres username rubackup_backuper password 12345 host localhost port 5432 #Enable interaction with centralized secret repositories use_secret_storage no archive_catalog \/opt\/rubackup\/mnt\/postgresql_archives # Specify this path according to the installed version pg_ctl \/usr\/lib\/postgresql\/12\/bin\/pg_ctl postgresql_service_name postgresql pg_waldump \/usr\/lib\/postgresql\/12\/bin\/pg_waldump num_threads_for_wal_processing 8 # Specify if custom built PostgreSQL binary is required #pg_binary \/usr\/bin\/custom\/postgres # Specify if server output should be redirected to the file #pg_log \/tmp\/postgres.log auto_remove_wal yes postgresql_admin postgres # Timeout period for the last WAL file generated during backup(in seconds) wal_wait_timeout 10 # Availability check period for last WAL file generated during backup(in seconds) wal_check_period 1 # Patroni parameters are optional # and may be needed for the module work in a patroni cluster patroni_host localhost patroni_port 8008 patroni_node_type_for_backup leader # \u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0443\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u043f\u043e\u0434\u043c\u043e\u0434\u0443\u043b\u044f PgProbackup # \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f restore_target_action: [pause | promote | shutdown] restore_target_action pause # \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f restore_target: [immediate | latest] restore_target immediate # \u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043e \u0443\u0442\u0438\u043b\u0438\u0442\u044b pg_probackup pg_probackup \/opt\/pgpro\/std-13\/bin\/pg_probackup # \u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438 probackup_catalog_copies \/opt\/rubackup\/mnt\/pg_probackup # \u0418\u043c\u044f \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430. \u0418\u043c\u044f \u043f\u043e\u0434\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u043a\u043e\u043f\u0438\u0438 probackup_instance_name data # \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f s3_interface: [minio | vk] s3_interface minio # \u041f\u0443\u0442\u044c \u0434\u043e \u0443\u0442\u0438\u043b\u0438\u0442\u044b pg_receivewal (\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f), \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 10 \u0432\u0435\u0440\u0441\u0438\u0438 pg_receivewal \/usr\/lib\/postgresql\/10\/bin\/pg_receivewal # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0438\u043c \u0440\u0435\u0436\u0438\u043c. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \"yes\", \"no\" stream no # \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c drop \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043b\u043e\u0442\u0430 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c slot_name \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0420\u041a drop_slot no # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043b\u043e\u0442, \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u0438\u043d\u0430\u0447\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c slot_name my_slot_name # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 replication_catalog \/opt\/rubackup\/mnt\/postgresql_replica # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c move \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 WAL \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f move_on_archive_get yes # \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438 WAL num_threads_for_wal_archiving 1 # \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0430\u0439\u043b\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0437\u0430 \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438 batch_size_for_wal_archiving 1 # \u041c\u0430\u043a\u0441. \u0440\u0430\u0437\u043c\u0435\u0440 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0430\u0440\u0445\u0438\u0432\u043d\u044b\u0445 WAL \u0444\u0430\u0439\u043b\u043e\u0432 (0 - \u043d\u0435\u0442 \u043b\u0438\u043c\u0438\u0442\u0430) wal_archive_files_size 0 # \u041c\u0430\u043a\u0441. \u0432\u0440\u0435\u043c\u044f \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u043d\u044f\u0442\u0438\u044f \u0420\u041a \u0436\u0434\u0435\u0442 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0430\u0440\u0445\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 cleanup_wait_timeout 1000 # \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0434 \u0441\u043d\u044f\u0442\u0438\u0435\u043c \u0420\u041a make_archiving_check yes<\/code><\/pre>\n<h3>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430<\/h3>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0442\u0443\u00a0<strong>rb_init.<\/strong><\/p>\n<pre><code class=\"bash\">root@client-vm:\/home\/ubuntu# rb_init RuBackup initialization utility Copyright 2018-2024: LLC \"RUBACKUP\" \u0418\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0430 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u041e\u041e\u041e \"\u0420\u0423\u0411\u042d\u041a\u0410\u041f\" Author is Andrey Kuznetsov Version: 2.4.0; Build: 98e914d.    RuBackup command service was added to \/etc\/services    RuBackup license service was added to \/etc\/services    RuBackup media service was added to \/etc\/services  You MUST agree with the End User License Agreement (EULA) before installing RuBackup (y[es]\/n[o]\/r[ead]\/q[uit])y Do you want to configure RuBackup server (p[rimary], s[econdary], m[edia]) or RuBackup c[lient] (p\/s\/m\/c\/q)?c     RuBackup client configuration...  Choose client mode: client-server or autonomous (c\/a)?c     RuBackup client configuration: client-server mode  Hostname of primary server: 10.177.72.234 Will you use secondary server (y\/n)?n  Possible interfaces for RuBackup client communication:     lo [0]    ens3 [1] Choose client net interface ID for use: 1    Selected interface: ens3 Do you allow centralized recovery (y\/n)?y Do you plan to use continuous remote replication to apply remote replicas on this client (y\/n)?y Enter local backup directory path [\/tmp] :      Create RuBackup master key...  RuBackup master key file was overwritten. Digital signature keys will also be recreated    Create new secret key    Create new public key Will you use digital signature (y\/n)?y Do you want to enable system monitoring of this client (y\/n)?y Do you want to set a soft memory threshold? (y\/n)?n Do you want to use ipv4[1] ipv6[2] or both[3] in DNS requests?3<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430.<\/p>\n<pre><code>sudo systemctl enable \/opt\/rubackup\/etc\/systemd\/system\/rubackup_client.service<\/code><\/pre>\n<p>\u0412 \u043b\u043e\u0433\u0435 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"bash\">[2024-09-11 12:40:19] Info: Try to check module: 'PostgreSQL universal' ... [2024-09-11 12:40:19] Info: Execute OS command: \/opt\/rubackup\/modules\/rb_module_postgresql -t 2&gt;&amp;1 [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: Patroni node type for backup not set. Processing as a standalone node... [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Warning: Wrong value pg_probackup in the conf file [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Warning: \/opt\/pgpro\/std-13\/bin\/pg_probackup doesn't exist [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: Unable to work with engine pg_probackup [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: Module version: 2.4.0.52c4136 [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: Initiate connection with database [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: Connected to postgres [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: PostgreSQL version: 15.7 [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: PostgreSQL data directory: \/var\/lib\/postgresql\/pgdata [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: Enable to work with engine superb [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: Module version: 2.4.0.52c4136 [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: Initiate connection with database [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: Connected to postgres [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: PostgreSQL version: 15.7 [2024-09-11 12:40:19] Info: [2024-09-11 12:40:19] rb_module_postgresql[3042216] Info: Enable to work with engine base [2024-09-11 12:40:19] Info: ... module 'PostgreSQL universal' was checked successfully<\/code><\/pre>\n<p>\u041b\u043e\u0433 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044f\u00a0PostgreSQL Universal\u00a0\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u043e\u0434\u043c\u043e\u0434\u0443\u043b\u0438 (\u0434\u0432\u0438\u0436\u043a\u0438) Superb \u0438 PostgreSQL. \u041f\u0440\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u043e\u0434\u043c\u043e\u0434\u0443\u043b\u0435\u043c pg_probackup \u0438 Superb \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u043e\u0435\u0433\u043e \u043a\u043e\u043b\u043b\u0435\u0433\u0438\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/872944\/\">\u041e\u0431\u0437\u043e\u0440 \u043c\u043e\u0434\u0443\u043b\u044f PostgreSQL \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f RuBackup ( PosgreSQL, PostgresPRO, Superb)<\/a>.<\/p>\n<p>\u041f\u043e\u0434\u043c\u043e\u0434\u0443\u043b\u044c\u00a0<strong>postgresql<\/strong>\u00a0\u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 API \u0421\u0423\u0411\u0414 PostgreSQL \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u00a0\u0441\u00a0\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c\u00a0WAL.<\/p>\n<p>\u041f\u043e\u0434\u043c\u043e\u0434\u0443\u043b\u044c\u00a0<strong>pg_probackup<\/strong>\u00a0\u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0443\u0442\u0438\u043b\u0438\u0442\u0443 pg_probackup \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0421\u0423\u0411\u0414 PostgresPro.<\/p>\n<p>\u041f\u043e\u0434\u043c\u043e\u0434\u0443\u043b\u044c\u00a0<strong>superb<\/strong>\u00a0\u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u044b (\u0441\u043d\u0438\u043c\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b) \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439\u00a0\u0441\u00a0\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c\u00a0WAL.<\/p>\n<p>\u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 PostgreSQL: 9.6, 10, 11, 12, 13, 14, 15, 16.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443! \u0415\u0441\u043b\u0438 \u0432 \u043b\u043e\u0433\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d2a\/f63\/2a4\/d2af632a4f49ed619fe4f14b6cc352f2.png\" alt=\"\u0423\u0441\u043f\u0435\u0448\u043d\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044f. \u041d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f PostgreSQL Universal\" title=\"\u0423\u0441\u043f\u0435\u0448\u043d\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044f. \u041d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f PostgreSQL Universal\" width=\"1866\" height=\"514\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d2a\/f63\/2a4\/d2af632a4f49ed619fe4f14b6cc352f2.png\"\/><\/p>\n<div><figcaption>\u0423\u0441\u043f\u0435\u0448\u043d\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044f. \u041d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f PostgreSQL Universal<\/figcaption><\/div>\n<\/figure>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u0435\u043c rb_module_postgresql<\/h2>\n<h3>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0440\u0435\u0436\u0438\u043c\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439<\/h3>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0440\u0435\u0436\u0438\u043c\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u043d\u0430\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f (aka full \u0431\u044d\u043a\u0430\u043f),<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438 \u0441 \u0440\u0435\u0436\u0438\u043c\u0430\u043c\u0438 archive_wal, page, ptrack, delta. \u0420\u0435\u0436\u0438\u043c\u044b \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c\u00a0engine.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u043f\u043e\u043b\u043d\u0443\u044e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e<\/h3>\n<p>\u041f\u043e\u043b\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043e\u043f\u0438\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 PGDATA \u0438 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 WAL-\u0444\u0430\u0439\u043b\u043e\u0432. \u0421 \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u043f\u0438\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f\u00a0\u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435\u00a0\u0446\u0435\u043f\u043e\u0447\u0435\u043a \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439. \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u0431\u044d\u043a\u0430\u043f, \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432 RBM \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/faa\/2fd\/b7e\/faa2fdb7e0a82365c2dcacd7ab8961dc.png\" width=\"2404\" height=\"842\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/faa\/2fd\/b7e\/faa2fdb7e0a82365c2dcacd7ab8961dc.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d43\/466\/3cb\/d434663cb876e1b2f707e2d84aa2b0b2.png\" width=\"1506\" height=\"140\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d43\/466\/3cb\/d434663cb876e1b2f707e2d84aa2b0b2.png\"\/><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0437\u0430\u0434\u0430\u0447\u0443:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/91e\/c9e\/1ab\/91ec9e1ab1c44e1a7cc7f4e8c554c07a.png\" width=\"2360\" height=\"628\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/91e\/c9e\/1ab\/91ec9e1ab1c44e1a7cc7f4e8c554c07a.png\"\/><\/figure>\n<p>\u0412\u0443\u0430\u043b\u044f! \u041c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u0431\u044d\u043a\u0430\u043f. \u041c\u043e\u0436\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0440\u0435\u0441\u0442\u043e\u0440 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0438\u043b\u0438 \u0440\u0435\u0441\u0442\u043e\u0440 \u0441 \u0434\u0435\u043f\u043b\u043e\u0435\u043c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 rbm \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 &#171;\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439&#187; \u0438 \u043d\u0430\u0436\u0430\u0442\u044c &#171;\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c&#187;.\u00a0\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0431\u044d\u043a\u0430\u043f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e PGDATA \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 PostgreSQL. \u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 WAL \u0440\u0430\u0441\u043f\u0430\u043a\u0443\u044e\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0438\u0437 archive_command \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u0441\u044f PostgreSQL.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b0b\/0ce\/918\/b0b0ce9183659bc48616954b3a8a53fe.png\" width=\"2386\" height=\"1086\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b0b\/0ce\/918\/b0b0ce9183659bc48616954b3a8a53fe.png\"\/><\/figure>\n<h3>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0436\u0438\u043c\u044b (archive_wal, page, ptrack, delta)<\/h3>\n<p>\u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0436\u0438\u043c\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438. \u042d\u0442\u0438 \u0440\u0435\u0436\u0438\u043c\u044b \u0438\u043c\u0435\u044e\u0442 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u00a0\u2014 \u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439,\u00a0\u2014 \u0438 \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u00a0\u0431\u044b\u0441\u0442\u0440\u0435\u0435.<\/p>\n<ul>\n<li>\n<p><strong>archive_wal<\/strong>\u00a0\u2014 \u0440\u0435\u0436\u0438\u043c, \u043f\u0440\u0438\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0437\u0430\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 WAL \u0444\u0430\u0439\u043b\u044b. \u041f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0432\u00a0\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 PostgreSQL \u0434\u043e\u043b\u0436\u043d\u044b\u00a0\u0431\u044b\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b archive_mode, archive_command \u0438 restore_command.<\/p>\n<\/li>\n<li>\n<p><strong>page<\/strong>\u00a0\u2014 \u0440\u0435\u0436\u0438\u043c, \u043f\u0440\u0438\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0437\u0430\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b PostgreSQL. \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u044b\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438\u00a0\u043f\u043e\u043c\u043e\u0449\u0438 \u0432\u0430\u043d\u0438\u043b\u044c\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b <strong>pg_waldump.<\/strong><\/p>\n<\/li>\n<li>\n<p><strong>ptrack<\/strong>\u00a0\u2014 \u0440\u0435\u0436\u0438\u043c block\u2011level \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u044d\u043a\u0430\u043f\u0430. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043d\u0430\u00a0\u043b\u0435\u0442\u0443. \u0414\u043b\u044f\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0430\u0442\u0447 \u0438\u0437\u00a0<a href=\"https:\/\/github.com\/postgrespro\/ptrack\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f<\/a>.<\/p>\n<\/li>\n<li>\n<p><strong>delta<\/strong>\u00a0\u2014 \u0440\u0435\u0436\u0438\u043c \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u044d\u043a\u0430\u043f\u0430, \u043f\u0440\u0438\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0437\u0430\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u043d\u0430\u00a0block\u2011level \u0434\u0430\u043d\u043d\u044b\u0435. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u044b\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b\u00a0<strong>rbfd<\/strong><\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0441 \u0440\u0435\u0436\u0438\u043c\u043e\u043c\u00a0<strong>archive_wal<\/strong>:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ea1\/0b5\/637\/ea10b5637023a28abd8b04cd8acb3a21.png\" width=\"2226\" height=\"904\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ea1\/0b5\/637\/ea10b5637023a28abd8b04cd8acb3a21.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b48\/f3f\/7a7\/b48f3f7a7ec9499cc051dd2d8aaea53b.png\" width=\"1172\" height=\"958\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b48\/f3f\/7a7\/b48f3f7a7ec9499cc051dd2d8aaea53b.png\"\/><\/figure>\n<p>\u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0435\u0449\u0435 \u0434\u0432\u0430\u0436\u0434\u044b. \u041f\u0435\u0440\u0432\u0430\u044f \u043a\u043e\u043f\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u0431\u044d\u043a\u0430\u043f, \u0432\u0442\u043e\u0440\u0430\u044f \u0438 \u0442\u0440\u0435\u0442\u044c\u044f\u00a0\u2014 \u0430\u0440\u0445\u0438\u0432\u043d\u044b\u0435 WAL-\u0444\u0430\u0439\u043b\u044b.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f9e\/979\/91e\/f9e97991e8f5698dacdbe7b88fefa94c.png\" width=\"2386\" height=\"560\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f9e\/979\/91e\/f9e97991e8f5698dacdbe7b88fefa94c.png\"\/><\/figure>\n<p>\u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0438\u0437\u00a0\u0442\u0440\u0435\u0445 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439. \u041f\u0435\u0440\u0432\u0430\u044f\u00a0\u2014 \u043f\u043e\u043b\u043d\u044b\u0439 \u0431\u044d\u043a\u0430\u043f, \u0432\u0442\u043e\u0440\u0430\u044f \u0438 \u0442\u0440\u0435\u0442\u044c\u044f\u00a0\u2014 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435\u00a0<strong>archive_wal<\/strong>\u00a0\u043a\u043e\u043f\u0438\u0438. \u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0431\u044b\u043b \u0432\u0437\u044f\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0431\u044d\u043a\u0430\u043f.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b3c\/2e5\/c16\/b3c2e5c168023a61150158e9be498f8d.png\" width=\"1870\" height=\"302\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b3c\/2e5\/c16\/b3c2e5c168023a61150158e9be498f8d.png\"\/><\/figure>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0440\u0435\u0441\u0442\u043e\u0440 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0438\u043b\u0438 \u0440\u0435\u0441\u0442\u043e\u0440 \u0441 \u0434\u0435\u043f\u043b\u043e\u0435\u043c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/734\/1e5\/a54\/7341e5a5487e32198b4f5e614bd74636.png\" width=\"2230\" height=\"398\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/734\/1e5\/a54\/7341e5a5487e32198b4f5e614bd74636.png\"\/><\/figure>\n<p>\u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0438\u0437 \u0442\u0440\u0435\u0445 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/703\/fb5\/56b\/703fb556b6c67a0ce5c77c5fcb0ff53b.png\" width=\"2326\" height=\"1038\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/703\/fb5\/56b\/703fb556b6c67a0ce5c77c5fcb0ff53b.png\"\/><\/figure>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u043a\u043e\u043f\u0438\u0439 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0440\u0435\u0436\u0438\u043c\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0436\u0438\u043c\u044b \u0431\u0443\u0434\u0443\u0442 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c, \u043c\u043e\u0434\u0443\u043b\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u043f\u043e\u043b\u043d\u0443\u044e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e.<\/p>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 RuBackup \u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u0438\u0445. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043c\u043e\u0434\u0443\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/www.rubackup.ru\/documentation\/techdoc\/\">\u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>.<\/p>\n<p>\u041c\u044b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u041e\u043d\u0438 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u044e\u0442 \u043a\u0430\u043a \u043d\u043e\u0432\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0442\u0430\u043a \u0438 \u0444\u0438\u043a\u0441 \u0431\u0430\u0433\u043e\u0432.\u00a0\u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439, \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 Patroni \u0438 \u0442\u043e\u043d\u043a\u0438\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/873328\/\"> https:\/\/habr.com\/ru\/articles\/873328\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u042d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u0446\u0438\u043a\u043b \u0441\u0442\u0430\u0442\u0435\u0439, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0439 RuBackup. \u0420\u0430\u043d\u0435\u0435 \u043c\u044b \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u043b\u0438\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/696074\/\">\u0442\u0435\u043c\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430<\/a>\u00a0\u0438\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/744032\/\">\u0440\u0430\u0441\u043a\u0430\u0442\u043a\u0438 \u0434\u0435\u043c\u043e-\u0441\u0442\u0435\u043d\u0434\u0430<\/a>.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 PostgreSQL Universal. \u0421\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u044b \u043a\u0430\u043a \u043d\u0430 \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445 \u0441 RuBackup, \u0442\u0430\u043a \u0438 \u043d\u0430 \u043b\u044e\u0434\u0435\u0439, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439 \u0434\u043b\u044f \u043b\u0438\u0447\u043d\u044b\u0445 \u0438 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0445 \u0446\u0435\u043b\u0435\u0439. \u041d\u0430\u0447\u043d\u0435\u043c!<\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 RuBackup \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043c\u0430\u0448\u0438\u043d<\/h2>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c\u00a0\u0432 \u043e\u0431\u0449\u0438\u0445 \u0447\u0435\u0440\u0442\u0430\u0445 \u0437\u043d\u0430\u043a\u043e\u043c \u0441 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c RuBackup.\u00a0\u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e\u00a0<a href=\"https:\/\/www.rubackup.ru\/documentation\/techdoc\/\">\u0437\u0434\u0435\u0441\u044c<\/a>\u00a0\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430.\u00a0\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0431\u0443\u0434\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u0430 PostgreSQL \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 c \u041e\u0421 Ubuntu 22.04.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b:<\/p>\n<ul>\n<li>\n<p><strong>rubackup-server.deb<\/strong>\u00a0\u2014 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439<strong> <\/strong>\u0441\u0435\u0440\u0432\u0435\u0440 rubackup, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441\u00a0\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b \u0438 \u0437\u0430\u0434\u0430\u0447 \u0434\u043b\u044f\u00a0\u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p><strong>rubackup\u2011client.deb<\/strong>\u00a0\u2014 \u043a\u043b\u0438\u0435\u043d\u0442 rubackup<\/p>\n<\/li>\n<li>\n<p><strong>rubackup\u2011rbm.deb<\/strong>\u00a0\u2014 rubackup manager (rbm), \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f\u00a0\u0431\u044d\u043a\u0430\u043f\u0430. \u042d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f\u00a0\u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441\u00a0\u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438<\/p>\n<\/li>\n<li>\n<p><strong>rubackup\u2011common.deb<\/strong>\u00a0\u2014 \u043d\u0430\u0431\u043e\u0440 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f\u00a0\u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/p>\n<\/li>\n<li>\n<p><strong>rubackup\u2011common\u2011gui.deb<\/strong>\u00a0\u2014 \u043d\u0430\u0431\u043e\u0440 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0434\u043b\u044f\u00a0rbm<\/p>\n<\/li>\n<li>\n<p><strong>rubackup\u2011postgresql.deb<\/strong>\u00a0\u2014 \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u0430 \u0421\u0423\u0411\u0414 postgresql<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438\u00a0\u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 2.4.<\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u043d\u0430\u0448\u0435\u043c <a href=\"https:\/\/docs.rubackup.ru\/QuickstartGuide\/2.4.0\/setting.html\">QuickstartGuide<\/a><\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435<\/h3>\n<p>\u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439<\/p>\n<pre><code class=\"bash\">sudo dpkg -i rubackup-server.deb rubackup-client.deb rubackup-common.deb rubackup-rbm.deb rubackup-common-gui.deb<\/code><\/pre>\n<p>\u041f\u0430\u043a\u0435\u0442\u044b \u0440\u0430\u0441\u043f\u0430\u043a\u0443\u044e\u0442\u0441\u044f \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e\u00a0<strong>\/opt\/rubackup<\/strong><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0443\u0442\u0438\u043b\u0438\u0442\u0443\u00a0<strong>rb_init<\/strong>. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432\u0430\u043d\u0438\u043b\u044c\u043d\u044b\u0439 PostgreSQL. \u041d\u0430 Ubuntu 22.04 \u044d\u0442\u043e 14 \u0432\u0435\u0440\u0441\u0438\u044f.<\/p>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043d\u0438\u0436\u0435:<\/p>\n<pre><code class=\"bash\">ubuntu@server-vm:~$ sudo su root@server-vm:\/home\/ubuntu# rb_init RuBackup initialization utility Copyright 2018-2024: LLC \"RUBACKUP\" \u0418\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0430 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u041e\u041e\u041e \"\u0420\u0423\u0411\u042d\u041a\u0410\u041f\" Author is Andrey Kuznetsov Version: 2.4.0; Build: 98e914d.  You MUST agree with the End User License Agreement (EULA) before installing RuBackup (y[es]\/n[o]\/r[ead]\/q[uit])y Do you want to configure RuBackup server (p[rimary], s[econdary], m[edia]) or RuBackup c[lient] (p\/s\/m\/c\/q)?p     Primary RuBackup server configuration...  Enter hostname or IP address of PostgreSQL server [ localhost ]:  Please enter password for \"postgres\" database user:  Do you want to use a secure SSL connection to the database 'rubackup'  (y\/n\/q)? n [2024-09-13 13:19:57] Info: Total usable main memory size: 4101967872 bytes [2024-09-13 13:19:57] Warning: PostgreSQL shared buffers is too small. Recommend to set it up to: 1025491968 bytes [2024-09-13 13:19:57] Info: PostgreSQL effective_cache_size: 4294967296 bytes [ OK ] [2024-09-13 13:19:57] Warning: PostgreSQL work_mem is too small. Recommend to set it up to: 33554432 bytes [2024-09-13 13:19:57] Info: PostgreSQL max_parallel_workers: 8 [ OK ] [2024-09-13 13:19:57] Info: PostgreSQL transaction isolation: read committed [ OK ] Do you want to continue with invalid database settings (y\/n)? y Enter name of RuBackup superuser [ rubackup ]:  Database user \"rubackup\" doesn't exist. Do you want to create database user \"rubackup\" (y\/n)? y Please enter password for \"rubackup\" database user:  Repeat password:  Create PostgreSQL user rubackup    User rubackup was created    Attention!!! --------&gt; Use this login to authenticate to RBM as RuBackup superuser Enter RuBackup database name [ rubackup ]:  Database \"rubackup\" doesn't exist. Do you want to create database \"rubackup\" on \"localhost\" host (y\/n)? y     Creating new \"rubackup\" database...     Execute: \/opt\/rubackup\/rc\/init\/bloom.sql: success    Execute: \/opt\/rubackup\/rc\/init\/server.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_aerodisk_vair.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_brest_template.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_brest_vm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_btrfs.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_ceph_rbd.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_communigate_pro.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_communigate_pro_mail.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_docker_container.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_docker_image.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_docker_volume.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_dynamix.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_filesystem.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_filesystem_win.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_freeipa.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_greenplum.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_isp_vmmanager.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_jatoba1.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_kvm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_lvm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_lxd_container.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_lxd_image.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_mailion.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_mariadb101.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_mssql.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_mssql_files.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_mysql.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_opennebula_template.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_opennebula_vm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_openstack.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_openstack_vol.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_oracle_dp_db.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_oracle_dp_table.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_oracle_rman.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_ovirt.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_pg_dump_database.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_pg_dump_table.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_pg_superb.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_postgres_pro.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_postgresql.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_proxmox_container.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_proxmox_vm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_redis.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_rescue_image.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_rupost.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_rustack.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_rvirt_vm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_s3_cloud_bucket.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_sqlite.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_tarantool.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_tionix.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_vcenter.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_veil_vm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_vmware_vm.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_zfs.sql: success    Execute: \/opt\/rubackup\/rc\/modules\/rb_module_zfs_volume.sql: success  Do you want to add a required file system to the 'Default' pool in the configuration? (y\/n)?y Enter path: \/default-pool Path \"\/default-pool\" doesn't exist. Do you want to create it? (y\/n)y     RuBackup client configuration: client-server mode    Hostname of primary server: server-vm.astralinux.ru  Will you use secondary server (y\/n)?n  Possible interfaces for RuBackup client communication:     lo [0]    ens3 [1] Choose client net interface ID for use: 1    Selected interface: ens3 Do you allow centralized recovery (y\/n)?y Do you plan to use continuous remote replication to apply remote replicas on this client (y\/n)?y Enter local backup directory path [\/tmp] :  Set amount threads parallelizm for server [ 8 ]:  Set amount threads parallelizm media server [ 8 ]:      Create RuBackup master key...  RuBackup master key file was overwritten. Digital signature keys will also be recreated    Create new secret key    Create new public key Will you use digital signature (y\/n)?y Do you want to enable system monitoring of this client (y\/n)?y Do you want to set a soft memory threshold? (y\/n)?n Do you want to use ipv4[1] ipv6[2] or both[3] in DNS requests?3 Do you want to enable security audit ([y]es, [n]o, [q]uit)(y\/n\/q)?n<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u00a0<strong>rubackup_server<\/strong>,\u00a0<strong>rubackup_client\u00a0<\/strong>\u0438\u00a0<strong>rbm<\/strong><\/p>\n<pre><code class=\"bash\">sudo systemctl enable \/opt\/rubackup\/etc\/systemd\/system\/rubackup_server.service sudo systemctl enable \/opt\/rubackup\/etc\/systemd\/system\/rubackup_client.service<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c rubackup manager<\/p>\n<pre><code class=\"bash\">rbm&amp;<\/code><\/pre>\n<p>\u0427\u0435\u0440\u0435\u0437 rbm \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u043e\u0441\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0431\u044d\u043a\u0430\u043f \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0438. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0430\u0441\u044c \u0441 \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043c Done, \u0432\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e!<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435.<\/p>\n<h3>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0421\u0423\u0411\u0414 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435<\/h3>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0421\u0423\u0411\u0414 PostgreSQL. \u0422\u0430\u043a\u0436\u0435 \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043f\u0430\u0442\u0447 Ptrack \u0434\u043b\u044f \u0421\u0423\u0411\u0414 PostgreSQL (\u043e\u0431 \u044d\u0442\u043e\u043c \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435).<\/p>\n<p>\u0412\u043e\u0437\u044c\u043c\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/postgres\/postgres\">GitHub<\/a> \u0438 \u043f\u0430\u0442\u0447 <a href=\"https:\/\/github.com\/postgrespro\/ptrack\">Ptrack<\/a><\/p>\n<pre><code class=\"bash\">cd \/var\/lib\/postgresql\/  export PG_BRANCH=REL_15_STABLE  # Get PostgreSQL and Ptrack sources git clone https:\/\/github.com\/postgres\/postgres.git -b $PG_BRANCH git clone https:\/\/github.com\/postgrespro\/ptrack.git postgres\/contrib\/ptrack  # Apply patch, compile and<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-445483","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/445483","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=445483"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/445483\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=445483"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=445483"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=445483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}