डेटा का बैकअप लें और उसे पुनर्स्थापित करें

यह पृष्ठ बताता है कि क्लाउड फायरस्टोर शेड्यूल्ड बैकअप सुविधा का उपयोग कैसे करें। अपने डेटा को एप्लिकेशन-स्तरीय डेटा भ्रष्टाचार या आकस्मिक डेटा विलोपन से बचाने के लिए बैकअप का उपयोग करें।

बैकअप आपको निर्दिष्ट डेटाबेस का दैनिक या साप्ताहिक बैकअप लेने के लिए बैकअप शेड्यूल कॉन्फ़िगर करने देता है। फिर आप डेटा को नए डेटाबेस में पुनर्स्थापित करने के लिए इन बैकअप का उपयोग कर सकते हैं।

बैकअप के बारे में

बैकअप एक समय में डेटाबेस की एक सतत प्रतिलिपि है। बैकअप में उस समय के सभी डेटा और इंडेक्स कॉन्फ़िगरेशन शामिल होते हैं। बैकअप में नीतियों को लाइव करने के लिए डेटाबेस का समय शामिल नहीं होता है। बैकअप स्रोत डेटाबेस के समान स्थान पर रहता है।

बैकअप में एक कॉन्फ़िगर करने योग्य अवधारण अवधि होती है और इसे तब तक संग्रहीत किया जाता है जब तक कि अवधारण अवधि समाप्त नहीं हो जाती है या जब तक आप बैकअप नहीं हटा देते हैं। स्रोत डेटाबेस को हटाने से संबंधित बैकअप स्वचालित रूप से नहीं हटते हैं।

क्लाउड फायरस्टोर डेटाबेस से संबंधित बैकअप और बैकअप शेड्यूल से संबंधित मेटाडेटा संग्रहीत करता है। क्लाउड फायरस्टोर इस मेटाडेटा को तब तक बनाए रखता है जब तक कि डेटाबेस के सभी बैकअप समाप्त नहीं हो जाते या हटा नहीं दिए जाते।

बैकअप बनाने या बनाए रखने से आपके लाइव डेटाबेस में पढ़ने या लिखने के प्रदर्शन पर कोई असर नहीं पड़ता है।

लागत

जब आप बैकअप का उपयोग करते हैं, तो आपसे निम्नलिखित के लिए शुल्क लिया जाता है:

  • प्रत्येक बैकअप द्वारा उपयोग की जाने वाली संग्रहण की मात्रा.
  • पुनर्स्थापना कार्रवाई के लिए, आपसे बैकअप के आकार के आधार पर शुल्क लिया जाएगा।

अधिक विवरण और सटीक दरों के लिए, मूल्य निर्धारण पृष्ठ देखें।

शुरू करने से पहले

इस सुविधा के लिए ब्लेज़ मूल्य निर्धारण योजना की आवश्यकता है।

आवश्यक भूमिकाएँ

बैकअप और बैकअप शेड्यूल को प्रबंधित करने के लिए आवश्यक अनुमतियाँ प्राप्त करने के लिए, अपने व्यवस्थापक से आपको निम्नलिखित में से एक या अधिक पहचान और पहुँच प्रबंधन भूमिकाएँ प्रदान करने के लिए कहें:

  • roles/datastore.owner : क्लाउड फायरस्टोर डेटाबेस तक पूर्ण पहुंच
  • निम्नलिखित भूमिकाएँ भी उपलब्ध हैं लेकिन Google क्लाउड प्लेटफ़ॉर्म कंसोल में दिखाई नहीं देती हैं। इन भूमिकाओं को निर्दिष्ट करने के लिए Google क्लाउड सीएलआई का उपयोग करें :

    • roles/datastore.backupsAdmin : बैकअप तक पहुंच पढ़ें और लिखें
    • roles/datastore.backupsViewer : बैकअप तक पहुंच पढ़ें
    • roles/datastore.backupSchedulesAdmin : बैकअप शेड्यूल तक पहुंच पढ़ें और लिखें
    • roles/datastore.backupSchedulesViewer : बैकअप शेड्यूल तक पहुंच पढ़ें
    • roles/datastore.restoreAdmin : पुनर्स्थापना कार्रवाई शुरू करने की अनुमति

बैकअप शेड्यूल बनाएं और प्रबंधित करें

नीचे दिए गए उदाहरण दर्शाते हैं कि बैकअप शेड्यूल कैसे सेट किया जाए। प्रत्येक डेटाबेस के लिए, आप एक दैनिक बैकअप शेड्यूल और एक साप्ताहिक बैकअप शेड्यूल तक कॉन्फ़िगर कर सकते हैं। आप सप्ताह के विभिन्न दिनों के लिए एकाधिक साप्ताहिक बैकअप शेड्यूल कॉन्फ़िगर नहीं कर सकते।

आप बैकअप के दिन का सटीक समय कॉन्फ़िगर नहीं कर सकते. बैकअप प्रत्येक दिन अलग-अलग समय पर लिया जाता है। साप्ताहिक बैकअप शेड्यूल के लिए, आप बैकअप लेने के लिए सप्ताह के दिन को कॉन्फ़िगर कर सकते हैं।

एक बैकअप शेड्यूल बनाएं

डेटाबेस के लिए बैकअप शेड्यूल बनाने के लिए, gcloud alpha firestore backups schedules create कमांड का उपयोग करें।

एक दैनिक बैकअप शेड्यूल बनाएं

दैनिक बैकअप शेड्यूल बनाने के लिए, --recurrence ध्वज को daily पर सेट करें:

gcloud alpha firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=daily \
--retention=RETENTION_PERIOD

निम्नलिखित को बदलें:

  • DATABASE_ID : बैकअप के लिए डेटाबेस की आईडी। डिफ़ॉल्ट डेटाबेस के लिए (default) पर सेट करें।
  • RETENTION_PERIOD : daily बैकअप पुनरावृत्ति के लिए, इसे 7 दिन ( 7d दिन) तक के मान पर सेट करें। यदि आप weekly बैकअप पुनरावृत्ति सेट करते हैं, तो इसे 14 सप्ताह ( 14w ) तक के मान पर सेट करें।

एक साप्ताहिक बैकअप शेड्यूल बनाएं

साप्ताहिक बैकअप शेड्यूल बनाने के लिए, --recurrence ध्वज को weekly पर सेट करें:

gcloud alpha firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=weekly \
--retention=RETENTION_PERIOD \
--day-of-week=DAY

निम्नलिखित को बदलें:

  • DATABASE_ID : बैकअप के लिए डेटाबेस की आईडी। डिफ़ॉल्ट डेटाबेस के लिए (default) पर सेट करें।
  • RETENTION_PERIOD : weekly बैकअप पुनरावृत्ति के लिए, इसे 14 सप्ताह ( 14w ) तक के मान पर सेट करें।
  • DAY : बैकअप लेने के लिए सप्ताह का दिन। निम्न में से किसी एक पर सेट करें:
    • रविवार के लिए SUN
    • सोमवार के लिए MON
    • मंगलवार के लिए TUE
    • बुधवार के लिए WED
    • गुरूवार के लिए THU
    • शुक्रवार के लिए FRI
    • शनिवार के लिए SAT

बैकअप शेड्यूल की सूची बनाएं

किसी डेटाबेस के लिए सभी बैकअप शेड्यूल सूचीबद्ध करने के लिए, gcloud alpha firestore backups schedules list कमांड का उपयोग करें। यह कमांड सभी बैकअप शेड्यूल के बारे में जानकारी लौटाता है।

gcloud alpha firestore backups schedules list \
--database='DATABASE_ID'

DATABASE_ID डेटाबेस की आईडी से बदलें। डिफ़ॉल्ट डेटाबेस के लिए (default) का उपयोग करें।

बैकअप शेड्यूल का वर्णन करें

बैकअप शेड्यूल के बारे में जानकारी प्राप्त करने के लिए, gcloud alpha firestore backups schedules describe कमांड का उपयोग करें:

gcloud alpha firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

निम्नलिखित को बदलें:

  • DATABASE_ID : बैकअप के लिए डेटाबेस की आईडी। डिफ़ॉल्ट डेटाबेस के लिए (default) पर सेट करें।
  • BACKUP_SCHEDULE_ID : बैकअप शेड्यूल की आईडी। जब आप सभी बैकअप शेड्यूल सूचीबद्ध करते हैं तो आप प्रत्येक बैकअप शेड्यूल की आईडी देख सकते हैं।

बैकअप शेड्यूल अपडेट करें

बैकअप शेड्यूल की अवधारण अवधि को अपडेट करने के लिए, gcloud alpha firestore backups schedules update कमांड का उपयोग करें:

gcloud alpha firestore backups schedules update \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
--retention=RETENTION_PERIOD

निम्नलिखित को बदलें:

  • DATABASE_ID : बैकअप के लिए डेटाबेस की आईडी। डिफ़ॉल्ट डेटाबेस के लिए (default) पर सेट करें।
  • BACKUP_SCHEDULE_ID : बैकअप शेड्यूल की आईडी। जब आप सभी बैकअप शेड्यूल सूचीबद्ध करते हैं तो आप प्रत्येक बैकअप शेड्यूल की आईडी देख सकते हैं।
  • RETENTION_PERIOD : यदि आप daily बैकअप पुनरावृत्ति सेट करते हैं, तो इसे 7 दिनों ( 7d ) तक के मान पर सेट करें। यदि आप weekly बैकअप पुनरावृत्ति सेट करते हैं, तो इसे 14 सप्ताह ( 14w ) तक के मान पर सेट करें।

बैकअप शेड्यूल हटाएँ

बैकअप शेड्यूल हटाने के लिए, gcloud alpha firestore backups schedules delete कमांड का उपयोग करें:

gcloud alpha firestore backups schedules delete \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

निम्नलिखित को बदलें:

  • DATABASE_ID : बैकअप के लिए डेटाबेस की आईडी। डिफ़ॉल्ट डेटाबेस के लिए (default) पर सेट करें।
  • BACKUP_SCHEDULE_ID : बैकअप शेड्यूल की आईडी। जब आप सभी बैकअप शेड्यूल सूचीबद्ध करते हैं तो आप प्रत्येक बैकअप शेड्यूल की आईडी देख सकते हैं।

ध्यान दें कि बैकअप शेड्यूल को हटाने से इस शेड्यूल द्वारा पहले से बनाए गए बैकअप नहीं हटेंगे। आप उनकी अवधारण अवधि के बाद उनके समाप्त होने की प्रतीक्षा कर सकते हैं, या बैकअप को मैन्युअल रूप से हटाने के लिए, बैकअप हटाएं देखें।

बैकअप प्रबंधित करें

बैकअप की सूची बनाएं

उपलब्ध बैकअप को सूचीबद्ध करने के लिए, gcloud alpha firestore backups list कमांड का उपयोग करें:

gcloud alpha firestore backups list \
--format="table(name, database, state)"

--format="table(name, database, state)" ध्वज आउटपुट को अधिक पठनीय प्रारूप में स्वरूपित करता है।

किसी विशिष्ट स्थान से केवल बैकअप सूचीबद्ध करने के लिए, --location ध्वज का उपयोग करें:

gcloud alpha firestore backups list \
--location=LOCATION \
--format="table(name, database, state)"

LOCATION क्लाउड फायरस्टोर स्थान के नाम से बदलें।

बैकअप का वर्णन करें

बैकअप के बारे में विवरण देखने के लिए, gcloud alpha firestore backups describe कमांड का उपयोग करें:

gcloud alpha firestore backups describe \
--location=LOCATION \
--backup=BACKUP_ID

बैकअप हटाएँ

बैकअप हटाने के लिए, gcloud alpha firestore backups delete कमांड का उपयोग करें:

gcloud alpha firestore backups delete \
--location=LOCATION \
--backup=BACKUP_ID

डेटाबेस बैकअप से डेटा पुनर्स्थापित करें

एक पुनर्स्थापना ऑपरेशन बैकअप से डेटा को नए क्लाउड फायरस्टोर डेटाबेस में लिखता है। पुनर्स्थापना ऑपरेशन शुरू करने के लिए, gcloud alpha firestore databases restore कमांड का उपयोग करें:

gcloud alpha firestore databases restore \
--source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \
--destination-database='DATABASE_ID'
  • PROJECT_ID : आपकी प्रोजेक्ट आईडी.
  • LOCATION : डेटाबेस बैकअप का स्थान और पुनर्स्थापित डेटा के लिए बनाए गए नए डेटाबेस का स्थान।
  • BACKUP_ID : बैकअप की आईडी। जब आप सभी बैकअप सूचीबद्ध करते हैं तो आप प्रत्येक बैकअप की आईडी देख सकते हैं।
  • DATABASE_ID : नए डेटाबेस के लिए एक डेटाबेस आईडी। आप उस डेटाबेस आईडी का उपयोग नहीं कर सकते जो पहले से उपयोग में है।

आउटपुट में metadata , name और response घटक शामिल होंगे:

metadata:
  '@type': type.googleapis.com/google.firestore.admin.v1.RestoreDatabaseMetadata
  backup: projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
  database: projects/PROJECT_ID/databases/DATABASE_ID
  operationState: PROCESSING
  progressPercentage:
    completedWork: '20'
    estimatedWork: '100'
  startTime: '2023-12-06T14:20:17.398325Z'
name: projects/PROJECT_ID/databases/DATABASE_ID/operations/operation_uuid
response:
  '@type': type.googleapis.com/google.firestore.admin.v1.Database
  createTime: '2023-12-06T14:20:17.398325Z'
  name: projects/PROJECT_ID/databases/DATABASE_ID
  ...

metadata फ़ील्ड में एक progressPercentage घटक शामिल है, जो अब तक पुनर्स्थापना की अनुमानित प्रगति का विवरण देता है, और एक operationState पुनर्स्थापना की समग्र स्थिति को निर्दिष्ट करता है।

इस जानकारी को दोबारा प्राप्त करने के लिए, gcloud firestore operations list उपयोग करें:

gcloud firestore operations list --database=DATABASE_ID

या, ऊपर वर्णित आउटपुट से name फ़ील्ड का उपयोग करके, gcloud firestore operations describe :

gcloud firestore operations describe OPERATION_NAME