Pertama-tama, saya seorang pengembang, bukan DBA atau sysadmin; harap lembut :)
Saya sedang mengerjakan alur kerja aplikasi di mana tindakan pengguna tunggal akan memicu perubahan kompleks dalam database - membuat ratusan catatan di beberapa tabel, memperbarui ratusan catatan di yang lain, dll. Semua dalam semua, sekitar 12 tabel (dari ~ 100 ) tersentuh oleh tindakan ini. Karena kerumitannya, sangat sulit bagi saya untuk secara manual mengembalikan semua perubahan sebelum saya dapat menjalankan tes lain. Selama sebagian besar waktu pengembangan saya, saya cukup menyisipkan pernyataan "ROLLBACK" di dekat akhir alur kerja, tetapi ketika saya hampir melakukan perubahan, saya perlu menguji hal yang sebenarnya.
Saya memiliki salinan lokal dari basis data produksi untuk dikerjakan. Dalam kasus saya, membuang dan memulihkan antar tes lebih cepat daripada menulis skrip untuk membatalkan semua perubahan. Ini lebih cepat, tetapi masih banyak memperlambat saya (pemulihan membutuhkan sekitar 20 menit pada laptop saya yang sudah tua). Apakah ada cara saya dapat menyimpan snapshot dari kondisi database saat ini, dan kemudian segera mengembalikannya?
Saya dijamin menjadi satu-satunya pengguna di sistem, dan saya memiliki akses root. Database dump ~ 100MB ketika tar'ed dan gzip'ed. Versi PostgreSQL adalah 8.3.
Terima kasih sebelumnya atas ide-ide yang bermanfaat.