इस पेज पर, 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)'
पर सेट करें. - RETENTION_PERIOD_SECONDS: इसे सेकंड में किसी वैल्यू पर सेट करें. इसके बाद, "s" लिखें. ज़्यादा से ज़्यादा वैल्यू
8467200s
(14 हफ़्ते) हो सकती है.
google_firestore_database
टाइप के Terraform संसाधन के लिए, संसाधन रेफ़रंस का भी इस्तेमाल किया जा सकता है.
हर हफ़्ते बैकअप लेने का शेड्यूल बनाना
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)'
पर सेट करें. - RETENTION_PERIOD_SECONDS: इसे सेकंड में एक वैल्यू पर सेट करें, इसके बाद "s". ज़्यादा से ज़्यादा वैल्यू
8467200s
(14 हफ़्ते) हो सकती है. - DAY: हफ़्ते का वह दिन जब बैकअप लेना है. इनमें से किसी एक पर सेट करें:
- रविवार का किराया
SUNDAY
- सोमवार के लिए
MONDAY
- मंगलवार के लिए
TUESDAY
- बुधवार के लिए
WEDNESDAY
- गुरुवार के लिए
THURSDAY
- शुक्रवार का
FRIDAY
- शनिवार के लिए
SATURDAY
- रविवार का किराया
google_firestore_database
टाइप के Terraform संसाधन के लिए, संसाधन रेफ़रंस का भी इस्तेमाल किया जा सकता है.
बैकअप शेड्यूल की सूची
किसी डेटाबेस के सभी बैकअप शेड्यूल को सूची में शामिल करने के लिए, इनमें से किसी एक तरीके का इस्तेमाल करें:
gcloud
gcloud firestore backups schedules list
कमांड का इस्तेमाल करें.
gcloud firestore backups schedules list \ --database='DATABASE_ID'
'(default)'
का इस्तेमाल करें.
Firebase CLI
firebase firestore:backups:schedules:list
निर्देश का इस्तेमाल करें.
firebase firestore:backups:schedules:list \ --database '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
- 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
- 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: नए डेटाबेस का आईडी. पहले से इस्तेमाल किए जा रहे डेटाबेस आईडी का इस्तेमाल नहीं किया जा सकता.