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

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