Physischer Typ
Sicherungen auf Dateisystemebene (oder physische Sicherungen) sind im Wesentlichen nur Snapshots von allen Dateien in der Datenbank. Aber es ist nicht so einfach, wie es scheinen mag, weil die Dateien in einer Datenbank normalerweise ständig überschrieben und verändert werden. Bei der Sicherung von PostgreSQL-Datenbanken geht es um zwei Hauptmethoden: Kontinuität bei der Archivierung und Point-in-Time-Recovery. Beide sind so konzipiert, dass sie sich gegenseitig ergänzen – deshalb ist es wichtig zu wissen, wie sie beide funktionieren.
Um Konsistenz zu gewährleisten, müssen Sicherungen einen Weg haben, um sicher zu sein, dass der Sicherungsprozess entweder die gesamte Datenbank kopiert oder nichts verändert und die Datenbank so belässt, wie sie ist. Deshalb hat PostgreSQL eine Write-Ahead-Logging-Technologie – Write-Ahead-Log (WAL) Segmente sind genau die Segmente, die während des laufenden Archivierungsvorgangs gesichert werden. Die Informationen, die in diesen Dateien gespeichert werden, ermöglichen sowohl eine einfachere Wiederherstellung nach einem Ausfall als auch eine bessere Datenkonsistenz.
Es ist nicht ungewöhnlich, dass Datenbanken während der Sicherung des Dateisystems einige Änderungen erfahren, aber einige dieser Änderungen können einige Teile der Sicherung beschädigen oder sie als Ganzes irreparabel machen. Um solche fatalen Konsequenzen zu verhindern, hat PostgreSQL eine Low-Level-API für den physischen Sicherungsvorgang. Die Verwendung von „pg_start_backups()“ und „pg_stop_backup()“ vor beziehungsweise nach dem Prozess stellt sicher, dass keine gefährlichen Änderungen an der Datenbank während des Sicherungsprozesses vorgenommen werden. Gleichzeitig müssen Sie zwischen diesen beiden Befehlen noch alle WAL-Segmente generieren.