Zuallererst bin ich ein Entwickler, kein DBA oder Sysadmin; bitte sei höflich :)
Ich arbeite an einem Anwendungsworkflow, bei dem eine einzelne Benutzeraktion komplexe Änderungen in der Datenbank auslöst - Erstellen von Hunderten von Datensätzen in einigen Tabellen, Aktualisieren von Hunderten von Datensätzen in anderen usw. Insgesamt ungefähr 12 Tabellen (von ~ 100) ) sind von dieser Aktion berührt. Aufgrund der Komplexität fällt es mir sehr schwer, alle Änderungen manuell zurückzusetzen, bevor ich einen weiteren Test durchführen kann. Während des größten Teils meiner Entwicklungszeit kann ich am Ende des Workflows einfach eine "ROLLBACK" -Anweisung einfügen. Wenn ich mich jedoch dem Festschreiben meiner Änderungen nähere, muss ich das Original testen.
Ich habe eine lokale Kopie der Produktionsdatenbank, mit der ich arbeiten kann. In meinem Fall ist das Sichern und Wiederherstellen zwischen Tests schneller als das Schreiben eines Skripts, um alle Änderungen rückgängig zu machen. Es ist schneller, verlangsamt mich aber immer noch sehr (die Wiederherstellung auf meinem veralteten Laptop dauert ungefähr 20 Minuten). Kann ich auf irgendeine Weise einen Schnappschuss des aktuellen Status der Datenbank speichern und dann schnell wiederherstellen?
Ich bin garantiert der einzige Benutzer auf dem System, und ich habe root-Zugriff. Der Datenbankspeicherauszug ist ~ 100 MB, wenn tar'ed und gzip'ed. Die PostgreSQL-Version ist 8.3.
Vielen Dank im Voraus für hilfreiche Ideen.