डेटा का बैक अप लें और उसे वापस पाएं

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

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

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

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

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

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

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

लागत

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

gcloud
हर दिन बैकअप लेने का शेड्यूल बनाने के लिए, --recurrence फ़्लैग को daily पर सेट करें:
gcloud 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 टाइप के Terraform संसाधन के लिए, संसाधन रेफ़रंस का भी इस्तेमाल किया जा सकता है.
  • RETENTION_PERIOD_SECONDS: इसे सेकंड में किसी वैल्यू पर सेट करें. इसके बाद, "s" लिखें. ज़्यादा से ज़्यादा वैल्यू 8467200s (14 हफ़्ते) हो सकती है.

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

gcloud
हर हफ़्ते बैकअप लेने का शेड्यूल बनाने के लिए, --recurrence फ़्लैग को weekly पर सेट करें:
gcloud 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 टाइप के Terraform संसाधन के लिए, संसाधन रेफ़रंस का भी इस्तेमाल किया जा सकता है.
  • RETENTION_PERIOD_SECONDS: इसे सेकंड में किसी वैल्यू पर सेट करें. इसके बाद, "s" लिखें. ज़्यादा से ज़्यादा वैल्यू 8467200s (14 हफ़्ते) हो सकती है.
  • DAY: हफ़्ते का वह दिन जब बैकअप लेना है. इनमें से किसी एक पर सेट करें:
    • रविवार के लिए SUNDAY
    • सोमवार के लिए MONDAY
    • मंगलवार के लिए TUESDAY
    • बुधवार के लिए WEDNESDAY
    • गुरुवार के लिए THURSDAY
    • शुक्रवार के लिए FRIDAY
    • शनिवार के लिए SATURDAY

बैकअप शेड्यूल की सूची

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

gcloud
gcloud firestore backups schedules list कमांड का इस्तेमाल करें.
gcloud 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 firestore backups schedules describe कमांड का इस्तेमाल करें:
gcloud firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
इनकी जगह ये डालें:
  • DATABASE_ID: बैक अप लेने के लिए डेटाबेस का आईडी. डिफ़ॉल्ट डेटाबेस के लिए, इसे '(default)' पर सेट करें.
  • BACKUP_SCHEDULE_ID: बैकअप शेड्यूल का आईडी. सभी बैकअप शेड्यूल की सूची देखने पर, आपको हर बैकअप शेड्यूल का आईडी दिखेगा.

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

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

gcloud
gcloud firestore backups schedules update कमांड का इस्तेमाल करें:
gcloud 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 firestore backups schedules delete कमांड का इस्तेमाल करें:
gcloud 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 firestore backups list कमांड का इस्तेमाल करें:
gcloud firestore backups list \
--format="table(name, database, state)"
--format="table(name, database, state)" फ़्लैग, आउटपुट को ऐसे फ़ॉर्मैट में बदलता है जिसे आसानी से पढ़ा जा सके. किसी खास जगह के बैकअप की सूची देखने के लिए, --location फ़्लैग का इस्तेमाल करें:
gcloud 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 firestore backups describe कमांड का इस्तेमाल करें:
gcloud firestore backups describe \
--location=LOCATION \
--backup=BACKUP_ID
इनकी जगह ये डालें:
  • LOCATION: डेटाबेस की जगह.
  • BACKUP_ID: बैकअप का आईडी. सभी बैकअप की सूची देखने पर, हर बैकअप का आईडी देखा जा सकता है.
Firebase CLI
firebase firestore:backups:get कमांड का इस्तेमाल करें:
firebase firestore:backups:get BACKUP
इनकी जगह ये डालें:

बैकअप हटाएं

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

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

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

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

gcloud
gcloud firestore databases restore कमांड का इस्तेमाल करें:
gcloud 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: नए डेटाबेस का आईडी. पहले से इस्तेमाल किए जा रहे डेटाबेस आईडी का इस्तेमाल नहीं किया जा सकता.