PostgreSQL-এ pg_dump এবং pg_restore হল দুটি অত্যন্ত গুরুত্বপূর্ণ টুল যা ডেটাবেসের ব্যাকআপ নেওয়া এবং পুনরুদ্ধারের জন্য ব্যবহৃত হয়। এগুলি ডেটাবেস পরিচালনার ক্ষেত্রে ব্যাকআপ এবং রিস্টোর প্রক্রিয়া সহজ এবং নিরাপদ করে।
1. pg_dump — ব্যাকআপ নেওয়া
pg_dump একটি PostgreSQL ডেটাবেসের ব্যাকআপ তৈরির জন্য ব্যবহৃত হয়। এটি ডেটাবেসের সকল তথ্য (টেবিল, ডেটা, স্কিমা, ফাংশন ইত্যাদি) একটি ফাইলের মধ্যে সংরক্ষণ করে, যা পরবর্তীতে রিস্টোর (পুনরুদ্ধার) করা যেতে পারে।
pg_dump এর সাধারণ গঠন:
pg_dump -U username -d database_name -f backup_file.sql
- username: PostgreSQL ব্যবহারকারীর নাম।
- database_name: যে ডেটাবেসটির ব্যাকআপ নিতে চান তার নাম।
- backup_file.sql: যেখানে ব্যাকআপ ফাইলটি সংরক্ষণ করা হবে।
উদাহরণ:
pg_dump -U postgres -d my_database -f my_database_backup.sql
এই কুয়েরিটি my_database ডেটাবেসের একটি ব্যাকআপ তৈরি করবে এবং সেটি my_database_backup.sql ফাইলে সংরক্ষণ করবে।
pg_dump এর অন্যান্য অপশন:
- -F c: কাস্টম ফরম্যাট (যা পুনরুদ্ধারের জন্য আরও বেশি সুবিধাজনক)
- -F t: টার (TAR) ফরম্যাট
- -F p: প্লেইন SQL ফরম্যাট (ডিফল্ট)
- -C: ডেটাবেসের তৈরি কমান্ডও ব্যাকআপে অন্তর্ভুক্ত করবে
- -v: ভার্বোস মোডে আরও বিস্তারিত আউটপুট দেখাবে
উদাহরণ 1: কাস্টম ফরম্যাটে ব্যাকআপ নেওয়া
pg_dump -U postgres -d my_database -F c -f my_database_backup.dump
এটি my_database ডেটাবেসের একটি কাস্টম ফরম্যাট ব্যাকআপ তৈরি করবে যা পুনরুদ্ধারের জন্য বেশি উপকারী।
উদাহরণ 2: ডেটাবেস স্কিমা (structure) ব্যাকআপ
pg_dump -U postgres -d my_database -s -f my_database_schema_backup.sql
এটি my_database ডেটাবেসের শুধু স্কিমা (টেবিল, ভিউ, ফাংশন ইত্যাদি) ব্যাকআপ করবে, ডেটা নয়।
2. pg_restore — ব্যাকআপ রিস্টোর করা
pg_restore হল একটি টুল যা pg_dump দ্বারা তৈরি কাস্টম বা টার ফরম্যাট ব্যাকআপ ফাইল থেকে ডেটাবেস পুনরুদ্ধার (restore) করার জন্য ব্যবহৃত হয়।
pg_restore এর সাধারণ গঠন:
pg_restore -U username -d database_name backup_file.dump
- username: PostgreSQL ব্যবহারকারীর নাম।
- database_name: ডেটাবেসের নাম যেখানে ব্যাকআপ রিস্টোর করতে চান।
- backup_file.dump: ব্যাকআপ ফাইল যা আপনি পুনরুদ্ধার করতে চান।
উদাহরণ:
pg_restore -U postgres -d my_database my_database_backup.dump
এই কুয়েরি my_database_backup.dump ফাইল থেকে ডেটাবেস my_database-এ ব্যাকআপ রিস্টোর করবে।
pg_restore এর অন্যান্য অপশন:
- -C: ডেটাবেসটি তৈরি করার সময় একটি নতুন ডেটাবেস তৈরি করবে
- -v: ভার্বোস মোডে আউটপুট দেখাবে
- -d: রিস্টোর করার ডেটাবেসের নাম
- -F c: কাস্টম ফরম্যাট ব্যাকআপ ফাইল
- -l: ব্যাকআপের উপাদানগুলির তালিকা দেখতে
- -t: নির্দিষ্ট টেবিল রিস্টোর করতে
উদাহরণ 1: একটি নির্দিষ্ট টেবিল রিস্টোর করা
pg_restore -U postgres -d my_database -t my_table my_database_backup.dump
এটি কেবল my_table টেবিলটি রিস্টোর করবে।
উদাহরণ 2: নতুন ডেটাবেস তৈরি করে রিস্টোর করা
pg_restore -U postgres -C -d postgres my_database_backup.dump
এটি postgres ডেটাবেস থেকে my_database নামক একটি নতুন ডেটাবেস তৈরি করবে এবং তার মধ্যে ব্যাকআপটি রিস্টোর করবে।
3. pg_dump এবং pg_restore এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | pg_dump | pg_restore |
|---|---|---|
| ব্যবহার | ডেটাবেসের ব্যাকআপ তৈরি করা | ব্যাকআপ থেকে ডেটাবেস রিস্টোর করা |
| ফাইল আউটপুট | SQL স্ক্রিপ্ট বা কাস্টম/টার ফরম্যাট ফাইল | কাস্টম/টার ফরম্যাট থেকে ডেটাবেস পুনরুদ্ধার |
| ফরম্যাট | SQL, কাস্টম, টার ফরম্যাটে ব্যাকআপ তৈরি | কাস্টম বা টার ফরম্যাট ফাইল পুনরুদ্ধার করে |
| ইনডেক্সিং ও ডেটা | ডেটাবেসের ডেটা, স্কিমা, ইনডেক্স ব্যাকআপ নেয় | কাস্টম ব্যাকআপ ফাইল থেকে ইনডেক্স ও ডেটা রিস্টোর করে |
| কাস্টম ফরম্যাট | কাস্টম ফরম্যাটে ব্যাকআপ নেয় | কাস্টম ফরম্যাট ফাইল থেকে পুনরুদ্ধার করে |
সারাংশ
- pg_dump: PostgreSQL ডেটাবেসের ব্যাকআপ তৈরি করার জন্য ব্যবহৃত হয় এবং এটি বিভিন্ন ফরম্যাটে ব্যাকআপ ফাইল তৈরি করতে পারে। এটি একটি ডেটাবেসের তথ্য, স্কিমা, বা দুটি কম্বিনেশনও ব্যাকআপ নিতে পারে।
- pg_restore: pg_dump দ্বারা তৈরি ব্যাকআপ ফাইল থেকে ডেটাবেস পুনরুদ্ধার করার জন্য ব্যবহৃত হয়। এটি কাস্টম বা টার ফরম্যাট ব্যাকআপ ফাইল পুনরুদ্ধার করতে সক্ষম।
এই দুটি টুল ব্যবহার করে আপনি PostgreSQL ডেটাবেসের ব্যাকআপ এবং পুনরুদ্ধার প্রক্রিয়াকে সহজ এবং নিরাপদ করতে পারেন।
Read more