เผยแพร่ครั้งแรกเมื่อวันที่ 6 กุมภาพันธ์ 2020 ที่ ObjectRocket.com/blog
การสำรองข้อมูลอย่างสม่ำเสมอและความสามารถในการกู้คืนเป็นส่วนสำคัญของการดูแลระบบฐานข้อมูล ที่ ObjectRocket ซึ่งเป็นบริษัท Rackspace Technology เราให้บริการสำรองข้อมูลรายวันพร้อมการเก็บรักษาเป็นเวลาสองสัปดาห์โดยค่าเริ่มต้นสำหรับผลิตภัณฑ์ฐานข้อมูลทั้งหมดของเรา

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

ตัวเลือกการคืนค่าหลายรายการ
เรามีตัวเลือกมากมายในการกู้คืนข้อมูลสำรอง:
- กู้คืนเป็นการอัปเดต WAL ที่เก็บไว้ล่าสุด
- กู้คืนเป็นข้อมูลสำรองพื้นฐานเฉพาะ
- คืนค่าไปยังจุดที่กำหนดในเวลา
ในทุกกรณี เราจะกู้คืนข้อมูลของคุณไปยังอินสแตนซ์ PostgreSQL ใหม่ ในขณะนี้ พื้นที่จัดเก็บอินสแตนซ์ต้องมากกว่าหรือเท่ากับพื้นที่จัดเก็บในอินสแตนซ์ดั้งเดิม เราเรียกสิ่งนี้ว่าฐานข้อมูลส้อม ตามหลักการแล้ว คุณควรกู้คืนข้อมูลของคุณไปยังอินสแตนซ์ฐานข้อมูลใหม่และแยกกัน ดังนั้นทั้งอินสแตนซ์เก่าและใหม่จะยังคงใช้งานได้จนกว่าคุณจะลบออก
หมายเหตุ: ขณะนี้การคืนค่าเปิดเผยผ่าน API ของเราเท่านั้น หากคุณพอใจกับ API ก็ดี มิฉะนั้น ทีมสนับสนุนของเราสามารถช่วยคุณได้ตลอดกระบวนการ เราวางแผนที่จะเพิ่มการคืนค่าใน UI ในไม่ช้า
คืนค่าเป็นเวลาล่าสุด
มาวิเคราะห์ฐานข้อมูลอย่างง่ายที่จัดเก็บการประทับเวลาและลำดับทุกนาที ซึ่งช่วยให้เราดูตำแหน่งสำรองได้ เมื่อดูฐานข้อมูลของเราอย่างรวดเร็ว เราเห็นการประทับเวลาล่าสุดคือ 16:00:58 (UTC)

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

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

อย่างที่คุณเห็น ข้อมูลทั้งหมดอยู่ที่นั่น และเรามีอินสแตนซ์ Postgres ใหม่ ซึ่งอัปเดตอย่างสมบูรณ์เป็นอินสแตนซ์ Postgres ต้นทาง คุณอาจต้องการใช้สถานการณ์นี้เพื่อสร้างฐานข้อมูลทดสอบจากข้อมูลปัจจุบันเพื่อทดสอบกับคุณลักษณะใหม่โดยไม่ต้อง ความเสี่ยงที่จะส่งผลกระทบต่อข้อมูลเดิม
กู้คืนเป็นข้อมูลสำรองเฉพาะ
ตัวเลือกที่สองคือการกู้คืนจากข้อมูลสำรองพื้นฐาน เมื่อแสดงรายการข้อมูลสำรอง แต่ละรายการจะมี id . ของตัวเอง ที่เราสามารถใช้กู้คืนได้:

ในตัวอย่างข้อมูลสำรองก่อนหน้านี้ คุณเห็นว่าถ่ายเมื่อเวลา 15:36:15 น. (UTC) หากต้องการกู้คืนข้อมูลสำรองนี้ เพียงเพิ่มรหัสสำรองลงในการโทรที่สร้าง

หลังจากโหลดอินสแตนซ์เสร็จสิ้น เราจะเห็นว่าข้อมูลสำรองมีข้อมูลและการประทับเวลาก่อนเวลาสำรอง 15:36:15 น.

คืนค่าเป็นเวลาที่กำหนด
วิธีสุดท้ายคือการระบุเวลาที่คุณต้องการกู้คืน ดำเนินการให้สำเร็จโดยระบุ sourceinstance ID และเวลากู้คืน:

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

หากคุณมองย้อนกลับไปที่ภาพก่อนหน้า คุณอาจพบว่าเรามีการประทับเวลาอื่นเวลา 15:53:00 น. แต่การประทับเวลานั้นเกิดขึ้นที่เพียง .8 วินาทีหลังจาก 15:53:00 น. ดังนั้นอินสแตนซ์จะไม่รวมภาพดังกล่าว คุณจะได้รับรายละเอียดที่ละเอียดมากด้วยการกู้คืนคะแนนในเวลา เพื่อกำหนดเป้าหมายเวลาและสถานะในฐานข้อมูล
ถัดไปคืออะไร
ฟังก์ชันการสำรองและกู้คืนข้อมูลทั้งหมดนั้นมีให้คุณใช้งานได้แล้ววันนี้ อย่างไรก็ตาม เราเพิ่มคุณสมบัติและความสามารถเพิ่มเติมอย่างต่อเนื่อง แจ้งให้เราทราบหากคุณมีคำขอใดๆ
เรียนรู้เพิ่มเติมเกี่ยวกับ Rackspace Data Services
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถคลิกแชทขาย เพื่อแชทตอนนี้และเริ่มการสนทนา
คลิกที่นี่เพื่อดูข้อกำหนดในการให้บริการของ Rackspace Cloud