This content originally appeared on DEV Community and was authored by Md Tariqul Islam
সংক্ষিপ্ত বিবরণ
এই ডকুমেন্টেশনটি Hostinger VPS-এ MongoDB ডাটাবেস ডিপ্লয় এবং স্বয়ংক্রিয় ব্যাকআপ সেটআপের নির্দেশনা প্রদান করে। এটি naturalsefa এবং tariqul ডাটাবেসের জন্য প্রতি ঘণ্টায় ব্যাকআপ কনফিগার করে, সর্বোচ্চ ৫টি ব্যাকআপ রেখে পুরোনো ব্যাকআপ মুছে ফেলে।
প্রয়োজনীয়তা
- Hostinger VPS: Ubuntu 22.04 বা তার উপরের ভার্সন।
- টুলস: SSH ক্লায়েন্ট, টেক্সট এডিটর।
-
প্রি-ইনস্টলড সফটওয়্যার:
- MongoDB
- Environment Variables: MongoDB username এবং password।
ধাপসমূহ
ধাপ ১: MongoDB ডিপ্লয়
- MongoDB ইনস্টল:
sudo apt install gnupg curl
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt update
sudo apt install -y mongodb-org
sudo systemctl start mongod
sudo systemctl enable mongod
-
ডাটাবেস এবং ইউজার তৈরি:
- MongoDB শেলে প্রবেশ:
mongosh
- naturalsefa ডাটাবেস:
javascript use naturalsefa db.createUser({ user: "naturalsefa_user", pwd: "your_secure_password", roles: [{ role: "readWrite", db: "naturalsefa" }] })
- tariqul ডাটাবেস:
javascript use tariqul db.createUser({ user: "tariqul_user", pwd: "your_secure_password", roles: [{ role: "readWrite", db: "tariqul" }] }) exit
-
MongoDB সিকিউরিটি:
-
/etc/mongod.conf
-এbindIp: 127.0.0.1
নিশ্চিত করুন।
-
MongoDB রিস্টার্ট:
sudo systemctl restart mongod
ধাপ ২: MongoDB ব্যাকআপ সেটআপ
- ব্যাকআপ ডিরেক্টরি:
mkdir -p ~/backups/mongodb
-
ব্যাকআপ স্ক্রিপ্ট:
- naturalsefa ডাটাবেস:
nano ~/backups/mongodb_backup_naturalsefa.sh
```bash
#!/bin/bash
BACKUP_DIR=~/backups/mongodb
DB_NAME=naturalsefa
TIMESTAMP=$(date +%F-%H-%M-%S)
BACKUP_NAME="backup-$DB_NAME-$TIMESTAMP.gz"
mongodump --db $DB_NAME --authenticationDatabase naturalsefa -u naturalsefa_user -p your_secure_password --archive=$BACKUP_DIR/$BACKUP_NAME --gzip
ls -t $BACKUP_DIR/backup-$DB_NAME-*.gz | tail -n +6 | xargs -I {} rm {}
```
-
tariqul ডাটাবেস:
nano ~/backups/mongodb_backup_tariqul.sh
```bash
#!/bin/bash
BACKUP_DIR=~/backups/mongodb
DB_NAME=tariqul
TIMESTAMP=$(date +%F-%H-%M-%S)
BACKUP_NAME="backup-$DB_NAME-$TIMESTAMP.gz"
mongodump --db $DB_NAME --authenticationDatabase tariqul -u tariqul_user -p your_secure_password --archive=$BACKUP_DIR/$BACKUP_NAME --gzip
ls -t $BACKUP_DIR/backup-$DB_NAME-*.gz | tail -n +6 | xargs -I {} rm {}
```
- এক্সিকিউটেবল করুন:
chmod +x ~/backups/mongodb_backup_naturalsefa.sh
chmod +x ~/backups/mongodb_backup_tariqul.sh
- Cron Job:
crontab -e
- প্রতি ঘণ্টায়:
0 * * * * ~/backups/mongodb_backup_naturalsefa.sh
0 * * * * ~/backups/mongodb_backup_tariqul.sh
ধাপ ৩: টেস্টিং
- MongoDB স্ট্যাটাস:
sudo systemctl status mongod
- ব্যাকআপ চেক:
ls ~/backups/mongodb
সমস্যা সমাধান
- MongoDB ত্রুটি:
sudo systemctl status mongod
sudo tail -f /var/log/mongodb/mongod.log
-
ব্যাকআপ ত্রুটি:
- স্ক্রিপ্ট ম্যানুয়ালি রান করে চেক করুন:
~/backups/mongodb_backup_naturalsefa.sh
সিকিউরিটি সুপারিশ
- ব্যাকআপ স্টোরেজ: ব্যাকআপ ফাইলগুলো AWS S3 বা অন্য ক্লাউডে স্থানান্তর করুন।
- MongoDB সিকিউরিটি: শুধুমাত্র localhost-এ অ্যাক্সেস সীমাবদ্ধ রাখুন।
রেফারেন্স
- MongoDB ডকুমেন্টেশন
পরিশিষ্ট
- তারিখ: ৮ জুলাই, ২০২৫
- লেখক: Grok 3, xAI
- যোগাযোগ: প্রশ্ন থাকলে Hostinger সাপোর্ট বা ডেভেলপারের সাথে যোগাযোগ করুন।
This content originally appeared on DEV Community and was authored by Md Tariqul Islam