ব্যাক আপ এবং ডেটা পুনরুদ্ধার করুন

এই পৃষ্ঠাটি ক্লাউড ফায়ারস্টোরের নির্ধারিত ব্যাকআপ বৈশিষ্ট্যটি কীভাবে ব্যবহার করবেন তা বর্ণনা করে। অ্যাপ্লিকেশন-স্তরের ডেটা দুর্নীতি বা দুর্ঘটনাজনিত ডেটা মুছে ফেলা থেকে আপনার ডেটা রক্ষা করতে ব্যাকআপ ব্যবহার করুন।

ব্যাকআপ আপনাকে নির্দিষ্ট ডাটাবেসের দৈনিক বা সাপ্তাহিক ব্যাকআপ নিতে ব্যাকআপ সময়সূচী কনফিগার করতে দেয়। তারপরে আপনি একটি নতুন ডাটাবেসে ডেটা পুনরুদ্ধার করতে এই ব্যাকআপগুলি ব্যবহার করতে পারেন।

ব্যাকআপ সম্পর্কে

একটি ব্যাকআপ হল সময়ে সময়ে ডাটাবেসের একটি ধারাবাহিক অনুলিপি। ব্যাকআপে সেই সময়ে সমস্ত ডেটা এবং সূচক কনফিগারেশন থাকে৷ একটি ব্যাকআপে লাইভ পলিসিতে ডাটাবেস সময় থাকে না। একটি ব্যাকআপ সোর্স ডাটাবেসের মতো একই অবস্থানে থাকে।

ব্যাকআপগুলির একটি কনফিগারযোগ্য ধরে রাখার সময়কাল থাকে এবং ধরে রাখার সময়কাল শেষ না হওয়া পর্যন্ত বা আপনি ব্যাকআপ মুছে না দেওয়া পর্যন্ত সংরক্ষণ করা হয়। উৎস ডাটাবেস মুছে ফেলা স্বয়ংক্রিয়ভাবে সম্পর্কিত ব্যাকআপ মুছে ফেলা হয় না.

ক্লাউড ফায়ারস্টোর একটি ডাটাবেসের সাথে সম্পর্কিত ব্যাকআপ এবং ব্যাকআপ সময়সূচী সম্পর্কিত মেটাডেটা সঞ্চয় করে। ক্লাউড ফায়ারস্টোর ডাটাবেসের জন্য সমস্ত ব্যাকআপের মেয়াদ শেষ না হওয়া পর্যন্ত বা মুছে ফেলা পর্যন্ত এই মেটাডেটা ধরে রাখে।

ব্যাকআপ তৈরি করা বা ধরে রাখা আপনার লাইভ ডাটাবেসে পড়া বা লেখার কর্মক্ষমতা প্রভাবিত করে না।

খরচ

আপনি যখন ব্যাকআপ ব্যবহার করেন, তখন আপনাকে নিম্নলিখিতগুলির জন্য চার্জ করা হয়:

  • প্রতিটি ব্যাকআপ দ্বারা ব্যবহৃত স্টোরেজের পরিমাণ।
  • একটি পুনরুদ্ধার অপারেশনের জন্য, ব্যাকআপের আকারের উপর ভিত্তি করে আপনাকে চার্জ করা হয়৷

আরো বিস্তারিত এবং সঠিক হারের জন্য, মূল্য পৃষ্ঠা দেখুন।

তুমি শুরু করার আগে

এই বৈশিষ্ট্যটির জন্য Blaze মূল্য পরিকল্পনা প্রয়োজন।

প্রয়োজনীয় ভূমিকা

ব্যাকআপ এবং ব্যাকআপ সময়সূচী পরিচালনা করার জন্য আপনার প্রয়োজনীয় অনুমতিগুলি পেতে, আপনার প্রশাসককে আপনাকে নিম্নলিখিত পরিচয় এবং অ্যাক্সেস ম্যানেজমেন্ট ভূমিকাগুলির একটি বা একাধিক প্রদান করতে বলুন:

  • roles/datastore.owner : ক্লাউড ফায়ারস্টোর ডাটাবেসে সম্পূর্ণ অ্যাক্সেস
  • নিম্নলিখিত ভূমিকাগুলিও উপলব্ধ কিন্তু Google ক্লাউড প্ল্যাটফর্ম কনসোলে দৃশ্যমান নয়৷ এই ভূমিকাগুলি বরাদ্দ করতে Google Cloud CLI ব্যবহার করুন :

    • roles/datastore.backupsAdmin : ব্যাকআপগুলি পড়ুন এবং লিখুন
    • roles/datastore.backupsViewer : ব্যাকআপে পড়ার অ্যাক্সেস
    • roles/datastore.backupSchedulesAdmin : ব্যাকআপ সময়সূচী পড়ুন এবং লিখুন
    • roles/datastore.backupSchedulesViewer : ব্যাকআপ সময়সূচী পড়ার অ্যাক্সেস
    • roles/datastore.restoreAdmin : পুনরুদ্ধার কার্যক্রম শুরু করার অনুমতি

ব্যাকআপ সময়সূচী তৈরি এবং পরিচালনা করুন

নীচের উদাহরণগুলি দেখায় কিভাবে একটি ব্যাকআপ সময়সূচী সেট আপ করতে হয়। প্রতিটি ডাটাবেসের জন্য, আপনি একটি দৈনিক ব্যাকআপ সময়সূচী এবং একটি সাপ্তাহিক ব্যাকআপ সময়সূচী পর্যন্ত কনফিগার করতে পারেন। আপনি সপ্তাহের বিভিন্ন দিনের জন্য একাধিক সাপ্তাহিক ব্যাকআপ সময়সূচী কনফিগার করতে পারবেন না।

আপনি ব্যাকআপের দিনের সঠিক সময় কনফিগার করতে পারবেন না। ব্যাকআপ প্রতিদিন বিভিন্ন সময়ে নেওয়া হয়। সাপ্তাহিক ব্যাকআপ সময়সূচীর জন্য, আপনি ব্যাকআপ নিতে সপ্তাহের দিন কনফিগার করতে পারেন।

একটি ব্যাকআপ সময়সূচী তৈরি করুন

একটি ডাটাবেসের জন্য একটি ব্যাকআপ সময়সূচী তৈরি করতে, gcloud alpha firestore backups schedules create কমান্ড ব্যবহার করুন।

একটি দৈনিক ব্যাকআপ সময়সূচী তৈরি করুন

একটি দৈনিক ব্যাকআপ সময়সূচী তৈরি করতে, --recurrence পতাকাকে daily সেট করুন:

gcloud alpha firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=daily \
--retention=RETENTION_PERIOD

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • DATABASE_ID : ব্যাক আপ করার জন্য ডাটাবেসের আইডি। ডিফল্ট ডাটাবেসের জন্য (default) সেট করুন।
  • RETENTION_PERIOD : একটি daily ব্যাকআপ পুনরাবৃত্তির জন্য, এটিকে 7 দিন পর্যন্ত একটি মান সেট করুন ( 7d )। আপনি যদি একটি weekly ব্যাকআপ পুনরাবৃত্তি সেট করেন, তাহলে এটিকে 14 সপ্তাহ ( 14w ) পর্যন্ত একটি মান সেট করুন।

একটি সাপ্তাহিক ব্যাকআপ সময়সূচী তৈরি করুন

একটি সাপ্তাহিক ব্যাকআপ সময়সূচী তৈরি করতে, --recurrence পতাকা weekly হিসাবে সেট করুন:

gcloud alpha firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=weekly \
--retention=RETENTION_PERIOD \
--day-of-week=DAY

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • DATABASE_ID : ব্যাক আপ করার জন্য ডাটাবেসের আইডি। ডিফল্ট ডাটাবেসের জন্য (default) সেট করুন।
  • RETENTION_PERIOD : একটি weekly ব্যাকআপ পুনরাবৃত্তির জন্য, এটিকে 14 সপ্তাহ পর্যন্ত একটি মান সেট করুন ( 14w )।
  • DAY : ব্যাকআপ নিতে সপ্তাহের দিন। নিম্নলিখিতগুলির একটিতে সেট করুন:
    • রবিবার জন্য SUN
    • সোমবারের জন্য MON
    • মঙ্গলবার জন্য TUE
    • বুধবার জন্য WED
    • বৃহস্পতিবার জন্য THU
    • শুক্রবারের জন্য FRI
    • শনিবারের জন্য SAT

ব্যাকআপ সময়সূচী তালিকা

একটি ডাটাবেসের জন্য সমস্ত ব্যাকআপ সময়সূচী তালিকাভুক্ত করতে, gcloud alpha firestore backups schedules list কমান্ড ব্যবহার করুন। এই কমান্ডটি সমস্ত ব্যাকআপ সময়সূচী সম্পর্কে তথ্য প্রদান করে।

gcloud alpha firestore backups schedules list \
--database='DATABASE_ID'

ডাটাবেসের আইডি দিয়ে DATABASE_ID প্রতিস্থাপন করুন। ডিফল্ট ডাটাবেসের জন্য (default) ব্যবহার করুন।

ব্যাকআপ সময়সূচী বর্ণনা করুন

একটি ব্যাকআপ সময়সূচী সম্পর্কে তথ্য পুনরুদ্ধার করতে, gcloud alpha firestore backups schedules describe কমান্ড ব্যবহার করুন:

gcloud alpha firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

একটি ব্যাকআপ সময়সূচী আপডেট করুন

একটি ব্যাকআপ সময়সূচীর ধরে রাখার সময়কাল আপডেট করতে, gcloud alpha firestore backups schedules update কমান্ড ব্যবহার করুন:

gcloud alpha firestore backups schedules update \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
--retention=RETENTION_PERIOD

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • DATABASE_ID : ব্যাক আপ করার জন্য ডাটাবেসের আইডি। ডিফল্ট ডাটাবেসের জন্য (default) সেট করুন।
  • BACKUP_SCHEDULE_ID : একটি ব্যাকআপ সময়সূচীর আইডি। আপনি যখন সমস্ত ব্যাকআপ সময়সূচী তালিকাভুক্ত করেন তখন আপনি প্রতিটি ব্যাকআপ সময়সূচী আইডি দেখতে পারেন।
  • RETENTION_PERIOD : আপনি যদি একটি daily ব্যাকআপ পুনরাবৃত্তি সেট করেন, তাহলে এটিকে 7 দিন পর্যন্ত একটি মান সেট করুন ( 7d )। আপনি যদি একটি weekly ব্যাকআপ পুনরাবৃত্তি সেট করেন, তাহলে এটিকে 14 সপ্তাহ ( 14w ) পর্যন্ত একটি মান সেট করুন।

একটি ব্যাকআপ সময়সূচী মুছুন

একটি ব্যাকআপ সময়সূচী মুছে ফেলতে, gcloud alpha firestore backups schedules delete কমান্ড ব্যবহার করুন:

gcloud alpha firestore backups schedules delete \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

মনে রাখবেন যে একটি ব্যাকআপ সময়সূচী মুছে ফেলার ফলে এই সময়সূচী দ্বারা ইতিমধ্যে তৈরি করা ব্যাকআপগুলি মুছে যাবে না৷ আপনি তাদের ধরে রাখার সময়কাল শেষ হওয়ার জন্য অপেক্ষা করতে পারেন, অথবা ম্যানুয়ালি একটি ব্যাকআপ মুছে ফেলতে, ব্যাকআপ মুছুন দেখুন।

ব্যাকআপ পরিচালনা করুন

তালিকা ব্যাকআপ

উপলব্ধ ব্যাকআপ তালিকা করতে, gcloud alpha firestore backups list কমান্ড ব্যবহার করুন:

gcloud alpha firestore backups list \
--format="table(name, database, state)"

--format="table(name, database, state)" পতাকা আউটপুটকে আরও পাঠযোগ্য বিন্যাসে বিন্যাস করে।

একটি নির্দিষ্ট অবস্থান থেকে শুধুমাত্র ব্যাকআপ তালিকাভুক্ত করতে, --location পতাকা ব্যবহার করুন:

gcloud alpha firestore backups list \
--location=LOCATION \
--format="table(name, database, state)"

একটি ক্লাউড ফায়ারস্টোর অবস্থানের নামের সাথে LOCATION প্রতিস্থাপন করুন৷

একটি ব্যাকআপ বর্ণনা করুন

একটি ব্যাকআপ সম্পর্কে বিশদ বিবরণ দেখতে, gcloud alpha firestore backups describe কমান্ড ব্যবহার করুন:

gcloud alpha firestore backups describe \
--location=LOCATION \
--backup=BACKUP_ID

ব্যাকআপ মুছুন

একটি ব্যাকআপ মুছতে, gcloud alpha firestore backups delete কমান্ড ব্যবহার করুন:

gcloud alpha firestore backups delete \
--location=LOCATION \
--backup=BACKUP_ID

একটি ডাটাবেস ব্যাকআপ থেকে ডেটা পুনরুদ্ধার করুন

একটি পুনরুদ্ধার অপারেশন একটি ব্যাকআপ থেকে একটি নতুন ক্লাউড ফায়ারস্টোর ডাটাবেসে ডেটা লেখে। একটি পুনরুদ্ধার অপারেশন শুরু করতে, gcloud alpha firestore databases restore কমান্ড ব্যবহার করুন:

gcloud alpha 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