MongoDB ডিপ্লয় এবং ব্যাকআপ ডকুমেন্টেশন (Hostinger VPS)



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