Leistungstest pg_probackup

Das Tool g_proabckup ist ein Backup- und Recovery-Management-Tool für die Postgresql-Datenbank

Einführungsartikel zu pg_probackup

Testzwecke:

Der Unterschied in der Sicherungsleistung zwischen dem Delta-Modus und dem Seitenmodus des Tools pg_probackup in diesem Test

Test-Vorbereitungen:

Bereiten Sie 1 Milliarde Daten vor (Datengröße 146G):

pgbench -i -s 10000 -U backup -h 127.0.0.1 pgbenchpgbench=# \dt             List of relations Schema |       Name       | Type  | Owner  --------+------------------+-------+-------- public | pgbench_accounts | table | backup public | pgbench_branches | table | backup public | pgbench_history  | table | backup public | pgbench_tellers  | table | backup(4 rows)
pgbench=# select count(*) from pgbench_accounts;   count    ------------ 1000000000(1 row)

Festplattennutzung:

[postgres @ ecos75r018-meijia-31-150 ~] $ df -hDateisystemgröße Verwendete Verfügbarkeit Verwenden Sie% Mounted ondevtmpfs 7,5 G 0 7,5 G 0% / devtmpfs 7,5 G 12 K 7,5 G 1% / dev / shmtmpfs 7,5 G 9,2 M 7,5 G 1 % / runtmpfs 7.5G 0 7.5G 0% / sys / fs / cgroup / dev / mapper / vg00-lv_root 20G 9.9G 8.8G 53% // dev / sda1 501M 335M 130M 73% / boot / dev / sda2 524M 12K 524M 1% / boot / efi / dev / sdb1 296G 147G 134G 53% / postgresql / data / dev / sdc1 296G 65M 281G 1% / postgresql / backuptmpfs 1,5G 0 1,5G 0% / run / user / 0 / dev / sdd1 296G 122G 160G 44% / postgresql / archive


Vollständige Sicherung (DELTA)

pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -j 4 -U probackup --stream -b voll

[postgres @ ecos75r018-meijia-31-150 postgresql] $ pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -j 4 -U probackup --stream -b full --temp-slotINFO: Sicherungsstart, pg_probackup Version: 2.4.8, Instanz: pgbak, Sicherungs-ID: QLOIL1, Sicherungsmodus: FULL, Wal-Modus: STREAM, Remote: false, Komprimierungsalgorithmus: keine, Komprimierungsstufe: 1WARNUNG: Diese PostgreSQL-Instanz wurde ohne Prüfsummen für Datenblöcke initialisiert . pg_probackup kann ohne sie keine Beschädigung von Datenblöcken erkennen. PGDATA mit Option '--data-Prüfsummen' neu initialisieren.INFO: PGDATA Größe: 146GBINFO: Übertragung von Datendateien startenINFO: Datendateien werden übertragen, verstrichene Zeit: 33m: 19s2020-12-21 16: 12: 20.388 CST [24069] LOG: Wiederherstellungspunkt "pg_probackup, backup_id QLOIL1" erstellt am 23 / C00001782020-12-21 16: 12: 20.388 CST [24069] STATEMENT: SELECT pg_catalog.

Zeit: 2020/12/21 15:39 ~ 2020/12/18 16:31


ps: Die folgenden Fehler treten auf und die Umgebungsvariablen der pg lib-Bibliothek müssen konfiguriert werden:

exportiere LD_LIBRARY_PATH = / usr / local / postgresql-12.4 / lib

FEHLER: Es konnte keine Verbindung zur Datenbank hergestellt werden. Postgres: Es konnte keine Verbindung zum Server hergestellt werden. Keine solche Datei oder kein solches Verzeichnis. Wird der Server lokal ausgeführt und akzeptiert Verbindungen auf dem Unix-Domain-Socket "/var/run/postgresql/.s.PGSQL.5432"?


Inkrementelle Datenaufbereitung:

Fügen Sie 100 Millionen inkrementelle Daten ein (ca. 15 G-Daten).

pgbench -i -s 1000 -U probackup -h 127.0.0.1 pgbench_inc

Festplattennutzung:

[postgres @ ecos75r018-meijia-31-150 postgresql] $ df -hDateisystemgröße Verwendete Verfügbarkeit Verwenden Sie% Mounted ondevtmpfs 7,5 G 0 7,5 G 0% / devtmpfs 7,5 G 12 K 7,5 G 1% / dev / shmtmpfs 7,5 G 9,1 M 7,5 G 1 % / runtmpfs 7.5G 0 7.5G 0% / sys / fs / cgroup / dev / mapper / vg00-lv_root 20G 9.9G 8.8G 53% // dev / sda1 501M 335M 130M 73% / boot / dev / sda2 524M 12K 524M 1% / boot / efitmpfs 1,5G 0 1,5G 0% / run / user / 0 / dev / sdb1 296G 162G 119G 58% / postgresql / data / dev / sdc1 296G 147G 134G 53% / postgresql / backup / dev / sdd1 296G 13G 268G 5% / postgresql / archive


Inkrementelle Sicherung (DELTA)

pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -j 4 -U probackup --stream -b delta --temp-slot

[postgres @ ecos75r018-meijia-31-150 postgresql] $ pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -j 4 -U probackup --stream -b delta --temp-slotINFO: Sicherungsstart, pg_probackup Version: 2.4.8, Instanz: pgbak, Sicherungs-ID: QLOMCV, Sicherungsmodus: DELTA, Wal-Modus: STREAM, Remote: false, Komprimierungsalgorithmus: keine, Komprimierungsstufe: 1WARNUNG: Diese PostgreSQL-Instanz wurde ohne Prüfsummen für Datenblöcke initialisiert . pg_probackup kann ohne sie keine Beschädigung von Datenblöcken erkennen. PGDATA mit der Option '--data-Prüfsummen' neu initialisieren.INFO: Übergeordnete Sicherung: QLOIL1INFO: PGDATA Größe: 161GBINFO: Übertragung von Datendateien startenINFO: Datendateien werden übertragen, verstrichene Zeit: 31m: 29s2020-12-21 17: 32: 00.310 CST [30184] LOG: Wiederherstellungspunkt "pg_probackup, backup_id QLOMCV" erstellt am 26 / C10001782020-12-21 17: 32: 00.310 CST [30184] STATEMENT:

Zeit: 2020/12/21 17:00 ~ 2020/12/21 17:35


Vollständige Sicherung (SEITE)

Ändern Sie die Datei postgresql.conf

vi postgresql.confarchive_command = 'pg_probackup-12 Archiv-Push -B / postgresql / backup --instance pgbak --wal-Dateiname =% f'

Löschen Sie die inkrementelle Bibliothek pgbench_inc

postgres = # drop database pgbench_inc;

pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -j 4 -U probackup -b voll

[postgres @ ecos75r018-meijia-31-150 ~] $ pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -j 4 -U probackup -b fullINFO: Sicherungsstart, pg_probackup Version: 2.4.8, Instanz: pgbak, Sicherungs-ID: QLILZE, Sicherungsmodus: FULL, Wal-Modus: ARCHIVE, Remote: false, Komprimierungsalgorithmus: keine, Komprimierungsstufe: 1WARNUNG: Diese PostgreSQL-Instanz wurde ohne Prüfsummen für Datenblöcke initialisiert. pg_probackup kann ohne sie keine Beschädigung von Datenblöcken erkennen. PGDATA mit der Option '--data-Prüfsummen' neu initialisieren. INFO: Warten Sie, bis das WAL-Segment / postgresql / backup / wal / pgbak / 0000000100000020000000AE archiviert ist. 38m: 52sINFO: Warten auf pg_stop_backup () INFO: pg_stop backup () erfolgreich ausgeführtvINFO: Synchronisieren von Sicherungsdateien mit diskINFO:

Zeit: 2020/12/22 08:57 ~ 2020/12/22 09:54


Inkrementelle Datenaufbereitung:

Fügen Sie 100 Millionen inkrementelle Daten ein (ca. 15 G-Daten).

pgbench -i -s 1000 -U probackup -h 127.0.0.1 pgbench_inc

Festplattennutzung:

[postgres @ ecos75r018-meijia-31-150 ~] $ df -hDateisystemgröße Verwendete Verfügbarkeit Verwenden Sie% Mounted ondevtmpfs 7,5 G 0 7,5 G 0% / devtmpfs 7,5 G 12 K 7,5 G 1% / dev / shmtmpfs 7,5 G 18 M 7,5 G 1% / runtmpfs 7.5G 0 7.5G 0% / sys / fs / cgroup / dev / mapper / vg00-lv_root 20G 9.9G 8.8G 53% // dev / sda1 501M 335M 130M 73% / boot / dev / sda2 524M 12K 524M 1 % / boot / efi / dev / sdb1 296G 162G 119G 58% / postgresql / data / dev / sdc1 296G 159G 122G 57% / postgresql / backuptmpfs 1,5G 0 1,5G 0% / run / user / 0 / dev / sdd1 296G 122G 159G 44% / postgresql / archive


Inkrementelle Sicherung (PAGE)

pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -b PAGE -U probackup

[postgres @ ecos75r018-meijia-31-150 ~] $ pg_probackup-12 backup -B / postgresql / backup / --instance pgbak -b Seite -j 4 -U probackupINFO: Sicherungsstart, pg_probackup Version: 2.4.8, Instanz: pgbak, Sicherungs-ID: QLPZ42, Sicherungsmodus: PAGE, Wal-Modus: ARCHIVE, Remote: false, Komprimierungsalgorithmus: keine, Komprimierungsstufe: 1WARNUNG: Diese PostgreSQL-Instanz wurde ohne Prüfsummen für Datenblöcke initialisiert. pg_probackup kann ohne sie keine Beschädigung von Datenblöcken erkennen. PGDATA mit der Option '--data-Prüfsummen' neu initialisieren. INFO: Warten Sie, bis das WAL-Segment / postgresql / backup / wal / pgbak / 0000000100000029000000C8 archiviert ist extrahiert, verstrichene Zeit: 142 secINFO: Startet die Übertragung von DatendateienINFO: Datendateien werden übertragen, verstrichene Zeit: 5m: 16sINFO:

Zeit: 2020/12/22 10:33 ~ 2020/12/22 10:44


Testergebnisse:

Diesmal werden nur der Testprozess und eines der Testergebnisse bereitgestellt:

Modus
DELTA
SEITE
Vollständige Sicherung

Datenvolumen: 146 G / 10 Milliarden

Gesamtzeit: 52min

Datenübertragung: 34min

Datenüberprüfung: 18min

Datenvolumen: 146 G / 10 Milliarden

Gesamtzeit: 57min

Datenübertragung: 39min

Datenüberprüfung: 18min

Inkrementelles Backup

Datenvolumen: 15G / 100 Millionen

Gesamtzeit: 35min

Datenübertragung: 31min

Datenüberprüfung: 4min

Datenvolumen: 15G / 100 Millionen

Gesamtzeit: 11min

Karte + Datenübertragung: 8min

Datenüberprüfung: 3min

Durch diesen Test wird festgestellt, dass sich der Delta-Modus und die vollständige Seitenmodus-Sicherung erheblich unterscheiden. In Bezug auf die inkrementelle Sicherung ist der Seitenmodus dreimal effizienter als die Delta-Modus-Sicherung (unter dieser Datenebene ist die Menge umso größer von Daten, je größer der Unterschied sein kann)


Ich denke du magst

Origin blog.51cto.com/15080020/2654733
Empfohlen
Rangfolge