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

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

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

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

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

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

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

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

लागत

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

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

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

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

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

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

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

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