Hier ist das Setup: 1 kleine Amazon Linux (EBS-gestützte) EC2-Instanz mit 3 zusätzlichen Volumes. Dies ist sowohl ein Webserver als auch ein Datenbankserver. Ein Volume für Code, eines für das PostgreSQL (8.4) -Datenverzeichnis und ein Volume zum Speichern von WAL-Dateien aus PostgreSQL.
(1) Das Volume mit WAL-Dateien verfügt auch über eine Basissicherung des Datenverzeichnisses, die nach einem pg_start_backup () kopiert wird. Anschließend wird die kontinuierliche Archivausgabe von PostgreSQL (WAL-Dateien) gespeichert. Gibt es einen Grund, eine Synchronisierung durchzuführen und das Dateisystem einzufrieren, um einen Snapshot dieses Volumes zu erstellen (mit xfs_freeze, wenn es sich um XFS handelt, oder mit dmsetup, wenn es sich um EXT4 handelt)? Oder kann ich einfach einen Live-Schnappschuss machen? WAL-Dateien werden mit einer Rate von einer pro Minute versendet. Ist es möglich, dass ein Snapshot initiiert wird, während eine einzelne WAL-Datei kopiert wird, was zu beschädigten Daten führt?
(2) Das Volume, das das Live-PostgreSQL-Datenverzeichnis enthält, wird ebenfalls (täglich) gesichert. Bevor ich einen Snapshot dieses Volumes mache, gebe ich einen pg_dump aus und die resultierende SQL-Datei wird im Datenverzeichnis gespeichert. Ist es sinnvoll, Vorkehrungen zu treffen, um sicherzustellen, dass die tatsächlichen Datenbankdaten konsistent sind? Wäre es richtig anzunehmen, dass durch das Erstellen eines Live-Snapshots (a) Konfigurationsdateien (postgresql.conf, pg_hba.conf, pg_ident.conf) ordnungsgemäß gesichert und (b) die SQL-Dump-Datei gesichert werden. Das Sichern dieser beiden Dinge, SQL-Dump-Datei und Konfigurationsdateien, wäre der Hauptpunkt für das Snapshot-Erstellen dieses Volumes. Die Datenbank ist nicht sehr groß, daher macht es mir nichts aus, dass Datendateien diesen Schnappschuss aufblähen. Und in diesem Fall kann ich einfach einen Live-Schnappschuss machen - richtig?
(2a) Wäre es einfach besser, das Datenverzeichnis auf dem Root-Volume zu belassen und ein Sicherungsskript zu haben, das die SQL-Dump-Datei sowie die Konfigurationsdateien auf ein anderes Volume kopiert und dieses Volume nach Abschluss des Kopiervorgangs als Snapshot erstellt?
(3) Was das Volume mit dem Code betrifft, gibt es wieder einen Grund, das Dateisystem zu synchronisieren und einzufrieren? Oder kann nur ein Live-Schnappschuss gemacht werden? Diese Daten sollten ziemlich "statisch" sein.
(4) Ist dies ein solides Sicherungsschema? Das Root-Volume wird nicht regelmäßig gesichert, da ich nur ein Computer-Image behalten werde, nachdem es eingerichtet und konfiguriert wurde.
Vielen Dank