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