Vorsicht: Datenbank-Backup- und Wiederherstellungsprozess beim Testen

Ich stehe kurz davor, einen Prozess zum Importieren einer ganzen Menge an Inhalten zu testen, möchte aber sicherstellen, dass ich im Falle von Problemen korrekt zurücksetzen kann.

Ich betreibe eine externe PostgreSQL-Instanz, daher meine Überlegung, dass ich das Discourse-Rails-Instance in Docker nicht wirklich sichern muss, sondern nur die Datenbank über die folgenden Schritte:

BACKUP:

  1. ./launcher stop app
  2. pg_dump -U username -p 12345 -W -F p databasename | xz > ~/backup/database/$(date +"%d-%m-%Y_%H.%M.%S").databasename.pgsql.xz
  3. ./launcher start app
  4. ### CONTENT IMPORT ###

Falls etwas schiefgeht, RESTORE:

  1. ./launcher stop app
  2. xzcat ~/backup/database/DATE.databasename.pgsql.xz | psql -U username -p 12345 -W databasename
  3. ./launcher start app

Und alles sollte wieder normal und funktionsfähig sein… oder?

Wahrscheinlich gibt es eine eingebaute, leicht wiederherstellbare Option, die getestet und unterstützt wird und nur ein paar Klicks oder einen einzelnen Befehl in der Kommandozeile erfordert.

Wenn deine Methode nicht funktioniert, bist du auf dich allein gestellt.

Wie ich bereits erwähnt habe, bezieht sich dies auf eine externe PGSQL-Datenbank, da ich nicht die Dockerisierte Version verwende. Leider funktioniert die normale Sicherungs-/Wiederherstellungsmethode bei mir nicht (wahrscheinlich, weil ich auf dem großen DB-Server eine etwas neuere Version von PGSQL verwende).

Ah, ja. Wenn du pg11 verwendest, bist du auf dich allein gestellt. Wenn du pg10 auf einer externen Datenbank betreibst, sollte es in Ordnung sein.

Aber teste es und schau, ob es funktioniert.

PG11 und PG12 werden im Backup- und Wiederherstellungsprozess sehr bald unterstützt. Bleiben Sie dran.

Hallo. Werden sie jetzt unterstützt?

Das sind sie! Das Upgrade war vor einigen Monaten.

Danke! Zur Klärung: Würde das Wiederherstellen eines Backups auf einer Discourse-Website (mit Inhalten) alle Daten aus der externen PostgreSQL-Datenbankinstanz (RDS) vollständig löschen? Wenn die Wiederherstellung fehlschlägt oder die Verbindung unterbrochen wird, wären die RDS-Daten dann beschädigt?

Es werden alle Daten aus der Discourse-Datenbank gelöscht, jedoch keine anderen. Falls die Wiederherstellung fehlschlägt, bleiben die vorhandenen Daten erhalten.