ฉันมีมุมมองที่เป็นรูปธรรมซึ่งยากต่อการคำนวณซึ่งฉันต้องการสำรองและเรียกคืนโดยใช้ข้อมูลที่จัดเก็บจริงไม่ใช่โดยการคำนวณใหม่
เป็นไปได้ใน PostgreSQL 9.4?
(ทางเลือกคือการสร้างตารางจริง แต่ยากที่จะ "รีเฟรช")
ฉันมีมุมมองที่เป็นรูปธรรมซึ่งยากต่อการคำนวณซึ่งฉันต้องการสำรองและเรียกคืนโดยใช้ข้อมูลที่จัดเก็บจริงไม่ใช่โดยการคำนวณใหม่
เป็นไปได้ใน PostgreSQL 9.4?
(ทางเลือกคือการสร้างตารางจริง แต่ยากที่จะ "รีเฟรช")
คำตอบ:
ไม่ได้จริงๆ คุณต้องจำไว้ว่าคำสั่ง pg_dump สร้างคำสั่ง CREATE TABLE และ INSERT อย่างง่าย ๆ อย่างมีประสิทธิภาพดังนั้นเมื่อรัน pg_restore คุณเพียงแค่เรียกใช้คำสั่ง CREATE และ INSERT บนเซิร์ฟเวอร์และการแทรกข้อมูลจะต้องใช้คำสั่ง "INSERT INTO MATERIALIZED VIEW" ที่ไม่สมเหตุสมผลเมื่อรับข้อมูลโดยทางลัดอาจเป็นอันตรายต่อ "ความสมบูรณ์" ของมุมมอง - คุณสามารถแทรกข้อมูลที่ไม่ถูกต้องในกระบวนการกู้คืนด้วยตนเองที่มุมมองจะไม่กลับมาเป็นอย่างอื่น ดังนั้นฉันสงสัยว่า PostgreSQL จะให้การสนับสนุนการเรียกคืนข้อมูลมุมมอง materialized ด้วยตนเองลงในฐานข้อมูลโดยตรง
หากคุณต้องการสำรองข้อมูลจริงฉันขอแนะนำให้ใช้ตารางแทน materialized view และเรียกใช้คำสั่ง DELETE FROM / INSERT INTO ที่กำหนดเวลาไว้ในตาราง
copy
เพื่อสร้างการถ่ายโอนข้อมูลข้อความธรรมดา (หรือยูทิลิตี้การส่งออกอื่น ๆ ) ไม่แน่ใจว่าจะกู้คืนได้อย่างไร