Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

การกู้คืน PostgreSQL บน ObjectRocket: คู่มือ Backup & Recovery สมบูรณ์

เผยแพร่ครั้งแรกเมื่อวันที่ 6 กุมภาพันธ์ 2563 ที่ ObjectRocket.com/blog

การสำรองข้อมูลเป็นประจำและความสามารถในการกู้คืนเป็นส่วนสำคัญของการจัดการระบบฐานข้อมูล ที่ ObjectRocket บริษัท Rackspace Technology เราให้การสำรองข้อมูลรายวันพร้อมการเก็บรักษา 2 สัปดาห์โดยค่าเริ่มต้นบนผลิตภัณฑ์ฐานข้อมูลทั้งหมดของเรา

การกู้คืน PostgreSQL บน ObjectRocket: คู่มือ Backup & Recovery สมบูรณ์

ข้อเสนอ PostgreSQL® ของเราเพิ่มโบนัสซึ่งรวมถึงการเก็บถาวร Write Ahead Log (WAL) และความสามารถในการกู้คืนไปยังเวลาใดเวลาหนึ่งภายในหน้าต่างการเก็บรักษา เราเรียกสิ่งนี้โดยทั่วไปว่า Point-in-Time Recovery (PITR) และโพสต์นี้จะแนะนำวิธีการทำงานบนบริการของเรา

No-fuss backups

ส่วนประกอบหลักคือกระบวนการสำรองข้อมูลที่เป็นอัตโนมัติเต็มรูปแบบ ค่าใช้จ่ายของทุกอินสแตนซ์รวมถึงการสำรองข้อมูลรายวัน และเราเก็บสำรองข้อมูล 2 สัปดาห์ตลอดเวลา คุณสามารถดูเวลาการสำรองและสถานะของพวกมันในแดชบอร์ดของเราหรือผ่าน user interface (UI)

การกู้คืน PostgreSQL บน ObjectRocket: คู่มือ Backup & Recovery สมบูรณ์

ตัวเลือกการกู้คืนหลายแบบ

เราเสนอตัวเลือกหลายแบบในการกู้คืนการสำรอง:

  • กู้คืนไปยัง WAL update ล่าสุดที่เก็บไว้
  • กู้คืนไปยัง base backup เฉพาะเจาะจง
  • กู้คืนไปยังจุดเวลาเฉพาะเจาะจง

ในทุกกรณี เรากู้คืนข้อมูลของคุณไปยังอินสแตนซ์ PostgreSQL ใหม่ ณ จุดนี้ พื้นที่เก็บข้อมูลของอินสแตนซ์ต้องมากกว่าหรือเท่ากับพื้นที่เก็บข้อมูลบนอินสแตนซ์เดิม เราเรียกว่านี่คือ database fork ในอุดมการณ์ คุณควรกู้คืนข้อมูลไปยังอินสแตนซ์ฐานข้อมูลใหม่และแยกต่างหาก ดังนั้นอินสแตนซ์เก่าและใหม่จึงคงอยู่จนกว่าคุณจะลบอันหนึ่ง

Note: การกู้คืนตอนนี้เผยแพร่ผ่าน API ของเราเท่านั้น หากคุณสะดวกกับ API ดีแล้ว ไม่เช่นนั้น ทีมสนับสนุนของเราช่วยคุณผ่านกระบวนการได้ เราวางแผนเพิ่มการกู้คืนใน UI เร็วๆ นี้

กู้คืนไปยังเวลาล่าสุด

มาวิเคราะห์ฐานข้อมูลง่ายๆ ที่เก็บ timestamp และ sequence ทุกนาที ซึ่งช่วยให้เราเห็นตำแหน่งการสำรอง ขึ้นดูฐานข้อมูลของเราเร็วๆ เราเห็น timestamp ล่าสุดอยู่ที่ 16:00:58 (UTC)

การกู้คืน PostgreSQL บน ObjectRocket: คู่มือ Backup & Recovery สมบูรณ์

หากเราต้องการกู้คืนไปยังข้อมูลล่าสุดในฐานข้อมูลนี้ เราสามารถทำได้โดยให้ instance id ของอินสแตนซ์ต้นทางไปยังการเรียกสร้างอินสแตนซ์ใหม่

การกู้คืน PostgreSQL บน ObjectRocket: คู่มือ Backup & Recovery สมบูรณ์

หลังจากเรากู้คืนอินสแตนซ์แล้ว เราสามารถเชื่อมต่อและตรวจสอบ timestamp ล่าสุดได้

การกู้คืน PostgreSQL บน ObjectRocket: คู่มือ Backup & Recovery สมบูรณ์

ตามที่คุณเห็น ข้อมูลทั้งหมดอยู่ที่นั่น และเรามีอินสแตนซ์ Postgres ใหม่ อัปเดตเต็มที่ไปยังอินสแตนซ์ Postgres ต้นทาง คุณอาจต้องการใช้สถานการณ์นี้เพื่อสร้าง test database จากข้อมูลปัจจุบันเพื่อทดลองฟีเจอร์ใหม่โดยไม่มีความเสี่ยงต่อข้อมูลต้นฉบับ

กู้คืนไปยัง backup เฉพาะ

ตัวเลือกที่สองคือกู้คืนจาก base backup เมื่อแสดงรายการ backup แต่ละตัวมี id ของตัวเองที่เราสามารถใช้กู้คืนได้:

การกู้คืน PostgreSQL บน ObjectRocket: คู่มือ Backup & Recovery สมบูรณ์

ในตัวอย่าง backup ก่อนหน้า คุณเห็นว่ามันถูกสร้างที่ 15:36:15 (UTC) เพื่อกู้คืนไปยัง backup นี้ที่แน่นอน ให้เพิ่ม backup id ไปยังการเรียกสร้าง

การกู้คืน PostgreSQL บน ObjectRocket: คู่มือ Backup & Recovery สมบูรณ์

หลังจากอินสแตนซ์โหลดเสร็จ เราสามารถเห็นว่า backup มีข้อมูลและ timestamps จากก่อนเวลา backup 15:36:15

การกู้คืน PostgreSQL บน ObjectRocket: คู่มือ Backup & Recovery สมบูรณ์

กู้คืนไปยังเวลาเฉพาะ

วิธีสุดท้ายคือเพียงระบุเวลาที่คุณต้องการกู้คืน ทำได้โดยให้ source instance ID และ restore time:

การกู้คืน PostgreSQL บน ObjectRocket: คู่มือ Backup & Recovery สมบูรณ์

ที่นี่ เราต้องการกู้คืนไปยัง 15:53:00 หลังจากกู้คืนเสร็จ คุณสามารถเห็นได้ว่าข้อมูลมีอยู่จนถึงเวลานั้นเท่านั้น

การกู้คืน PostgreSQL บน ObjectRocket: คู่มือ Backup & Recovery สมบูรณ์

หากคุณมองย้อนกลับไปที่ภาพก่อนหน้า คุณอาจเห็นว่าเรามี timestamp อีกตัวที่ 15:53:00 แต่มันเกิดขึ้นที่มากกว่า .8 วินาทีหลัง 15:53:00 ดังนั้นอินสแตนซ์จะไม่รวมมัน คุณสามารถได้รายละเอียดมากกับ Point in Time recovery เพื่อเป้าหมายเวลาและสถานะในฐานข้อมูล

อะไรจะมาต่อ?

ฟังก์ชันการสำรองและกู้คืนทั้งหมดอยู่ที่นั่นให้คุณใช้วันนี้ อย่างไรก็ตาม เราเพิ่มฟีเจอร์และความสามารถมากขึ้นเรื่อยๆ บอกเราถ้าคุณมีคำขอ

เรียนรู้เพิ่มเติมเกี่ยวกับบริการข้อมูลของ Rackspace

ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถคลิก Sales Chat เพื่อแชททันทีและเริ่มสนทนาได้

คลิกที่นี่เพื่อดู The Rackspace Cloud Terms of Service