Production Databases & Automated Backup Cron Jobs
Database လုံခြုံရေးနှင့် နေ့စဉ် Auto Backup ဇယား ရေးဆွဲနည်း
Harden PostgreSQL and MySQL. Automate daily encrypted database dumps using Linux Cron jobs and push directly to AWS S3 or Cloudflare R2.
PostgreSQL/MySQL ကို production အတွက် ပြင်ဆင်ခြင်း၊ နေ့စဉ် ညသန်းခေါင်တိုင်း အလိုအလျောက် Backup ဆွဲပြီး S3/Cloud Storage ပေါ်သို့ ပို့ဆောင်သည့် Bash Script။
1. The Golden Rule of Backups (Backup စည်းမျဉ်း ၃-၂-၁)
Server ပျက်စီးသွားသော်လည်း Data မဆုံးရှုံးစေရေး
ဆာဗာလောကတွင် "ဆာဗာ မပျက်စီးဖူးသေးသူနှင့် မကြာမီ ပျက်စီးတော့မည့်သူ ဟူ၍ ၂ မျိုးသာ ရှိသည်" ဟု ဆိုလေ့ရှိပါသည်။ Hard drive error, Data corruption သို့မဟုတ် Ransomware ကြောင့် Data ဆုံးရှုံးနိုင်ပါသည်။
3-2-1 Backup Rule: Data မိတ္တူ ၃ စုံရှိရမည်၊ မီဒီယာ ၂ မျိုးတွင် သိမ်းရမည်၊ အနည်းဆုံး ၁ စုံကို မတူညီသော အခြား Cloud Storage (Offsite Cloud) ပေါ်တွင် သိမ်းဆည်းရပါမည်။
2. Automated Daily Backup Shell Script with S3/R2
နေ့စဉ် အလိုအလျောက် Backup ဆွဲသည့် Script
အောက်ပါ Bash script သည် နေ့စဉ် database dump ကို gzip compress လုပ်ပြီး Cloudflare R2 သို့မဟုတ် AWS S3 သို့ rclone ဖြင့် upload တင်ပေးကာ ၇ ရက်ကျော်သော backup အဟောင်းများကို auto-delete လုပ်ပေးပါသည်။
#!/bin/bash
set -e
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_DIR="/var/backups/postgres"
DB_NAME="production_db"
FILENAME="$BACKUP_DIR/${DB_NAME}_$TIMESTAMP.sql.gz"
mkdir -p $BACKUP_DIR
# 1. Dump database and compress with gzip
pg_dump -U postgres $DB_NAME | gzip > $FILENAME
# 2. Upload to Cloudflare R2 / AWS S3 using rclone or aws-cli
rclone copy $FILENAME remote-s3:my-backup-bucket/databases/
# 3. Delete local backups older than 7 days
find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +7 -delete
echo "Backup completed successfully at $TIMESTAMP"
Command ရှင်းလင်းချက် (ဖတ်ရှုရန် နှိပ်ပါ)
ဤ script ကို crontab -e ထဲတွင် 0 2 * * * (နေ့စဉ် မနက် ၂ နာရီတိုင်း) ထည့်သွင်းထားရုံဖြင့် နေ့စဉ် အိပ်နေချိန်တွင် အလိုအလျောက် cloud ပေါ်သို့ backup ရောက်ရှိသွားမည် ဖြစ်ပါသည်။
According to the industry-standard 3-2-1 backup rule, where should at least one copy of your production database backup be stored?
3-2-1 Backup စည်းမျဉ်းအရ သင်၏ Production Database Backup မိတ္တူ အနည်းဆုံး ၁ စုံကို မည်သည့်နေရာတွင် မဖြစ်မနေ သိမ်းဆည်းထားရမည်နည်း?