ดำเนินการคืนค่าข้อมูลด้วยตนเอง

เกี่ยวข้องกับ Firestore รุ่น Standard และ Firestore รุ่น Enterprise

หน้านี้อธิบายวิธีกู้คืนข้อมูลในข้อมูลสำรองไปยังฐานข้อมูลที่มีชื่อเดียวกับฐานข้อมูลต้นทางของข้อมูลสำรอง ก่อนอ่านหน้านี้ คุณควรทำความคุ้นเคยกับการสำรองและกู้คืนข้อมูล

การกู้คืนในตำแหน่งเดิม

การกู้คืนแบบแทนที่ช่วยให้คุณกู้คืนฐานข้อมูลจากข้อมูลสำรองไปยังฐานข้อมูลต้นทางที่สร้างข้อมูลสำรองได้ในขณะที่ฐานข้อมูลเดิมยังคงอยู่ การกู้คืนแบบแทนที่ช่วยให้คุณไม่ต้องเปลี่ยนเส้นทางการรับส่งข้อมูลหรือสร้างฐานข้อมูลที่มีชื่ออื่น

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

ทำการกู้คืนแบบแทนที่

หากต้องการกู้คืนแบบแทนที่ ให้ทำตามขั้นตอนต่อไปนี้

  1. ระบุข้อมูลสำรองที่จะใช้สำหรับการดำเนินการกู้คืน
  2. ลบฐานข้อมูลที่มีอยู่
  3. ใช้ข้อมูลสำรองและรหัสฐานข้อมูลของฐานข้อมูลที่ลบไปแล้วเพื่อดำเนินการกู้คืนให้เสร็จสมบูรณ์
ข้อควรระวัง: หากแอปของคุณใช้ไลบรารีของไคลเอ็นต์ Cloud Firestore ในโหมดเนทีฟ และไคลเอ็นต์ใช้แคชออฟไลน์ การกู้คืนแบบแทนที่อาจล้างการเขียนไปยังฐานข้อมูลที่กู้คืนแทนที่จะทิ้งการเขียน สถานการณ์นี้อาจเกิดขึ้นได้หากไคลเอ็นต์ที่เชื่อมต่อกับฐานข้อมูลที่ถูกลบออฟไลน์ และในขณะที่ออฟไลน์ แคชจะสะสมการเขียนในเวลาที่คุณทำการกู้คืนแบบแทนที่

ก่อนเริ่มต้น

เราขอแนะนำให้ทำตามขั้นตอนต่อไปนี้ก่อนเริ่มกระบวนการกู้คืนแบบแทนที่

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

  • ใช้ gcloud firestore indexes composite list เพื่อดึงข้อมูลรายการดัชนีแบบผสม

        gcloud firestore indexes composite list --database=DATABASE_ID
    

    แทนที่ DATABASE_ID ด้วยรหัสของฐานข้อมูล

  • ใช้ gcloud firestore indexes fields list เพื่อดึงรายการการยกเว้นดัชนีแบบช่องเดียว (ในตัว)

        gcloud firestore indexes fields list --database=DATABASE_ID
    

ทำการกู้คืนแบบแทนที่

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

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

  1. ใช้คำสั่ง gcloud firestore backups list เพื่อระบุข้อมูลสำรองที่จะใช้สำหรับการดำเนินการกู้คืนและจดชื่อทรัพยากรไว้ ชื่อทรัพยากรจะใช้รูปแบบต่อไปนี้

        projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
    
  2. ใช้คำสั่ง gcloud firestore databases delete เพื่อลบฐานข้อมูลที่มีอยู่

        gcloud firestore databases delete --database='DATABASE_ID'
    

    แทนที่ DATABASE_ID ด้วยรหัสฐานข้อมูล

  3. รออย่างน้อย 5 นาทีหลังจากลบฐานข้อมูลเพื่อให้รหัสฐานข้อมูลพร้อมใช้งานอีกครั้ง เริ่มการดำเนินการกู้คืนโดยใช้คำสั่ง gcloud firestore databases restore ดังนี้

    gcloud firestore databases restore \
    --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \
    --destination-database='DATABASE_ID'
    

    แทนที่ DATABASE_ID ด้วยรหัสฐานข้อมูล

ขั้นตอนถัดไป