डेटा का बैक अप लें और उसे रीस्टोर करें

इस पेज पर Cloud Firestore के शेड्यूल किए गए बैकअप की सुविधा को इस्तेमाल करने का तरीका बताया गया है. अपने डेटा को ऐप्लिकेशन-लेवल के डेटा खराबी या गलती से डेटा मिटाए जाने से सुरक्षित रखने के लिए बैकअप का उपयोग करें.

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

बैकअप के बारे में जानकारी

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

बैकअप को रखरखाव के लिए कॉन्फ़िगर किया जा सकता है. इन्हें तब तक सेव रखा जाता है, जब तक डेटा के रखरखाव की समयसीमा खत्म नहीं हो जाती या जब तक बैकअप मिटाया नहीं जाता. सोर्स डेटाबेस को मिटाने से, उससे जुड़े बैकअप अपने-आप नहीं मिटते.

Cloud Firestore किसी डेटाबेस से जुड़े बैकअप और बैकअप शेड्यूल से जुड़ा मेटाडेटा सेव करता है. Cloud Firestore इस मेटाडेटा को तब तक बनाए रखता है, जब तक डेटाबेस के सभी बैकअप की समयसीमा खत्म नहीं हो जाती या उन्हें मिटा नहीं दिया जाता.

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

शुल्क

बैकअप का इस्तेमाल करने पर, आपसे यह शुल्क लिया जाता है:

  • हर बैकअप के लिए इस्तेमाल की गई स्टोरेज.
  • डेटा वापस लाने की कार्रवाई के लिए, बैकअप के साइज़ के आधार पर आपसे शुल्क लिया जाता है.

ज़्यादा जानकारी और किराये की सटीक जानकारी के लिए, कीमत पेज देखें.

वेब कंटेनर इंस्टॉल करने से पहले

इस सुविधा के लिए, ब्लेज़ प्राइसिंग प्लान की ज़रूरत होती है.

ज़रूरी भूमिकाएं

बैकअप और बैकअप शेड्यूल को मैनेज करने की अनुमतियां पाने के लिए, अपने एडमिन से पहचान और ऐक्सेस मैनेजमेंट की इनमें से कोई एक या ज़्यादा भूमिकाएं देने का अनुरोध करें:

  • roles/datastore.owner: Cloud Firestore डेटाबेस का पूरा ऐक्सेस
  • नीचे दी गई भूमिकाएं भी उपलब्ध हैं, लेकिन Google Cloud Platform कंसोल में दिखाई नहीं देती हैं. ये भूमिकाएं असाइन करने के लिए, Google Cloud सीएलआई का इस्तेमाल करें:

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

बैकअप शेड्यूल बनाना और उन्हें मैनेज करना

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

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

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

किसी डेटाबेस का बैकअप शेड्यूल बनाने के लिए, gcloud alpha firestore backups schedules create कमांड या firebase firestore:databases:backups:schedules कमांड का इस्तेमाल करें.

रोज़ाना बैकअप लेने का शेड्यूल बनाना

Gcloud
रोज़ाना बैकअप लेने का शेड्यूल बनाने के लिए, --recurrence फ़्लैग को daily पर सेट करें:
gcloud alpha firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=daily \
--retention=RETENTION_PERIOD

इन्हें बदलें:

  • DATABASE_ID: बैक अप लिए जाने वाले डेटाबेस का आईडी. डिफ़ॉल्ट डेटाबेस के लिए, '(default)' पर सेट करें.
  • RETENTION_PERIOD: इसे 14 हफ़्ते (14w) तक की वैल्यू पर सेट करें.
Firebase CLI
रोज़ाना बैकअप लेने का शेड्यूल बनाने के लिए, --recurrence फ़्लैग को DAILY पर सेट करें:
firebase firestore:backups:schedules:create \
--database 'DATABASE_ID' \
--recurrence 'DAILY' \
--retention RETENTION_PERIOD

इन्हें बदलें:

  • DATABASE_ID: बैक अप लिए जाने वाले डेटाबेस का आईडी. डिफ़ॉल्ट डेटाबेस के लिए, '(default)' पर सेट करें.
  • RETENTION_PERIOD: इसे 14 हफ़्ते (14w) तक की वैल्यू पर सेट करें.
Terraform
रोज़ाना बैकअप लेने का शेड्यूल बनाने के लिए, google_firestore_backup_schedule संसाधन बनाएं.
resource "google_firestore_backup_schedule" "daily-backup" {
  project  = PROJECT_ID
  database = DATABASE_ID

  retention = RETENTION_PERIOD_SECONDS

  daily_recurrence {}
}

इन्हें बदलें:

  • PROJECT_ID: प्रोजेक्ट का आईडी.
  • DATABASE_ID: बैक अप लिए जाने वाले डेटाबेस का आईडी. डिफ़ॉल्ट डेटाबेस के लिए, '(default)' पर सेट करें.
  • google_firestore_database टाइप के टेराफ़ॉर्म रिसॉर्स के लिए, रिसॉर्स रेफ़रंस का भी इस्तेमाल किया जा सकता है.
  • RETENTION_PERIOD_SECONDS: इसे सेकंड में एक वैल्यू पर सेट करें, इसके बाद "s". ज़्यादा से ज़्यादा वैल्यू 8467200s (14 हफ़्ते) है.

हर हफ़्ते बैकअप लेने का शेड्यूल बनाना

Gcloud
हर हफ़्ते बैकअप लेने का शेड्यूल बनाने के लिए, --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: इसे 14 हफ़्ते (14w) तक की वैल्यू पर सेट करें.
  • DAY: बैकअप लेने के लिए हफ़्ते का दिन. इनमें से किसी एक पर सेट करें:
    • रविवार का किराया SUN
    • सोमवार का किराया MON
    • मंगलवार का TUE
    • बुधवार का WED
    • गुरुवार का THU
    • शुक्रवार का FRI
    • शनिवार का SAT
Firebase CLI
हर हफ़्ते बैकअप लेने का शेड्यूल बनाने के लिए, --recurrence फ़्लैग को WEEKLY पर सेट करें:
firebase firestore:backups:schedules:create \
--database 'DATABASE_ID' \
--recurrence 'WEEKLY' \
--retention RETENTION_PERIOD
--day-of-week DAY
इन्हें बदलें:
  • DATABASE_ID: बैक अप लिए जाने वाले डेटाबेस का आईडी. डिफ़ॉल्ट डेटाबेस के लिए, '(default)' पर सेट करें.
  • RETENTION_PERIOD: इसे 14 हफ़्ते (14w) तक की वैल्यू पर सेट करें.
  • DAY: बैकअप लेने के लिए हफ़्ते का दिन. इनमें से किसी एक पर सेट करें:
    • रविवार का किराया SUNDAY
    • सोमवार का किराया MONDAY
    • मंगलवार का TUESDAY
    • बुधवार का WEDNESDAY
    • गुरुवार का THURSDAY
    • शुक्रवार का FRIDAY
    • शनिवार का SATURDAY
Terraform
हफ़्ते का बैकअप शेड्यूल बनाने के लिए, google_firestore_backup_schedule संसाधन बनाएं.
resource "google_firestore_backup_schedule" "weekly-backup" {
  project  = PROJECT_ID
  database = DATABASE_ID

  retention = RETENTION_PERIOD_SECONDS

  weekly_recurrence {
    day = DAY
  }
}

इन्हें बदलें:

  • PROJECT_ID: प्रोजेक्ट का आईडी.
  • DATABASE_ID: बैक अप लिए जाने वाले डेटाबेस का आईडी. डिफ़ॉल्ट डेटाबेस के लिए, '(default)' पर सेट करें.
  • google_firestore_database टाइप के टेराफ़ॉर्म रिसॉर्स के लिए, रिसॉर्स रेफ़रंस का भी इस्तेमाल किया जा सकता है.
  • RETENTION_PERIOD_SECONDS: इसे सेकंड में एक वैल्यू पर सेट करें, इसके बाद "s". ज़्यादा से ज़्यादा वैल्यू 8467200s (14 हफ़्ते) है.
  • DAY: बैकअप लेने के लिए हफ़्ते का दिन. इनमें से किसी एक पर सेट करें:
    • रविवार का किराया SUNDAY
    • सोमवार का किराया MONDAY
    • मंगलवार का TUESDAY
    • बुधवार का WEDNESDAY
    • गुरुवार का THURSDAY
    • शुक्रवार का FRIDAY
    • शनिवार का SATURDAY

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

किसी डेटाबेस के सभी बैकअप शेड्यूल को सूची में शामिल करने के लिए, इनमें से किसी एक तरीके का इस्तेमाल करें:

Gcloud
gcloud alpha firestore backups schedules list निर्देश का इस्तेमाल करें.
gcloud alpha firestore backups schedules list \
--database='DATABASE_ID'
DATABASE_ID को डेटाबेस के आईडी से बदलें. डिफ़ॉल्ट डेटाबेस के लिए, '(default)' का इस्तेमाल करें.
Firebase CLI
firebase firestore:backups:schedules:list निर्देश का इस्तेमाल करें.
firebase firestore:backups:schedules:list \
--database 'DATABASE_ID'
DATABASE_ID को डेटाबेस के आईडी से बदलें. डिफ़ॉल्ट डेटाबेस के लिए, '(default)' का इस्तेमाल करें.

बैकअप शेड्यूल के बारे में बताएं

बैकअप शेड्यूल के बारे में जानकारी पाने के लिए, इनमें से किसी एक तरीके का इस्तेमाल करें:

Gcloud
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
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: इसे 14 हफ़्ते (14w) तक की वैल्यू पर सेट करें.
Firebase CLI
firebase firestore:backups:schedules:update कमांड का इस्तेमाल करें:
firebase firestore:backups:schedules:update \
BACKUP_SCHEDULE \
--retention RETENTION_PERIOD
इन्हें बदलें:
  • BACKUP_SCHEDULE: बैकअप शेड्यूल के लिए पूरा संसाधन नाम. सभी बैकअप शेड्यूल की सूची बनाते समय, हर बैकअप शेड्यूल का नाम देखा जा सकता है.
  • RETENTION_PERIOD: इसे 14 हफ़्ते (14w) तक की वैल्यू पर सेट करें.

आपके पास बैकअप शेड्यूल के रखरखाव की अवधि को अपडेट करने का विकल्प होता है. हालांकि, इसके बार-बार होने का विकल्प अपडेट नहीं किया जा सकता. अगर आपको बार-बार होने वाले बैकअप के लिए कोई दूसरा शेड्यूल चाहिए, तो पुराना बैकअप शेड्यूल मिटा दें.

बैकअप शेड्यूल मिटाना

बैकअप शेड्यूल मिटाने के लिए, इनमें से किसी एक तरीके का इस्तेमाल करें:

Gcloud
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: बैकअप शेड्यूल का आईडी. सभी बैकअप शेड्यूल की सूची बनाकर, हर बैकअप शेड्यूल का आईडी देखा जा सकता है.
Firebase CLI
firebase firestore:backups:schedules:delete कमांड का इस्तेमाल करें:
firebase firestore:backups:schedules:delete \
BACKUP_SCHEDULE
इन्हें बदलें:

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

बैकअप मैनेज करें

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

उपलब्ध बैकअप की सूची बनाने के लिए, इनमें से किसी एक तरीके का इस्तेमाल करें:

Gcloud
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 को Cloud Firestore की किसी जगह के नाम से बदलें.
Firebase CLI
firebase firestore:backups:list कमांड का इस्तेमाल करें:
firebase firestore:backups:list
सिर्फ़ किसी खास जगह के बैकअप को सूची में शामिल करने के लिए, --location फ़्लैग का इस्तेमाल करें:
firebase firestore:backups:list \
--location=LOCATION
LOCATION को Cloud Firestore की जगह के नाम से बदलें.

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

किसी बैकअप की जानकारी देखने के लिए, इनमें से किसी एक तरीके का इस्तेमाल करें:

Gcloud
gcloud alpha firestore backups describe कमांड का इस्तेमाल करें:
gcloud alpha firestore backups describe \
--location=LOCATION \
--backup=BACKUP_ID
इन्हें बदलें:
  • LOCATION: डेटाबेस की लोकेशन.
  • BACKUP_ID: बैकअप का आईडी. सभी बैकअप की सूची बनाने पर, आपको हर बैकअप का आईडी दिख सकता है.
Firebase CLI
firebase firestore:backups:get कमांड का इस्तेमाल करें:
firebase firestore:backups:get BACKUP
इन्हें बदलें:
  • BACKUP: किसी बैकअप संसाधन का पूरा नाम. सभी बैकअप की सूची बनाते समय, हर बैकअप का नाम देखा जा सकता है.

बैकअप हटाएं

बैकअप मिटाने के लिए, इनमें से किसी एक तरीके का इस्तेमाल करें. चेतावनी: मिटाए गए बैकअप को वापस नहीं पाया जा सकता.
Gcloud
gcloud alpha firestore backups delete कमांड का इस्तेमाल करें:
gcloud alpha firestore backups delete \
--location=LOCATION \
--backup=BACKUP_ID
इन्हें बदलें:
  • LOCATION: डेटाबेस की लोकेशन.
  • BACKUP_ID: बैकअप का आईडी. सभी बैकअप की सूची बनाने पर, आपको हर बैकअप का आईडी दिख सकता है.
Firebase CLI
firebase firestore:backups:delete कमांड का इस्तेमाल करें:
firebase firestore:backups:delete \
BACKUP
इन्हें बदलें:
  • BACKUP: किसी बैकअप संसाधन का पूरा नाम. सभी बैकअप की सूची देखने पर, आपको हर बैकअप का नाम दिखेगा.

डेटाबेस के बैकअप से डेटा वापस पाना

डेटा वापस लाने की कार्रवाई, बैकअप से नए Cloud Firestore डेटाबेस में डेटा लिखती है.

डेटा वापस लाने की कार्रवाई शुरू करने के लिए, इनमें से कोई एक तरीका अपनाएं:

Gcloud
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
Firebase CLI
firebase firestore:databases:restore कमांड का इस्तेमाल करें:
firebase firestore:databases:restore \
--backup 'BACKUP' \
--database 'DATABASE_ID'
इन्हें बदलें:
  • BACKUP: किसी बैकअप संसाधन का पूरा नाम. सभी बैकअप की सूची बनाते समय, हर बैकअप का नाम देखा जा सकता है.
  • DATABASE_ID: नए डेटाबेस के लिए एक डेटाबेस आईडी. पहले से इस्तेमाल किए जा रहे डेटाबेस आईडी का इस्तेमाल नहीं किया जा सकता.