{"id":55884,"date":"2020-01-31T00:00:00","date_gmt":"2020-01-30T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/znakomstvo-s-wal-g-sistemoj-bekapirovaniya-postgresql"},"modified":"2020-02-18T14:04:03","modified_gmt":"2020-02-18T11:04:03","slug":"znakomstvo-s-wal-g-sistemoj-bekapirovaniya-postgresql","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/znakomstvo-s-wal-g-sistemoj-bekapirovaniya-postgresql","title":{"rendered":"Introduktion till wal-g backup systemet f\u00f6r PostgreSQL","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\">WAL-G<\/a><\/noindex> \u2014 ett enkelt och effektivt verktyg f\u00f6r att s\u00e4kerhetskopiera PostgreSQL till molnet. Med sin grundl\u00e4ggande funktionalitet \u00e4r det en arvtagare till det popul\u00e4ra verktyget <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-e\/wal-e\">WAL-E<\/a><\/noindex>, men omarbetat i Go. En viktig ny funktion i WAL-G \u00e4r delta-kopior. Delta-kopior <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\">WAL-G<\/a><\/noindex> lagrar filens sidor som har \u00e4ndrats sedan den senaste s\u00e4kerhetskopian. WAL-G implementerar en hel del teknologier f\u00f6r att parallellisera s\u00e4kerhetskopieringar. WAL-G fungerar mycket snabbare \u00e4n WAL-E.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Du kan l\u00e4sa mer om hur wal-g fungerar i artikeln: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/415817\/\">\u00d6ka s\u00e4kerhetskopieringen. F\u00f6rel\u00e4sning fr\u00e5n Yandex<\/a><\/noindex> <\/p>\n<p><\/p>\n<p>S3-lagringsprotokollet har blivit popul\u00e4rt f\u00f6r att lagra data. En av f\u00f6rdelarna med S3 \u00e4r m\u00f6jligheten att f\u00e5 \u00e5tkomst via API, vilket m\u00f6jligg\u00f6r flexibel interaktion med lagringen, inklusive offentlig \u00e5tkomst f\u00f6r l\u00e4sning, medan uppdatering av informationen i lagringen endast sker av auktoriserade personer.<\/p>\n<p><\/p>\n<p>Det finns flera b\u00e5de \u00f6ppna och privata implementeringar av lagringsl\u00f6sningar som arbetar med S3-protokollet. Idag kommer vi att titta p\u00e5 en popul\u00e4r l\u00f6sning f\u00f6r att organisera sm\u00e5 lagringssystem \u2014 Minio.<\/p>\n<p><\/p>\n<p>F\u00f6r att testa wal-g r\u00e4cker en PostgreSQL-server och Minio anv\u00e4nds som ers\u00e4ttning f\u00f6r S3.<\/p>\n<p><\/p>\n<h2 id=\"server-minio\">Minio-server<\/h2>\n<p><\/p>\n<p>Installation av Minio<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">yum -y install yum-plugin-copr\nyum copr enable -y lkiesow\/minio\nyum install -y minio<\/code><\/pre>\n<p><\/p>\n<p>\u00c4ndra AccessKey och SecretKey i \/etc\/minio\/minio.conf<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vi \/etc\/minio\/minio.conf<\/code><\/pre>\n<p><\/p>\n<p>Om du inte planerar att anv\u00e4nda Nginx f\u00f6re Minio m\u00e5ste du \u00e4ndra<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">--address 127.0.0.1:9000<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"plaintext\">--address 0.0.0.0:9000<\/code><\/pre>\n<p><\/p>\n<p>Starta Minio<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">systemctl start minio<\/code><\/pre>\n<p><\/p>\n<p>G\u00e5 till Minios webbgr\u00e4nssnitt <noindex><a rel=\"nofollow\" href=\"http:\/\/ip-%D0%B0%D0%B4%D1%80%D0%B5%D1%81-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0-minio:9000\">http:\/\/ip-adressen-till-minio-servern:9000<\/a><\/noindex> och skapa en bucket (till exempel, pg-backups).<\/p>\n<p><\/p>\n<h2 id=\"server-bd\">DB-server<\/h2>\n<p><\/p>\n<p>Jag bygger WAL-G i rpm (Anton Patsev). <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/patsevanton\/wal-g-rpm\">Github<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/copr.fedorainfracloud.org\/coprs\/antonpatsev\/wal-g\/\">Fedora COPR<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>F\u00f6r dem utan RPM-baserat system, anv\u00e4nd den officiella <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g#installation\">instruktionen<\/a><\/noindex> installationsanvisningen.<\/p>\n<p><\/p>\n<p>Tillsammans med bin\u00e4rfilerna f\u00f6r wal-g i rpm finns skript som importerar variabler fr\u00e5n filen \/etc\/wal-g.d\/server-s3.conf.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">backup-fetch.sh\nbackup-list.sh\nbackup-push.sh\nwal-fetch.sh\nwal-g-run.sh\nwal-push.sh<\/code><\/pre>\n<p><\/p>\n<p>Installera wal-g.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">yum -y install yum-plugin-copr\nyum copr enable -y antonpatsev\/wal-g\nyum install -y wal-g<\/code><\/pre>\n<p><\/p>\n<p>Kontrollera versionen av wal-g.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">wal-g --version\nwal-g version v0.2.14<\/code><\/pre>\n<p><\/p>\n<p>Redigera \/etc\/wal-g.d\/server-s3.conf efter dina behov.<\/p>\n<p><\/p>\n<p>Konfigurationsfiler och datakataloger som anv\u00e4nds av databasens kluster lagras traditionellt tillsammans i datakatalogen f\u00f6r klustret, som vanligtvis kallas <code>PGDATA<\/code><\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">#!\/bin\/bash\n\nexport PG_VER=&quot;9.6&quot;\n\nexport WALE_S3_PREFIX=&quot;s3:\/\/pg-backups&quot; # \u0431\u0430\u043a\u0435\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0432 S3\nexport AWS_ACCESS_KEY_ID=&quot;xxxx&quot; # AccessKey \u0438\u0437 \/etc\/minio\/minio.conf \nexport AWS_ENDPOINT=&quot;http:\/\/ip-\u0430\u0434\u0440\u0435\u0441-\u0441\u0435\u0440\u0432\u0435\u0440\u0430-minio:9000&quot;\nexport AWS_S3_FORCE_PATH_STYLE=&quot;true&quot;\nexport AWS_SECRET_ACCESS_KEY=&quot;yyyy&quot; # SecretKey \u0438\u0437 \/etc\/minio\/minio.conf\n\nexport PGDATA=\/var\/lib\/pgsql\/$PG_VER\/data\/\nexport PGHOST=\/var\/run\/postgresql\/.s.PGSQL.5432 # \u0421\u043e\u043a\u0435\u0442 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a PostgreSQL\n\nexport WALG_UPLOAD_CONCURRENCY=2 # \u041a\u043e\u043b-\u0432\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0434\u043b\u044f \u0437\u0430\u043a\u0430\u0447\u043a\u0438 \nexport WALG_DOWNLOAD_CONCURRENCY=2 # \u041a\u043e\u043b-\u0432\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f\nexport WALG_UPLOAD_DISK_CONCURRENCY=2 # \u041a\u043e\u043b-\u0432\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0434\u043b\u044f \u0437\u0430\u043a\u0430\u0447\u043a\u0438\nexport WALG_DELTA_MAX_STEPS=7\nexport WALG_COMPRESSION_METHOD=brotli # \u041a\u0430\u043a\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 \u0441\u0436\u0430\u0442\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.\n<\/code><\/pre>\n<p><\/p>\n<p>Vid inst\u00e4llning av WAL-G anger du WALG_DELTA_MAX_STEPS \u2013 det maximala antal steg som delta-backup kan avvika fr\u00e5n basbackups, och anges policyn f\u00f6r delta-kopia. Antingen g\u00f6r du en kopia med den senaste befintliga delta, eller s\u00e5 g\u00f6r du en delta fr\u00e5n den ursprungliga fullst\u00e4ndiga backupen. Detta beh\u00f6vs i fall d\u00e4r en och samma komponent i databasen alltid f\u00f6r\u00e4ndras, samma data \u00e4ndras st\u00e4ndigt.<\/p>\n<p><\/p>\n<p>Installera databasen.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">yum install -y https:\/\/download.postgresql.org\/pub\/repos\/yum\/reporpms\/EL-7-x86_64\/pgdg-redhat-repo-latest.noarch.rpm\nyum install -y postgresql96 postgresql96-server mc<\/code><\/pre>\n<p><\/p>\n<p>Vi initierar databasen.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">\/usr\/pgsql-9.6\/bin\/postgresql96-setup initdb\nInitializing database ... OK<\/code><\/pre>\n<p><\/p>\n<p>Om du testar p\u00e5 1 server, beh\u00f6ver du omkonfigurera parametern wal_level till archive f\u00f6r PostgreSQL versioner mindre \u00e4n 10, och replica f\u00f6r PostgreSQL version 10 och \u00e4ldre.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">wal_level = archive<\/code><\/pre>\n<p><\/p>\n<p>Vi g\u00f6r backup av WAL-arkiven var 60:e sekund med hj\u00e4lp av PostgreSQL sj\u00e4lv. P\u00e5 produktion kommer du ha ett annat v\u00e4rde f\u00f6r archive_timeout.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">archive_mode = on\narchive_command = '\/usr\/local\/bin\/wal-push.sh %p'\narchive_timeout = 60 # Kommandot archive_command kommer att k\u00f6ras var 60:e sekund.<\/code><\/pre>\n<p><\/p>\n<p>Starta PostgreSQL<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">systemctl start postgresql-9.6<\/code><\/pre>\n<p><\/p>\n<p>I en separat konsol tittar vi p\u00e5 PostgreSQL-loggar f\u00f6r eventuella fel: (byt ut postgresql-Wed.log mot den aktuella).<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">tail -fn100 \/var\/lib\/pgsql\/9.6\/data\/pg_log\/postgresql-Wed.log<\/code><\/pre>\n<p><\/p>\n<p>Logga in i psql.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">su - postgres\npsql<\/code><\/pre>\n<p><\/p>\n<p>Skapa en databas i psql.<\/p>\n<p><\/p>\n<p>Skapa en tabell i databasen test1.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">create database test1;<\/code><\/pre>\n<p><\/p>\n<p>Byt till databasen test.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">postgres=# c test1;<\/code><\/pre>\n<p><\/p>\n<p>Skapa tabellen indexing_table.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">test1=# CREATE TABLE indexing_table(created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW());<\/code><\/pre>\n<p><\/p>\n<p>L\u00e4gg till data.<\/p>\n<p><\/p>\n<p>Starta datainf\u00f6rseln. V\u00e4nta 10-20 minuter.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">#!\/bin\/bash\n# postgres\nwhile true; do\npsql -U postgres -d test1 -c &quot;INSERT INTO indexing_table(created_at) VALUES (CURRENT_TIMESTAMP);&quot;\nsleep 60;\ndone<\/code><\/pre>\n<p><\/p>\n<p>Se till att g\u00f6ra en fullst\u00e4ndig backup.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">su - postgres\n\/usr\/local\/bin\/backup-push.sh<\/code><\/pre>\n<p><\/p>\n<p>Titta p\u00e5 poster i tabellen i databasen test1<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">select * from indexing_table;\n2020-01-29 09:41:25.226198+\n2020-01-29 09:42:25.336989+\n2020-01-29 09:43:25.356069+\n2020-01-29 09:44:25.37381+\n2020-01-29 09:45:25.392944+\n2020-01-29 09:46:25.412327+\n2020-01-29 09:47:25.432564+\n2020-01-29 09:48:25.451985+\n2020-01-29 09:49:25.472653+\n2020-01-29 09:50:25.491974+\n2020-01-29 09:51:25.510178+<\/code><\/pre>\n<p><\/p>\n<p>Raden \u00e4r den aktuella tiden.<\/p>\n<p><\/p>\n<h3 id=\"smotrim-spisok-polnyh-bekapov\">Titta p\u00e5 listan \u00f6ver fullst\u00e4ndiga backuper<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">\/usr\/local\/bin\/backup-list.sh<\/code><\/pre>\n<p><\/p>\n<h3 id=\"testirovanie-vosstanovleniya\">Testa \u00e5terst\u00e4llning<\/h3>\n<p><\/p>\n<h4 id=\"polnoe-vosstanovlenie-s-nakatyvaem-vseh-dostupnyh-wal\">Full \u00e5terst\u00e4llning med applicering av alla tillg\u00e4ngliga WAL.<\/h4>\n<p><\/p>\n<p>Stoppa PostgreSQL.<\/p>\n<p><\/p>\n<p>Ta bort allt fr\u00e5n mappen \/var\/lib\/pgsql\/9.6\/data.<\/p>\n<p><\/p>\n<p>K\u00f6r skriptet \/usr\/local\/bin\/backup-fetch.sh som anv\u00e4ndaren postgres.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">su - postgres\n\/usr\/local\/bin\/backup-fetch.sh<\/code><\/pre>\n<p><\/p>\n<p>Backuputvinning slutf\u00f6rd.<\/p>\n<p><\/p>\n<p>L\u00e4gg till recovery.conf i mappen \/var\/lib\/pgsql\/9.6\/data med f\u00f6ljande inneh\u00e5ll.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">restore_command = '\/usr\/local\/bin\/wal-fetch.sh &quot;%f&quot; &quot;%p&quot;'<\/code><\/pre>\n<p><\/p>\n<p>Starta PostgreSQL. PostgreSQL kommer att p\u00e5b\u00f6rja \u00e5terst\u00e4llningsprocessen fr\u00e5n arkiverade WAL, och f\u00f6rst d\u00e4refter \u00f6ppnas databasen. <\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">systemctl start postgresql-9.6\ntail -fn100 \/var\/lib\/pgsql\/9.6\/data\/pg_log\/postgresql-Wed.log<\/code><\/pre>\n<p><\/p>\n<h4 id=\"vosstanovlenie-na-opredelennoe-vremya\">\u00c5terst\u00e4llning till en specifik tid.<\/h4>\n<p><\/p>\n<p>Om vi vill \u00e5terst\u00e4lla databasen till en viss tidpunkt, l\u00e4gger vi till parametern recovery_target_time i recovery.conf - vi anger vilken tid vi vill \u00e5terst\u00e4lla databasen till.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">restore_command = '\/usr\/local\/bin\/wal-fetch.sh &quot;%f&quot; &quot;%p&quot;'\nrecovery_target_time = '2020-01-29 09:46:25'<\/code><\/pre>\n<p><\/p>\n<p>Efter \u00e5terst\u00e4llning tittar vi p\u00e5 tabellen indexing_table<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\"> 2020-01-29 09:41:25.226198+00\n 2020-01-29 09:42:25.336989+00\n 2020-01-29 09:43:25.356069+00\n 2020-01-29 09:44:25.37381+00\n 2020-01-29 09:45:25.392944+00<\/code><\/pre>\n<p><\/p>\n<p>Starta PostgreSQL. PostgreSQL kommer att p\u00e5b\u00f6rja \u00e5terst\u00e4llningsprocessen fr\u00e5n arkiverade WAL, och f\u00f6rst d\u00e4refter \u00f6ppnas databasen. <\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">systemctl start postgresql-9.6\ntail -fn100 \/var\/lib\/pgsql\/9.6\/data\/pg_log\/postgresql-Wed.log<\/code><\/pre>\n<p><\/p>\n<h3 id=\"testirovanie\">Testning<\/h3>\n<p><\/p>\n<p>Vi genererar en 1GB databas enligt beskrivningen h\u00e4r <noindex><a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/ololobus\/5b25c432f208d7eb31051a5f238dffff\">https:\/\/gist.github.com\/ololobus\/5b25c432f208d7eb31051a5f238dffff<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Vi beg\u00e4r storleken p\u00e5 bucketen efter att ha genererat 1GB data.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">postgres=# SELECT pg_size_pretty(pg_database_size('test1'));\npg_size_pretty\n----------------\n1003 MB<\/code><\/pre>\n<p><\/p>\n<p>s4cmd \u2014 ett gratis kommandoradsverktyg f\u00f6r att hantera data som finns i Amazon S3-lagring. Verktyget \u00e4r skrivet i programspr\u00e5ket Python och kan d\u00e4rf\u00f6r anv\u00e4ndas p\u00e5 b\u00e5de Windows och Linux.<\/p>\n<p><\/p>\n<p>Vi installerar s4cmd<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">pip install s4cmd<\/code><\/pre>\n<p><\/p>\n<h4 id=\"lz4\">LZ4<\/h4>\n<p><\/p>\n<pre><code class=\"plaintext\">s4cmd --endpoint-url=http:\/\/ip-adress-till-server-minio:9000 --access-key=xxxx --secret-key=yyyy du -r s3:\/\/pg-backups\n840540822       s3:\/\/pg-backups\/wal_005\/\n840 MB i lz4 format endast WAL-loggar\n\nFull backup med lz4 - 1GB data\ntime backup_push.sh\nreal 0m18.582s\n\nStorleken p\u00e5 S3-bucket efter full backup\n\n581480085       s3:\/\/pg-backups\/basebackups_005\/\n842374424   s3:\/\/pg-backups\/wal_005\n581 MB tar upp full backup<\/code><\/pre>\n<p><\/p>\n<h4 id=\"lzma\">LZMA<\/h4>\n<p><\/p>\n<pre><code class=\"plaintext\">Efter generering av 1GB data\n338413694       s3:\/\/pg-backups\/wal_005\/\n338 MB loggar i lzma format\n\nTid f\u00f6r full backupgenerering\ntime backup_push.sh\nreal    5m25.054s\n\nStorleken p\u00e5 bucketen i S3\n270310495       s3:\/\/pg-backups\/basebackups_005\/\n433485092   s3:\/\/pg-backups\/wal_005\/\n\n270 MB tar upp full backup i lzma format<\/code><\/pre>\n<p><\/p>\n<h4 id=\"brotli\">Brotli<\/h4>\n<p><\/p>\n<pre><code class=\"plaintext\">Efter generering av 1GB data\n459229886       s3:\/\/pg-backups\/wal_005\/\n459 MB loggar i brotli format\n\nTid f\u00f6r full backupgenerering\nreal    0m23.408s\n\nStorleken p\u00e5 bucketen i S3\n312960942       s3:\/\/pg-backups\/basebackups_005\/\n459309262   s3:\/\/pg-backups\/wal_005\/\n\n312 MB tar upp full backup i brotli format\n<\/code><\/pre>\n<p><\/p>\n<p>J\u00e4mf\u00f6relse av resultaten i diagrammet.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Introduktion till wal-g backup systemet f\u00f6r PostgreSQL\" src=\"\/wp-content\/uploads\/2020\/01\/eeb4f6ae485f086cba126de323f900db.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Som vi ser \u00e4r Brotli j\u00e4mf\u00f6rbar i storlek med LZMA, men backupen utf\u00f6rs p\u00e5 tiden f\u00f6r LZ4.<\/p>\n<p><\/p>\n<p>Chatt f\u00f6r den ryskspr\u00e5kiga PostgreSQL-gemenskapen: <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/pgsql\">https:\/\/t.me\/pgsql<\/a><\/noindex><\/p>\n<p><\/p>\n<p>S\u00e4tt g\u00e4rna en stj\u00e4rna p\u00e5 Github om du anv\u00e4nder <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\">wal-g<\/a><\/noindex><\/p>\n<p>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/486188\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>WAL-G \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PostgreSQL \u0432 \u043e\u0431\u043b\u0430\u043a\u0430. \u041f\u043e \u0441\u0432\u043e\u0435\u0439 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u043e\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 WAL-E, \u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u043d\u0430 Go. \u041d\u043e \u0432 WAL-G \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u0432\u0430\u0436\u043d\u0430\u044f \u043d\u043e\u0432\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u2014 \u0434\u0435\u043b\u044c\u0442\u0430-\u043a\u043e\u043f\u0438\u0438. \u0414\u0435\u043b\u044c\u0442\u0430-\u043a\u043e\u043f\u0438\u0438 WAL-G \u0445\u0440\u0430\u043d\u044f\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0444\u0430\u0439\u043b\u043e\u0432, \u0438\u0437\u043c\u0435\u043d\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438. \u0412 WAL-G \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u043f\u043e \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u044e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":55885,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-55884","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"WAL-G \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PostgreSQL \u0432 \u043e\u0431\u043b\u0430\u043a\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/znakomstvo-s-wal-g-sistemoj-bekapirovaniya-postgresql\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 wal-g \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0431\u0435\u043a\u0430\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PostgreSQL | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"WAL-G \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PostgreSQL \u0432 \u043e\u0431\u043b\u0430\u043a\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/znakomstvo-s-wal-g-sistemoj-bekapirovaniya-postgresql\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-30T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:04:03+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Introduktion till wal-g s\u00e4kerhetskopieringssystemet f\u00f6r PostgreSQL | ProHoster","description":"WAL-G \u2014 ett enkelt och effektivt verktyg f\u00f6r s\u00e4kerhetskopiering av PostgreSQL i molnet.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/znakomstvo-s-wal-g-sistemoj-bekapirovaniya-postgresql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 wal-g \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0431\u0435\u043a\u0430\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PostgreSQL | ProHoster","og:description":"WAL-G \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PostgreSQL \u0432 \u043e\u0431\u043b\u0430\u043a\u0430.","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/znakomstvo-s-wal-g-sistemoj-bekapirovaniya-postgresql","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-30T21:00:00+00:00","article:modified_time":"2020-02-18T11:04:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55884","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:35:40","updated":"2022-09-28 13:58:06","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/55884","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=55884"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/55884\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/55885"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=55884"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=55884"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=55884"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}