Enviroment: 800GB Postgres-Datenbank (OpenSuse)Postgres wiederherstellen/Update mit WAL auf geklonte VM statt mit basebackup
Normale Wiederherstellung-Prozess:
- Sie pg_basebackup wiederherstellen müssen (von sagen wir: jeden Samstag)
- Sie haben WAL Dateien von letzten Samstag bis heute
- Zuerst: Wiederherstellen mit pg_basebackup
- Dann: Aktualisieren Sie die Datenbank mit WAL -Dateien, um die neuesten Daten zu haben. (Mit recovery.conf)
Meine Idee:
Warum jede Woche großen pg_basebackup tun und kopiert 800GB über das Internet zu NAS, wenn Sie jeden Tag inkrementelle Backups mit einiger Backup-Software.
- wiederherstellen kompletten Datenbank-vm (Stand gestern)
- hinzufügen WAL-Dateien (Restore) auf dem aktuellen Stand diesen vm-Klon zu bringen.
Jetzt habe ich getan:
- I eine vm restauriert
recovery.conf
restore_command = 'cp /.../%f% p' erstellen
rcpostgresql start
ich folgende Fehler:
2017-05-09 16:46:07.780 CEST [2938]: [1-1] user=,db=,app=,client= LOG: database system was shut down at 2017-05-09 16:45:47 CEST
2017-05-09 16:46:07.780 CEST [2938]: [2-1] user=,db=,app=,client= LOG: starting archive recovery
2017-05-09 16:46:08.588 CEST [2952]: [1-1] user=[unknown],db=[unknown],app=[unknown],client=[local] LOG: connection received: host=[local]
2017-05-09 16:46:08.588 CEST [2952]: [2-1] user=postgres,db=postgres,app=[unknown],client=[local] FATAL: the database system is starting up
2017-05-09 16:46:09.391 CEST [2938]: [3-1] user=,db=,app=,client= LOG: restored log file "000000010000070D0000008A" from archive
2017-05-09 16:46:09.434 CEST [2938]: [4-1] user=,db=,app=,client= LOG: contrecord is requested by 70D/8A000028
2017-05-09 16:46:09.434 CEST [2938]: [5-1] user=,db=,app=,client= LOG: invalid primary checkpoint record
2017-05-09 16:46:09.434 CEST [2938]: [6-1] user=,db=,app=,client= LOG: invalid secondary checkpoint link in control file
2017-05-09 16:46:09.434 CEST [2938]: [7-1] user=,db=,app=,client= PANIC: could not locate a valid checkpoint record
2017-05-09 16:46:09.434 CEST [2936]: [4-1] user=,db=,app=,client= LOG: startup process (PID 2938) was terminated by signal 6: Aborted
2017-05-09 16:46:09.434 CEST [2936]: [5-1] user=,db=,app=,client= LOG: aborting startup due to startup process failure
Nach pg_resetxlog die nächste WAL-Datei wiederhergestellt wurde. und ich bekomme denselben Fehler (mit dem nächsten wal-datei-name)
Gibt es eine Möglichkeit, das funktioniert zu bekommen?
Solange Sie anrufen 'pg_start_backup()' und 'pg_stop_backup()', Ihre inkrementelle Sicherung umfasst alle Datenbankdateien, und Sie haben alle WAL-Dateien aus pg_start_backup sollte dies funktionieren. –