wal-g PostgreSQL āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤āĻŋ

āĻ“āĻ¯āĻŧāĻžāĻ˛-āĻœāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡ PostgreSQL āĻŦā§āĻ¯āĻžāĻ• āĻ†āĻĒ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻšāĻœ āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻŸā§āĻ˛āĨ¤ āĻāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻĒāĻ°āĻŋāĻĒā§āĻ°ā§‡āĻ•ā§āĻˇāĻŋāĻ¤ā§‡, āĻāĻŸāĻŋ āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻŸā§āĻ˛ā§‡āĻ° āĻ‰āĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ°ā§€ āĻ“āĻ¯āĻŧāĻžāĻ˛-āĻ‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ Go-āĻ¤ā§‡ āĻ†āĻŦāĻžāĻ° āĻ˛ā§‡āĻ–āĻžāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ WAL-G-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ - āĻĄā§‡āĻ˛ā§āĻŸāĻž āĻ•āĻĒāĻŋāĨ¤ āĻĄā§‡āĻ˛ā§āĻŸāĻž āĻ•āĻĒāĻŋ āĻ“āĻ¯āĻŧāĻžāĻ˛-āĻœāĻŋ āĻ†āĻ—ā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĨā§‡āĻ•ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻĒā§ƒāĻˇā§āĻ āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§āĻ¨ā§ˇ WAL-G āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§‡āĻļ āĻ…āĻ¨ā§‡āĻ• āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡āĨ¤ WAL-G WAL-E āĻāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ…āĻ¨ā§‡āĻ• āĻĻā§āĻ°ā§āĻ¤āĨ¤

āĻ“āĻ¯āĻŧāĻžāĻ˛-āĻœāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¤āĻžāĻ° āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§‡: āĻ†āĻŽāĻ°āĻž āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ overclock. āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸ āĻŦāĻ•ā§āĻ¤ā§ƒāĻ¤āĻž

S3 āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻšāĻ¯āĻŧā§‡ āĻ‰āĻ ā§‡āĻ›ā§‡āĨ¤ S3 āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ˛ API āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž, āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸āĻžā§āĻšāĻ¯āĻŧāĻ¸ā§āĻĨāĻžāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¨āĻŽāĻ¨ā§€āĻ¯āĻŧ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻ‚āĻ—āĻ āĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ, āĻĒāĻžāĻŦāĻ˛āĻŋāĻ• āĻ°āĻŋāĻĄ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ¸āĻš, āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡ āĻ¤āĻĨā§āĻ¯ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻĻā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ˜āĻŸā§‡āĨ¤

S3 āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻŽāĻ¨ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ• āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻžāĻ‡āĻ­ā§‡āĻŸ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ†āĻœ āĻ†āĻŽāĻ°āĻž āĻ›ā§‹āĻŸ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻ¸āĻ‚āĻ—āĻ āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĻā§‡āĻ–āĻŦ - āĻŽāĻŋāĻ¨āĻŋāĻ“āĨ¤

āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• PostgreSQL āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° wal-g āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ āĻŋāĻ• āĻ†āĻ›ā§‡, āĻāĻŦāĻ‚ Minio S3 āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤

āĻŽāĻŋāĻ¨āĻŋāĻ“ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°

āĻŽāĻŋāĻ¨āĻŋāĻ“ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨

yum -y install yum-plugin-copr
yum copr enable -y lkiesow/minio
yum install -y minio

/etc/minio/minio.conf-āĻ AccessKey āĻāĻŦāĻ‚ SecretKey āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°ā§āĻ¨

vi /etc/minio/minio.conf

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ Minio āĻāĻ° āĻ†āĻ—ā§‡ nginx āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡

--address 127.0.0.1:9000

--address 0.0.0.0:9000

āĻŽāĻŋāĻ¨āĻŋāĻ“ āĻšāĻžāĻ˛ā§ āĻšāĻšā§āĻ›ā§‡

systemctl start minio

Minio āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡ āĻ¯āĻžāĻ¨ http://ip-Đ°Đ´Ņ€ĐĩŅ-ŅĐĩŅ€Đ˛ĐĩŅ€Đ°-minio:9000 āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ˛āĻ¤āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĒāĻŋāĻœāĻŋ-āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ)āĨ¤

āĻĄāĻŋāĻŦāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°

rpm-āĻ WAL-G āĻ†āĻŽāĻžāĻ° (Anton Patsev) āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ—āĻŋāĻŸāĻšāĻžāĻŦ, āĻĢā§‡āĻĄā§‹āĻ°āĻž āĻ¸āĻŋāĻ“āĻĒāĻŋāĻ†āĻ°.

āĻ¯āĻžāĻ° RPM-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¨ā§‡āĻ‡, āĻ…āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻžāĨ¤

wal-g āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°āĻŋ āĻ¸āĻš, rpm-āĻ āĻāĻŽāĻ¨ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž /etc/wal-gd/server-s3.conf āĻĢāĻžāĻ‡āĻ˛ āĻĨā§‡āĻ•ā§‡ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ†āĻŽāĻĻāĻžāĻ¨āĻŋ āĻ•āĻ°ā§‡āĨ¤

backup-fetch.sh
backup-list.sh
backup-push.sh
wal-fetch.sh
wal-g-run.sh
wal-push.sh

āĻ“āĻ¯āĻŧāĻžāĻ˛āĻ— āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§āĻ¨āĨ¤

yum -y install yum-plugin-copr
yum copr enable -y antonpatsev/wal-g
yum install -y wal-g

āĻ“āĻ¯āĻŧāĻžāĻ˛-āĻœāĻŋ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤

wal-g --version
wal-g version v0.2.14

āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡ /etc/wal-gd/server-s3.conf āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°ā§āĻ¨āĨ¤

āĻāĻ•āĻŸāĻŋ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻāĻŦāĻ‚ āĻĄā§‡āĻŸāĻž āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻĄā§‡āĻŸāĻž āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻāĻ•āĻ¤ā§āĻ°ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ PGDATA

#!/bin/bash

export PG_VER="9.6"

export WALE_S3_PREFIX="s3://pg-backups" # йаĐēĐĩŅ‚, ĐēĐžŅ‚ĐžŅ€Ņ‹Đš ĐŧŅ‹ ŅĐžĐˇĐ´Đ°Đģи в S3
export AWS_ACCESS_KEY_ID="xxxx" # AccessKey иС /etc/minio/minio.conf 
export AWS_ENDPOINT="http://ip-Đ°Đ´Ņ€ĐĩŅ-ŅĐĩŅ€Đ˛ĐĩŅ€Đ°-minio:9000"
export AWS_S3_FORCE_PATH_STYLE="true"
export AWS_SECRET_ACCESS_KEY="yyyy" # SecretKey иС /etc/minio/minio.conf

export PGDATA=/var/lib/pgsql/$PG_VER/data/
export PGHOST=/var/run/postgresql/.s.PGSQL.5432 # ĐĄĐžĐēĐĩŅ‚ Đ´ĐģŅ ĐŋОдĐēĐģŅŽŅ‡ĐĩĐŊиŅ Đē PostgreSQL

export WALG_UPLOAD_CONCURRENCY=2 # КоĐģ-вО ĐŋĐžŅ‚ĐžĐēОв Đ´ĐģŅ СаĐēĐ°Ņ‡Đēи 
export WALG_DOWNLOAD_CONCURRENCY=2 # КоĐģ-вО ĐŋĐžŅ‚ĐžĐēОв Đ´ĐģŅ ŅĐēĐ°Ņ‡Đ¸Đ˛Đ°ĐŊиŅ
export WALG_UPLOAD_DISK_CONCURRENCY=2 # КоĐģ-вО ĐŋĐžŅ‚ĐžĐēОв ĐŊĐ° диŅĐēĐĩ Đ´ĐģŅ СаĐēĐ°Ņ‡Đēи
export WALG_DELTA_MAX_STEPS=7
export WALG_COMPRESSION_METHOD=brotli # КаĐēОК ĐŧĐĩŅ‚Од ŅĐļĐ°Ņ‚иŅ иŅĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ŅŒ.

WAL-G āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ†āĻĒāĻ¨āĻŋ WALG_DELTA_MAX_STEPS āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°ā§āĻ¨ - āĻŦā§‡āĻ¸ āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻ˛ā§āĻŸāĻž āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻ•āĻ¤ āĻ§āĻžāĻĒ, āĻāĻŦāĻ‚ āĻĄā§‡āĻ˛ā§āĻŸāĻž āĻ•āĻĒāĻŋ āĻ¨ā§€āĻ¤āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻšāĻ¯āĻŧ āĻ†āĻĒāĻ¨āĻŋ āĻļā§‡āĻˇ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĄā§‡āĻ˛ā§āĻŸāĻž āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨, āĻ…āĻĨāĻŦāĻž āĻ†āĻĒāĻ¨āĻŋ āĻŽā§‚āĻ˛ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻ˛ā§āĻŸāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ā§ˇ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡ āĻ¯āĻ–āĻ¨ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻāĻ•āĻ‡ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻāĻ•āĻ‡ āĻĄā§‡āĻŸāĻž āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¤āĻ–āĻ¨ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĨ¤

āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤

yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.
noarch.rpm
yum install -y postgresql96 postgresql96-server mc

āĻ†āĻŽāĻ°āĻž āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ†āĻ°āĻŽā§āĻ­ āĻ•āĻ°āĻŋāĨ¤

/usr/pgsql-9.6/bin/postgresql96-setup initdb
Initializing database ... OK

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ 1 āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ›ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒā§‹āĻ¸ā§āĻŸāĻ—ā§āĻ°ā§‡āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 10 āĻāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ•āĻŽ āĻāĻŦāĻ‚ āĻĒā§‹āĻ¸ā§āĻŸāĻ—ā§āĻ°ā§‡āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 10 āĻāĻŦāĻ‚ āĻ¤āĻžāĻ° āĻŦā§‡āĻļāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ wal_level āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°āĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

wal_level = archive

āĻ†āĻ¸ā§āĻ¨ PostgreSQL āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻ¤āĻŋ 60 āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ WAL āĻ†āĻ°ā§āĻ•āĻžāĻ‡āĻ­ā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻ•āĻ°āĻŋāĨ¤ āĻĒā§āĻ°ā§‹āĻĄ-āĻ, āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ†āĻ°ā§āĻ•āĻžāĻ‡āĻ­_āĻŸāĻžāĻ‡āĻŽāĻ†āĻ‰āĻŸ āĻŽāĻžāĻ¨ āĻĨāĻžāĻ•āĻŦā§‡āĨ¤

archive_mode = on
archive_command = '/usr/local/bin/wal-push.sh %p'
archive_timeout = 60 # КаĐļĐ´Ņ‹Đĩ 60 ŅĐĩĐēŅƒĐŊĐ´ ĐąŅƒĐ´ĐĩŅ‚ вŅ‹ĐŋĐžĐģĐŊŅŅ‚ŅŅ ĐēĐžĐŧĐ°ĐŊĐ´Đ° archive_command.

PostgreSQL āĻļā§āĻ°ā§ āĻšāĻšā§āĻ›ā§‡

systemctl start postgresql-9.6

āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡, āĻ†āĻŽāĻ°āĻž āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ PostgreSQL āĻ˛āĻ—āĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–āĻŋ: (āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡ postgresql-Wed.log āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§āĻ¨)āĨ¤

tail -fn100 /var/lib/pgsql/9.6/data/pg_log/postgresql-Wed.log

āĻšāĻ˛ā§āĻ¨ psql-āĻ āĻ¯āĻžāĻ‡āĨ¤

su - postgres
psql

psql āĻ āĻāĻ•āĻŸāĻŋ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨

āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻŸā§‡āĻ¸ā§āĻŸ 1 āĻ āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨āĨ¤

create database test1;

āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ¯āĻŧ āĻ¸ā§āĻ¯ā§āĻ‡āĻš āĻ•āĻ°ā§āĻ¨āĨ¤

postgres=# c test1;

āĻ†āĻŽāĻ°āĻž āĻŸā§‡āĻŦāĻŋāĻ˛ indexing_table āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋāĨ¤

test1=# CREATE TABLE indexing_table(created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW());

āĻĄā§‡āĻŸāĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤

āĻ†āĻŽāĻ°āĻž āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§‡āĻļ āĻļā§āĻ°ā§. āĻ†āĻŽāĻ°āĻž 10-20 āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ›āĻŋāĨ¤

#!/bin/bash
# postgres
while true; do
psql -U postgres -d test1 -c "INSERT INTO indexing_table(created_at) VALUES (CURRENT_TIMESTAMP);"
sleep 60;
done

āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻ•āĻ°āĻ¤ā§‡ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻž.

su - postgres
/usr/local/bin/backup-push.sh

āĻ†āĻŽāĻ°āĻž āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻŸā§‡āĻ¸ā§āĻŸā§§-āĻ āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻ°ā§‡āĻ•āĻ°ā§āĻĄāĻ—ā§āĻ˛ā§‹ āĻĻā§‡āĻ–āĻŋ

select * from indexing_table;
2020-01-29 09:41:25.226198+
2020-01-29 09:42:25.336989+
2020-01-29 09:43:25.356069+
2020-01-29 09:44:25.37381+
2020-01-29 09:45:25.392944+
2020-01-29 09:46:25.412327+
2020-01-29 09:47:25.432564+
2020-01-29 09:48:25.451985+
2020-01-29 09:49:25.472653+
2020-01-29 09:50:25.491974+
2020-01-29 09:51:25.510178+

āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻšāĻ˛ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧāĨ¤

āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĻā§‡āĻ–ā§āĻ¨

/usr/local/bin/backup-list.sh

āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž

āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ WAL āĻ°ā§‹āĻ˛āĻŋāĻ‚ āĻ¸āĻš āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ°āĨ¤

Postgresql āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°ā§āĻ¨āĨ¤

/var/lib/pgsql/9.6/data āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻŽā§āĻ›ā§āĻ¨āĨ¤

āĻĒā§‹āĻ¸ā§āĻŸāĻ—ā§āĻ°ā§‡āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ /usr/local/bin/backup-fetch.sh āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¨āĨ¤

su - postgres
/usr/local/bin/backup-fetch.sh

āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻ¨āĻŋāĻˇā§āĻ•āĻžāĻļāĻ¨ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ.

āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻš /var/lib/pgsql/9.6/data āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°ā§‡ recovery.conf āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨āĨ¤

restore_command = '/usr/local/bin/wal-fetch.sh "%f" "%p"'

āĻ†āĻŽāĻ°āĻž PostgreSQL āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋāĨ¤ PostgreSQL āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ°āĻ­ā§āĻ•ā§āĻ¤ āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻŦā§‡, āĻāĻŦāĻ‚ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻ–āĻ¨āĻ‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ–ā§āĻ˛āĻŦā§‡āĨ¤

systemctl start postgresql-9.6
tail -fn100 /var/lib/pgsql/9.6/data/pg_log/postgresql-Wed.log

āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ°āĨ¤

āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŽāĻŋāĻ¨āĻŋāĻŸ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž recovery.conf-āĻ recovery_target_time āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻ¯ā§‹āĻ— āĻ•āĻ°āĻŋ - āĻ†āĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°āĻŋ āĻ•ā§‹āĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

restore_command = '/usr/local/bin/wal-fetch.sh "%f" "%p"'
recovery_target_time = '2020-01-29 09:46:25'

āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ°ā§‡āĻ° āĻĒāĻ°ā§‡, āĻŸā§‡āĻŦāĻŋāĻ˛ indexing_table āĻ¤āĻžāĻ•āĻžāĻ¨

 2020-01-29 09:41:25.226198+00
 2020-01-29 09:42:25.336989+00
 2020-01-29 09:43:25.356069+00
 2020-01-29 09:44:25.37381+00
 2020-01-29 09:45:25.392944+00

āĻ†āĻŽāĻ°āĻž PostgreSQL āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋāĨ¤ PostgreSQL āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ°āĻ­ā§āĻ•ā§āĻ¤ āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻŦā§‡, āĻāĻŦāĻ‚ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻ–āĻ¨āĻ‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ–ā§āĻ˛āĻŦā§‡āĨ¤

systemctl start postgresql-9.6
tail -fn100 /var/lib/pgsql/9.6/data/pg_log/postgresql-Wed.log

āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ•

āĻāĻ–āĻžāĻ¨ā§‡ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ 1GB āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ https://gist.github.com/ololobus/5b25c432f208d7eb31051a5f238dffff

1GB āĻĄā§‡āĻŸāĻž āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡ āĻŦāĻžāĻ˛āĻ¤āĻŋāĻ° āĻ†āĻ•āĻžāĻ°ā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤

postgres=# SELECT pg_size_pretty(pg_database_size('test1'));
pg_size_pretty
----------------
1003 MB

s4cmd āĻšāĻ˛ Amazon S3 āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡ āĻĨāĻžāĻ•āĻž āĻĄā§‡āĻŸāĻž āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĢā§āĻ°āĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ āĻŸā§āĻ˛āĨ¤ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋāĻŸāĻŋ āĻĒāĻžāĻ‡āĻĨāĻ¨ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāĻˇāĻžāĻ¯āĻŧ āĻ˛ā§‡āĻ–āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻāĻŸāĻŋ āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœ āĻāĻŦāĻ‚ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ‰āĻ­āĻ¯āĻŧ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

s4cmd āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

pip install s4cmd

LZ4

s4cmd --endpoint-url=http://ip-Đ°Đ´Ņ€ĐĩŅ-ŅĐĩŅ€Đ˛ĐĩŅ€Đ°-minio:9000 --access-key=xxxx --secret-key=yyyy du -r s3://pg-backups
840540822       s3://pg-backups/wal_005/
840 МБ в Ņ„ĐžŅ€ĐŧĐ°Ņ‚Đĩ lz4 Ņ‚ĐžĐģŅŒĐēĐž WAL ĐģĐžĐŗОв

ПоĐģĐŊŅ‹Đš ĐąĐĩĐēĐ°Đŋ Ņ lz4 - 1GB Đ´Đ°ĐŊĐŊŅ‹Ņ…
time backup_push.sh
real 0m18.582s

РаСĐŧĐĩŅ€ S3 йаĐēĐĩŅ‚Đ° ĐŋĐžŅĐģĐĩ ĐŋĐžĐģĐŊĐžĐŗĐž ĐąĐĩĐēĐ°ĐŋĐ°

581480085       s3://pg-backups/basebackups_005/
842374424   s3://pg-backups/wal_005
581 МБ СаĐŊиĐŧĐ°ĐĩŅ‚ ĐŋĐžĐģĐŊŅ‹Đš ĐąĐĩĐēĐ°Đŋ

LZMA

ПоŅĐģĐĩ ĐŗĐĩĐŊĐĩŅ€Đ°Ņ†Đ¸Đ¸ 1ГБ Đ´Đ°ĐŊĐŊŅ‹Ņ…
338413694       s3://pg-backups/wal_005/
338 ĐŧĐą ĐģĐžĐŗОв в Ņ„ĐžŅ€ĐŧĐ°Ņ‚Đĩ lzma

ВŅ€ĐĩĐŧŅ ĐŗĐĩĐŊĐĩŅ€Đ°Ņ†Đ¸Đ¸ ĐŋĐžĐģĐŊĐžĐŗĐž ĐąĐĩĐēĐ°ĐŋĐ°
time backup_push.sh
real    5m25.054s

РаСĐŧĐĩŅ€ йаĐēĐĩŅ‚Đ° в S3
270310495       s3://pg-backups/basebackups_005/
433485092   s3://pg-backups/wal_005/

270 ĐŧĐą СаĐŊиĐŧĐ°ĐĩŅ‚ ĐŋĐžĐģĐŊŅ‹Đš ĐąĐĩĐēĐ°Đŋ в Ņ„ĐžŅ€ĐŧĐ°Ņ‚Đĩ lzma

Brotli

ПоŅĐģĐĩ ĐŗĐĩĐŊĐĩŅ€Đ°Ņ†Đ¸Đ¸ 1ГБ Đ´Đ°ĐŊĐŊŅ‹Ņ…
459229886       s3://pg-backups/wal_005/
459 ĐŧĐą ĐģĐžĐŗОв в Ņ„ĐžŅ€ĐŧĐ°Ņ‚Đĩ brotli

ВŅ€ĐĩĐŧŅ ĐŗĐĩĐŊĐĩŅ€Đ°Ņ†Đ¸Đ¸ ĐŋĐžĐģĐŊĐžĐŗĐž ĐąĐĩĐēĐ°ĐŋĐ°
real    0m23.408s

РаСĐŧĐĩŅ€ йаĐēĐĩŅ‚Đ° в S3
312960942       s3://pg-backups/basebackups_005/
459309262   s3://pg-backups/wal_005/

312 ĐŧĐą СаĐŊиĐŧĐ°ĐĩŅ‚ ĐŋĐžĐģĐŊŅ‹Đš ĐąĐĩĐēĐ°Đŋ в Ņ„ĐžŅ€ĐŧĐ°Ņ‚Đĩ brotli

āĻšāĻžāĻ°ā§āĻŸā§‡ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§‡āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĨ¤

wal-g PostgreSQL āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤āĻŋ

āĻ†āĻĒāĻ¨āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›ā§‡āĻ¨, āĻŦā§āĻ°āĻŸāĻ˛āĻŋ āĻ†āĻ•āĻžāĻ°ā§‡ LZMA āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¤ā§āĻ˛āĻ¨ā§€āĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒāĻŸāĻŋ LZ4 āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻ¸āĻžā§āĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤

āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨-āĻ­āĻžāĻˇā§€ PostgreSQL āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧā§‡āĻ° āĻšā§āĻ¯āĻžāĻŸ: https://t.me/pgsql

āĻ†āĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ˛ā§‡ Github āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ°āĻ•āĻž āĻĻāĻŋāĻ¨ āĻĻāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡ wal-g

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨