SQLite-এ Automated Backup কনফিগারেশন সাধারণত ডাটাবেসের নিরাপত্তা এবং স্থিতিশীলতা নিশ্চিত করার জন্য গুরুত্বপূর্ণ। এটি ডাটাবেসের তথ্য হারানো এড়াতে সাহায্য করে এবং সিস্টেম ক্র্যাশের ক্ষেত্রে ডেটা পুনরুদ্ধারে সহায়ক। আপনি বিভিন্ন পদ্ধতি ব্যবহার করে SQLite ডাটাবেসের স্বয়ংক্রিয় ব্যাকআপ কনফিগার করতে পারেন।
SQLite-এ স্বয়ংক্রিয় ব্যাকআপ কনফিগারেশনের জন্য সাধারণত দুটি প্রধান পদ্ধতি রয়েছে:
- শিডিউল করা ব্যাকআপ স্ক্রিপ্ট (cron job বা Task Scheduler ব্যবহার করে)
- SQLite এর অন্তর্নির্মিত ব্যাকআপ API ব্যবহার করা
এখানে দুটি পদ্ধতি বিস্তারিতভাবে আলোচনা করা হলো।
১. শিডিউল করা ব্যাকআপ স্ক্রিপ্ট (cron job / Task Scheduler)
SQLite ডাটাবেসের জন্য স্বয়ংক্রিয় ব্যাকআপ কনফিগার করতে আপনি একটি শেল স্ক্রিপ্ট তৈরি করতে পারেন যা নির্দিষ্ট সময় পর পর SQLite ডাটাবেসের ব্যাকআপ নেবে। তারপর, আপনি এটি cron job (Linux/Mac) বা Task Scheduler (Windows) ব্যবহার করে নির্দিষ্ট সময়ে চালাতে পারেন।
Linux (cron job) সেটআপ:
ব্যাকআপ স্ক্রিপ্ট তৈরি করা: একটি শেল স্ক্রিপ্ট তৈরি করুন যা SQLite ডাটাবেসের ব্যাকআপ নেবে।
উদাহরণ (backup.sh):
#!/bin/bash # SQLite ডাটাবেসের ব্যাকআপ তৈরি করা DB_PATH="/path/to/your/database.db" BACKUP_PATH="/path/to/backup/backup_$(date +\%F).db" cp "$DB_PATH" "$BACKUP_PATH" echo "Backup completed: $BACKUP_PATH"cron job তৈরি করা: টার্মিনাল খুলুন এবং crontab এ এই স্ক্রিপ্ট চালানোর জন্য একটি নতুন cron job তৈরি করুন।
টার্মিনালে:
crontab -eস্ক্রিপ্টটি দৈনিক বা যে কোনো নির্দিষ্ট সময় পর পর চালানোর জন্য নিম্নলিখিত cron job লিখুন:
0 2 * * * /path/to/backup.shএখানে, প্রতিদিন রাতে 2:00 টায় ব্যাকআপ নেওয়া হবে। আপনি সময় অনুযায়ী এটি পরিবর্তন করতে পারেন।
- ব্যাকআপ নিশ্চিত করা: স্ক্রিপ্টটি চলমান থাকলে, এটি আপনার SQLite ডাটাবেসের ব্যাকআপ তৈরি করবে এবং নির্দিষ্ট স্থানে সংরক্ষণ করবে।
Windows (Task Scheduler) সেটআপ:
ব্যাকআপ স্ক্রিপ্ট তৈরি করা: একটি ব্যাচ ফাইল তৈরি করুন যা SQLite ডাটাবেসের ব্যাকআপ নেবে।
উদাহরণ (backup.bat):
@echo off set DB_PATH="C:\path\to\your\database.db" set BACKUP_PATH="C:\path\to\backup\backup_%DATE%.db" copy %DB_PATH% %BACKUP_PATH% echo Backup completed: %BACKUP_PATH%- Task Scheduler ব্যবহার করা:
- Windows Task Scheduler খুলুন (Start Menu -> Task Scheduler).
- Create Basic Task নির্বাচন করুন এবং একটি নাম এবং বর্ণনা দিন।
- Trigger হিসাবে Daily নির্বাচন করুন এবং সময় সেট করুন (যেমন, প্রতি রাতে 2:00 এ)।
- Action হিসাবে Start a Program নির্বাচন করুন এবং ব্যাচ ফাইলটি নির্বাচন করুন।
- ব্যাকআপ নিশ্চিত করা: Task Scheduler ব্যাচ ফাইলটি নির্দিষ্ট সময় পর পর চালাবে এবং SQLite ডাটাবেসের ব্যাকআপ তৈরি করবে।
২. SQLite এর অন্তর্নির্মিত ব্যাকআপ API ব্যবহার করা
SQLite ব্যাকআপের জন্য একটি অন্তর্নির্মিত API সরবরাহ করে, যা স্বয়ংক্রিয়ভাবে ব্যাকআপ তৈরি করতে সাহায্য করে। আপনি একটি স্ক্রিপ্ট বা অ্যাপ্লিকেশন ব্যবহার করে এই API দিয়ে SQLite ডাটাবেসের ব্যাকআপ নিতে পারেন।
ব্যাকআপ API ব্যবহার (SQLite C API):
SQLite C API এর sqlite3_backup ফাংশন ব্যবহার করে আপনি ব্যাকআপ তৈরি করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো:
#include <sqlite3.h>
int backup_database(const char *source_db, const char *backup_db) {
sqlite3 *source, *backup;
sqlite3_backup *backup_handle;
int rc;
rc = sqlite3_open(source_db, &source);
if (rc != SQLITE_OK) {
return rc;
}
rc = sqlite3_open(backup_db, &backup);
if (rc != SQLITE_OK) {
sqlite3_close(source);
return rc;
}
backup_handle = sqlite3_backup_init(backup, "main", source, "main");
if (backup_handle == NULL) {
sqlite3_close(source);
sqlite3_close(backup);
return SQLITE_ERROR;
}
rc = sqlite3_backup_step(backup_handle, -1);
if (rc != SQLITE_DONE) {
sqlite3_backup_finish(backup_handle);
sqlite3_close(source);
sqlite3_close(backup);
return rc;
}
sqlite3_backup_finish(backup_handle);
sqlite3_close(source);
sqlite3_close(backup);
return SQLITE_OK;
}
এই কোডটি source_db (প্রধান ডাটাবেস) থেকে backup_db (ব্যাকআপ ডাটাবেস) তে ডাটাবেসের সম্পূর্ণ ব্যাকআপ তৈরি করবে।
সারাংশ
SQLite ডাটাবেসের Automated Backup কনফিগারেশন করার জন্য আপনি cron job (Linux) বা Task Scheduler (Windows) ব্যবহার করে শিডিউল করা ব্যাকআপ স্ক্রিপ্ট তৈরি করতে পারেন, অথবা SQLite এর অন্তর্নির্মিত ব্যাকআপ API ব্যবহার করতে পারেন। শিডিউল করা স্ক্রিপ্টগুলি স্বয়ংক্রিয়ভাবে নির্দিষ্ট সময় পর পর ডাটাবেসের ব্যাকআপ তৈরি করবে, এবং sqlite3_backup API ব্যবহারে আপনি আরও নিয়ন্ত্রিত এবং কার্যকরী ব্যাকআপ কনফিগারেশন করতে পারবেন।
Read more