CouchDB একটি ডকুমেন্ট-ভিত্তিক ডাটাবেস সিস্টেম, এবং এর ডেটা সাধারণত JSON ফরম্যাটে সংরক্ষিত থাকে। ডেটাবেস ব্যাকআপ নেওয়া অত্যন্ত গুরুত্বপূর্ণ, বিশেষ করে যদি আপনার সিস্টেমে কোনো সমস্যা হয় বা ডেটা হারানোর ঝুঁকি থাকে। CouchDB এ ব্যাকআপ এবং রিকভারি প্রক্রিয়া দুটি প্রধান ধাপে বিভক্ত: ব্যাকআপ কনফিগারেশন এবং ব্যাকআপ পুনরুদ্ধার (recovery)।
1. CouchDB Database Backup নেওয়ার পদ্ধতি
CouchDB-এ ব্যাকআপ নেওয়ার জন্য বেশ কয়েকটি পদ্ধতি রয়েছে। এর মধ্যে একটি অন্যতম সহজ পদ্ধতি হল CouchDB database dump ব্যবহার করা। এছাড়াও, replication এবং snapshot ব্যবহার করেও ব্যাকআপ নেওয়া যেতে পারে।
a. CouchDB Database Dump (Backup)
CouchDB-এর couchdb-dump বা curl কমান্ড ব্যবহার করে আপনি সহজেই ব্যাকআপ নিতে পারেন।
Backup using curl command
CouchDB-এর ডেটাবেসের ব্যাকআপ নেওয়ার জন্য curl ব্যবহার করা যেতে পারে। এটি GET রিকুয়েস্ট পাঠিয়ে ডেটাবেসের সমস্ত ডেটা JSON ফরম্যাটে আউটপুট হিসেবে গ্রহণ করে।
ব্যাকআপ কমান্ড (সার্ভারে):
curl -X GET http://localhost:5984/my_database/_all_docs?include_docs=true > my_database_backup.json
- localhost:5984: এটি CouchDB সার্ভারের হোস্ট এবং পোর্ট।
- my_database: এটি আপনার ডেটাবেসের নাম।
- _all_docs?include_docs=true: এটি সমস্ত ডকুমেন্ট এবং তাদের সম্পূর্ণ ডেটা বের করবে।
- my_database_backup.json: এটি ব্যাকআপ ফাইলের নাম, যা JSON ফরম্যাটে সংরক্ষিত হবে।
Backup using couchdb-dump
couchdb-dump একটি টুল যা সম্পূর্ণ ডেটাবেসের ব্যাকআপ তৈরি করতে ব্যবহৃত হয়।
ব্যাকআপ কমান্ড (কমান্ড লাইন):
couchdb-dump /path/to/backup/
এটি একটি নির্দিষ্ট path-এ পুরো ডেটাবেসের ব্যাকআপ তৈরি করবে।
2. Automated Backup কনফিগারেশন
CouchDB-তে ব্যাকআপ অটোমেটিক্যালি নেওয়ার জন্য, আপনি কিছু স্ক্রিপ্ট ব্যবহার করতে পারেন যা নির্দিষ্ট সময় অন্তর ব্যাকআপ তৈরি করবে। এটি cron jobs বা systemd timers ব্যবহার করে করা যেতে পারে।
Cron Job ব্যবহার করে Automated Backup
আপনি cron job ব্যবহার করে একটি নির্দিষ্ট সময়ে ব্যাকআপ নিতে পারেন। উদাহরণস্বরূপ, প্রতি রাতে ১টা বাজে ব্যাকআপ নেওয়ার জন্য cron job কনফিগার করতে হবে।
ক্রন কনফিগারেশন (cron job):
ক্রন ট্যাব এডিট করুন:
crontab -eব্যাকআপের জন্য ক্রন এন্ট্রি যোগ করুন:
0 1 * * * curl -X GET http://localhost:5984/my_database/_all_docs?include_docs=true > /path/to/backup/my_database_backup_$(date +\%F).json
এখানে:
- **0 1 * * ***: প্রতি রাত ১টার সময় কাজ করবে।
- curl: ব্যাকআপ কমান্ড।
- /path/to/backup/: ব্যাকআপ ফাইলের সংরক্ষণের লোকেশন।
এটি প্রতিদিন ১টার সময় my_database ডেটাবেসের ব্যাকআপ তৈরি করবে এবং সেটি বর্তমান তারিখের সাথে ফাইলের নাম দেবে।
3. Database Recovery
CouchDB থেকে ব্যাকআপ পুনরুদ্ধার করার জন্য সাধারণত restore প্রক্রিয়া অনুসরণ করা হয়, যেখানে একটি ব্যাকআপ ফাইল থেকে ডেটাবেস পুনঃপ্রতিষ্ঠিত করা হয়।
Backup থেকে Restore
CouchDB ব্যাকআপ থেকে ডেটাবেস পুনরুদ্ধার করতে curl অথবা couchdb_restore টুল ব্যবহার করা যেতে পারে।
Restore Using curl Command
আপনি যদি JSON ফাইল থেকে ব্যাকআপ পুনরুদ্ধার করতে চান, তবে curl ব্যবহার করে নিম্নলিখিত প্রক্রিয়া অনুসরণ করতে পারেন।
curl -X POST http://localhost:5984/my_database/_bulk_docs -H "Content-Type: application/json" -d @my_database_backup.json
এখানে:
- localhost:5984: CouchDB সার্ভারের ঠিকানা।
- my_database: পুনরুদ্ধার করা ডেটাবেসের নাম।
- _bulk_docs: এটি ব্যাচ ইনসার্ট করার জন্য ব্যবহৃত CouchDB এন্ডপয়েন্ট।
- my_database_backup.json: ব্যাকআপ ফাইল, যেটি JSON ফরম্যাটে থাকতে হবে।
Restore Using couchdb_restore
couchdb_restore একটি কনসোল টুল যা CouchDB ব্যাকআপ ফাইল থেকে ডেটাবেস পুনঃস্থাপন করতে ব্যবহৃত হয়। এর মাধ্যমে ব্যাকআপ করা .couch ফাইল থেকে ডেটাবেস পুনঃস্থাপন করা যায়।
Restore কমান্ড:
couchdb_restore /path/to/backup/my_database_backup.couch
এটি ডেটাবেস পুনরুদ্ধার করতে ব্যবহৃত হবে।
4. ব্যাকআপ রিকভারি কৌশলসমূহ
- Point-in-Time Recovery (PITR): CouchDB এর PITR সুবিধার মাধ্যমে আপনি নির্দিষ্ট সময়ের ব্যাকআপ পুনরুদ্ধার করতে পারেন। আপনি এই ফিচারটি _changes feed বা continuous replication ব্যবহার করে ডেটাবেসে ডেটার পরিবর্তন ট্র্যাক করে পুনঃস্থাপন করতে পারেন।
- Conflict Resolution: যদি ব্যাকআপে কনফ্লিক্ট থাকে, তাহলে CouchDB আপনাকে _rev ফিল্ডের মাধ্যমে কনফ্লিক্ট সমাধান করার সুযোগ দেয়।
উপসংহার
CouchDB তে ব্যাকআপ এবং রিকভারি অত্যন্ত গুরুত্বপূর্ণ এবং সহজে কনফিগার করা যায়। আপনি curl বা couchdb-dump ব্যবহার করে ব্যাকআপ নিতে পারেন, এবং cron job সেটআপ করে automated backups কনফিগার করতে পারেন। ব্যাকআপ পুনরুদ্ধার করার জন্য restore প্রক্রিয়া ব্যবহার করা হয় এবং conflict resolution নিশ্চিত করে ডেটার সঠিকতা বজায় রাখা যায়। CouchDB এর এই শক্তিশালী ব্যাকআপ ও রিকভারি প্রক্রিয়া ডেটার নিরাপত্তা এবং হাই এভেইলেবিলিটি নিশ্চিত করতে সহায়ক।