7
เป็นไปได้หรือไม่ที่จะสร้าง / กู้คืนสแน็ปช็อตฐานข้อมูลด้วย PostgreSQL อย่างรวดเร็ว
ก่อนอื่นฉันเป็นนักพัฒนาไม่ใช่ DBA หรือดูแลระบบ กรุณาอ่อนโยน :) ฉันกำลังทำงานกับเวิร์กโฟลว์แอปพลิเคชันซึ่งการกระทำของผู้ใช้เพียงคนเดียวจะทำให้เกิดการเปลี่ยนแปลงที่ซับซ้อนในฐานข้อมูล - สร้างหลายร้อยระเบียนในบางตารางปรับปรุงหลายร้อยระเบียนในที่อื่น ๆ ฯลฯ ทั้งหมดในทั้งหมดประมาณ 12 ตาราง (จาก ~ 100 ) ได้รับการสัมผัสจากการกระทำนี้ เนื่องจากความซับซ้อนมันยากมากสำหรับฉันที่จะย้อนกลับการเปลี่ยนแปลงทั้งหมดด้วยตนเองก่อนที่ฉันจะสามารถทำการทดสอบอื่นได้ ในช่วงเวลาส่วนใหญ่ของฉันฉันสามารถแทรกคำสั่ง "ย้อนกลับ" ใกล้ถึงจุดสิ้นสุดของเวิร์กโฟลว์ แต่เมื่อฉันเข้าใกล้การยอมรับการเปลี่ยนแปลงของฉันฉันต้องทดสอบของจริง ฉันมีสำเนาฐานข้อมูลการผลิตเพื่อให้ทำงานด้วย ในกรณีของฉันการดัมพ์และการกู้คืนระหว่างการทดสอบนั้นเร็วกว่าการเขียนสคริปต์เพื่อเลิกทำการเปลี่ยนแปลงทั้งหมด มันเร็วกว่า แต่ก็ยังทำให้ฉันช้าลงมาก (การคืนค่าใช้เวลาประมาณ 20 นาทีสำหรับแล็ปท็อปอายุของฉัน) มีวิธีใดบ้างที่ฉันสามารถบันทึกสแน็ปช็อตสถานะปัจจุบันของฐานข้อมูลแล้วคืนค่าได้อย่างรวดเร็ว ฉันรับประกันว่าจะเป็นผู้ใช้คนเดียวในระบบและฉันมีสิทธิ์เข้าถึงรูต ดัมพ์ฐานข้อมูลคือ ~ 100MB เมื่อ tar'ed และ gzip'ed เวอร์ชัน PostgreSQL คือ 8.3 ขอบคุณล่วงหน้าสำหรับความคิดที่เป็นประโยชน์