Trước hết, tôi là nhà phát triển, không phải DBA hay sysadmin; làm ơn dịu dàng :)
Tôi đang làm việc trên một quy trình làm việc của ứng dụng trong đó một hành động của người dùng sẽ kích hoạt các thay đổi phức tạp trong cơ sở dữ liệu - tạo hàng trăm bản ghi trong một số bảng, cập nhật hàng trăm bản ghi trong các bảng khác, v.v. Tất cả, khoảng 12 bảng (trong số ~ 100 bảng ) bị xúc động bởi hành động này. Do sự phức tạp, tôi rất khó có thể hoàn nguyên thủ công tất cả các thay đổi trước khi tôi có thể chạy thử nghiệm khác. Trong phần lớn thời gian phát triển của mình, tôi chỉ có thể chèn câu lệnh "ROLLBACK" gần cuối quy trình làm việc, nhưng khi tôi đến gần để cam kết các thay đổi của mình, tôi cần kiểm tra thực tế.
Tôi có một bản sao cục bộ của cơ sở dữ liệu sản xuất để làm việc. Trong trường hợp của tôi, việc bán phá giá và khôi phục giữa các bài kiểm tra nhanh hơn so với việc viết một tập lệnh để hoàn tác tất cả các thay đổi. Nó nhanh hơn, nhưng nó vẫn làm tôi chậm đi rất nhiều (quá trình khôi phục mất khoảng 20 phút trên máy tính xách tay cũ của tôi). Có cách nào để tôi có thể lưu ảnh chụp nhanh về trạng thái hiện tại của cơ sở dữ liệu và sau đó nhanh chóng khôi phục nó không?
Tôi được đảm bảo là người dùng duy nhất trên hệ thống và tôi có quyền truy cập root. Kết xuất cơ sở dữ liệu là ~ 100MB khi tar'ed và gzip'ed. Phiên bản PostgreSQL là 8.3.
Cảm ơn trước cho bất kỳ ý tưởng hữu ích.