مجله ایرانیکاسرور آموزش سرور، هاست، وردپرس و شبکه پنل کاربری

بکاپ خودکار PostgreSQL با Databasus روی سرور مجازی ایران | راهنمای کامل نصب، پیکربندی و بازیابی

اگر روی سرور مجازی ایران شما یک دیتابیس PostgreSQL در حال اجراست، احتمالاً تا به حال چند بار به این فکر افتاده‌اید که «اگر یک روز دیتابیس از بین برود، چقدر زمان برای بازگرداندن…

Amir Jabbari 📅 1 مهر 1405 ⏱ 13 دقیقه مطالعه 👁 3 بازدید 💬 0 دیدگاه

اگر روی سرور مجازی ایران شما یک دیتابیس PostgreSQL در حال اجراست، احتمالاً تا به حال چند بار به این فکر افتاده‌اید که «اگر یک روز دیتابیس از بین برود، چقدر زمان برای بازگرداندن سایت لازم دارم؟» این سؤال ساده می‌تواند تفاوت بین یک اختلال چند دقیقه‌ای و یک فاجعه چند روزه باشد. در این راهنما، به‌صورت عملی یاد می‌گیرید چگونه با ابزار Databasus روی سرور مجازی ایران، یک سیستم بکاپ خودکار PostgreSQL راه‌اندازی کنید که واقعاً قابل اعتماد باشد و در لحظه نیاز، بازیابی را ساده کند.

فهرست مطالب

Databasus چیست و چرا برای بکاپ PostgreSQL روی VPS ایران مناسب است؟

Databasus یک ابزار متن‌باز و self-hosted برای مدیریت بکاپ دیتابیس است که با زبان Go و TypeScript نوشته شده و تحت لایسنس Apache 2.0 منتشر می‌شود . این ابزار از دیتابیس‌های PostgreSQL، MySQL، MariaDB و MongoDB پشتیبانی می‌کند و به‌جای اسکریپت‌های دستی و cron job‌های پراکنده، یک رابط کاربری وب مدرن در اختیار شما می‌گذارد .

نکته مهم درباره Databasus این است که این ابزار به‌طور پیش‌فرض از یک کاربر فقط-خواندنی (read-only) برای بکاپ‌گیری استفاده می‌کند و هرگز رمز یا اطلاعاتی که بتواند داده‌های شما را تغییر دهد ذخیره نمی‌کند . این ویژگی در محیط production اهمیت زیادی دارد، چون حتی اگر Databasus به هر دلیلی compromise شود، دیتابیس اصلی شما در امان می‌ماند.

برای مدیران سرور مجازی ایران، Databasus یک مزیت مشخص دارد: برخلاف ابزارهای پیچیده‌ای مثل pgBackRest که نیاز به پیکربندی فایل‌های تو در تو دارند، Databasus همه چیز را از طریق وب UI انجام می‌دهد و نیازی به حفظ کردن دستورات خط فرمان پیچیده ندارید.

چرا بکاپ PostgreSQL روی سرور مجازی ایران اهمیت ویژه دارد؟

دیتابیس PostgreSQL قلب تپنده بسیاری از سایت‌های وردپرسی، فروشگاه‌های اینترنتی و اپلیکیشن‌های تحت وب است. در یک فروشگاه اینترنتی، دیتابیس شامل اطلاعات کاربران، سفارش‌ها، محصولات، تراکنش‌های پرداخت و تنظیمات سایت است. اگر فایل‌های سایت را داشته باشید اما دیتابیس از دست برود، عملاً سایت شما به یک پوسته خالی تبدیل می‌شود.

خرابی دیسک سرور، حذف اشتباهی یک جدول، خطای یک افزونه یا اسکریپت، و حتی یک دستور DROP DATABASE اشتباه در محیط production، همگی سناریوهایی هستند که بدون بکاپ قابل اعتماد به فاجعه تبدیل می‌شوند.

⚠️ هشدار: بکاپی که روی همان سروری ذخیره شود که دیتابیس روی آن اجرا می‌شود، بکاپ محسوب نمی‌شود. اگر دیسک VPS از بین برود، هم دیتابیس و هم بکاپ با هم از دست می‌روند.

پیش‌نیازهای نصب Databasus روی سرور مجازی ایران

قبل از شروع، مطمئن شوید که موارد زیر روی سرور شما فراهم است:

🔹 سرور مجازی ایران با Ubuntu 22.04 یا Ubuntu 24.04
🔹 دسترسی SSH با کاربر root یا sudo
🔹 PostgreSQL نسخه ۱۴ یا بالاتر (Databasus از نسخه‌های ۱۴ تا ۱۸ پشتیبانی می‌کند)
🔹 Docker و Docker Compose نسخه ۲.۰ یا بالاتر
🔹 حداقل ۱ هسته CPU و ۵۰۰ مگابایت رم برای خود Databasus
🔹 فضای ذخیره‌سازی کافی برای نگهداری نسخه‌های بکاپ

📌 نکته: اگر PostgreSQL روی سرور دیگری قرار دارد و از سرور مجازی ایران شما قابل دسترسی است، همچنان می‌توانید از Databasus برای بکاپ‌گیری استفاده کنید. فقط باید دسترسی شبکه و تنظیمات pg_hba.conf را بررسی کنید.

مرحله اول: اتصال به سرور و بررسی وضعیت PostgreSQL

ابتدا با SSH وارد سرور مجازی ایران خود شوید:

ssh root@SERVER_IP

پس از ورود، وضعیت سرویس PostgreSQL را بررسی کنید:

systemctl status postgresql

اگر سرویس فعال باشد، باید وضعیت active (running) را مشاهده کنید. برای بررسی نسخه PostgreSQL:

psql --version

خروجی باید چیزی شبیه psql (PostgreSQL) 16.x باشد. اگر نسخه PostgreSQL شما پایین‌تر از ۱۴ است، باید قبل از نصب Databasus آن را ارتقا دهید.

مرحله دوم: نصب Databasus با یک دستور

Databasus یک اسکریپت نصب خودکار برای لینوکس ارائه می‌دهد که Docker را بررسی و نصب می‌کند، فایل docker-compose.yml را می‌سازد و سرویس را راه‌اندازی می‌کند . این سریع‌ترین روش نصب است:

sudo apt-get install -y curl && \
sudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh | sudo bash

پس از اجرای اسکریپت، بررسی کنید که کانتینر Databasus در حال اجرا باشد:

docker ps

باید کانتینری با نام databasus و پورت 4005 مشاهده کنید. اگر Docker و Docker Compose از قبل روی سرور نصب بودند، اسکریپت فقط Databasus را راه‌اندازی می‌کند. در غیر این صورت، Docker را هم نصب می‌کند.

📌 نکته: اگر می‌خواهید از Docker Compose دستی استفاده کنید، فایل docker-compose.yml را در مسیر /opt/databasus/ ایجاد کنید و محتوای آن را مطابق مستندات رسمی Databasus تنظیم نمایید .

مرحله سوم: اتصال Databasus به PostgreSQL روی همان سرور

یکی از چالش‌های رایج هنگام اجرای Databasus داخل Docker این است که 127.0.0.1 داخل کانتینر به خود سرور host اشاره نمی‌کند. اگر PostgreSQL روی همان VPS و خارج از Docker اجرا می‌شود، باید Databasus را در حالت network_mode: host اجرا کنید یا از آدرس IP داخلی Docker استفاده کنید.

ساده‌ترین راه‌حل برای Docker Compose، تغییر فایل compose به این شکل است:

services:
  databasus:
    container_name: databasus
    image: databasus/databasus:latest
    network_mode: host
    volumes:
      - ./databasus-data:/databasus-data
    restart: unless-stopped

با network_mode: host، کانتینر Databasus از شبکه host استفاده می‌کند و می‌تواند با آدرس 127.0.0.1 به PostgreSQL روی سرور متصل شود .

📌 نکته: حالت network_mode: host فقط روی لینوکس به‌درستی کار می‌کند. اگر از Docker Desktop روی ویندوز یا macOS استفاده می‌کنید، باید از host.docker.internal به‌عنوان آدرس دیتابیس استفاده کنید.

مرحله چهارم: ساخت کاربر اختصاصی بکاپ در PostgreSQL

هرگز از کاربر اصلی PostgreSQL برای بکاپ‌گیری استفاده نکنید. یک کاربر اختصاصی با حداقل دسترسی لازم بسازید. وارد PostgreSQL شوید:

sudo -u postgres psql

سپس کاربر بکاپ را ایجاد کنید:

CREATE USER backup_user WITH PASSWORD 'STRONG_PASSWORD';

برای بکاپ‌گیری منطقی (Logical Backup) با pg_dump، کاربر بکاپ به دسترسی SELECT روی تمام جداول دیتابیس موردنظر نیاز دارد. اگر دیتابیس شما چند schema دارد، دسترسی‌ها را برای هر schema به‌صورت جداگانه تنظیم کنید.

⚠️ هشدار امنیتی: رمز عبور واقعی را داخل مقاله، اسکریپت عمومی یا مخزن Git قرار ندهید. برای ذخیره رمزها از یک password manager یا متغیرهای محیطی امن استفاده کنید.

سرور مجازی ایران با منابع اختصاصی برای بکاپ‌گیری حرفه‌ای

اگر دیتابیس PostgreSQL شما روی سروری با منابع اشتراکی و دیسک کند اجرا می‌شود، فرآیند بکاپ‌گیری می‌تواند ساعت‌ها طول بکشد و روی عملکرد سایت تأثیر بگذارد. ایرانیکاسرور سرور مجازی ایران با منابع اختصاصی CPU و RAM، دیسک NVMe برای I/O سریع و پهنای باند نامحدود ارائه می‌دهد تا بکاپ‌گیری بدون افت عملکرد انجام شود. پشتیبانی ۲۴/۷ ما نیز در تمام مراحل راه‌اندازی بکاپ در کنار شماست.

📞 تماس با پشتیبانی: 021-91302460 | ایرانیکاسرور

مرحله پنجم: ورود به رابط وب Databasus و اتصال دیتابیس

پس از نصب، آدرس Databasus را در مرورگر باز کنید:

http://SERVER_IP:4005

در اولین ورود، یک حساب کاربری بسازید و رمز عبور قوی تعیین کنید. سپس روی گزینه New Backup یا Add Database کلیک کنید و اطلاعات اتصال PostgreSQL را وارد نمایید:

🔹 Host: 127.0.0.1 (اگر از network_mode: host استفاده می‌کنید) یا آدرس IP سرور
🔹 Port: 5432 (پورت پیش‌فرض PostgreSQL)
🔹 Database: نام دیتابیس موردنظر (مثلاً mywebsite)
🔹 Username: backup_user
🔹 Password: رمز عبوری که در مرحله قبل تنظیم کردید

Databasus قبل از ذخیره تنظیمات، اتصال به دیتابیس را تست می‌کند و در صورت بروز خطا، پیام دقیقی نمایش می‌دهد.

مرحله ششم: تنظیم زمان‌بندی و سیاست نگهداری بکاپ

Databasus از زمان‌بندی‌های انعطاف‌پذیر پشتیبانی می‌کند: ساعتی، روزانه، هفتگی، ماهانه یا حتی عبارت cron سفارشی . برای یک سایت معمولی، بکاپ روزانه در ساعت ۳ بامداد نقطه شروع خوبی است:

🔹 Backup Frequency: Daily
🔹 Time: 03:00 (ساعت کم‌بار ترافیک)
🔹 Retention Policy: بر اساس نیاز شما

Databasus سه نوع سیاست نگهداری ارائه می‌دهد :

🔹 By Time: نگهداری بکاپ‌های اخیر بر اساس تعداد روز (مثلاً ۷ روز اخیر)
🔹 By Count: نگهداری تعداد مشخصی از آخرین بکاپ‌ها (مثلاً ۳۰ نسخه)
🔹 GFS (Grandfather-Father-Son): نگهداری همزمان بکاپ‌های ساعتی، روزانه، هفتگی، ماهانه و سالانه — مناسب برای اهداف compliance

📌 نکته: برای یک فروشگاه اینترنتی که مرتب سفارش ثبت می‌کند، بکاپ روزانه ممکن است باعث از دست رفتن سفارش‌های بین دو بکاپ شود. در چنین مواردی می‌توانید فاصله بکاپ‌ها را به هر ۶ ساعت یا هر ۳ ساعت کاهش دهید.

مرحله هفتم: انتخاب مقصد ذخیره‌سازی بکاپ

Databasus از مقصدهای ذخیره‌سازی متعددی پشتیبانی می‌کند: دیسک محلی، S3، Google Drive، Dropbox، NAS، SFTP و Rclone (که بیش از ۷۰ سرویس ابری را پوشش می‌دهد) .

برای یک سرور مجازی ایران، بهترین رویکرد این است که حتماً یک نسخه از بکاپ را در مقصدی خارج از خود VPS نگهداری کنید. اگر VPS اصلی از دسترس خارج شود و تمام بکاپ‌ها روی همان VPS باشند، هدف اصلی بکاپ‌گیری از بین رفته است.

⚠️ هشدار: Databasus تمام بکاپ‌ها را با AES-256-GCM رمزنگاری می‌کند، بنابراین حتی اگر بکاپ‌ها روی S3 یا فضای ابری قرار بگیرند، بدون کلید رمزگشایی قابل خواندن نیستند . با این حال، کلید رمزگشایی و فایل secret.key را در جای امن و جداگانه نگهداری کنید.

مرحله هشتم: بررسی موفقیت بکاپ و تست بازیابی

پس از اجرای اولین بکاپ، بررسی کنید که فایل بکاپ واقعاً ایجاد شده باشد. Databasus به‌صورت پیش‌فرض بکاپ‌ها را با فرمت pg_dump custom format و فشرده‌سازی zstd ذخیره می‌کند که نسبت به فرمت SQL ساده تا ۲۰ برابر فشرده‌تر است .

برای مشاهده فایل‌های بکاپ در سرور:

ls -lah /opt/databasus/databasus-data/backups/

Databasus یک قابلیت مهم به نام Restore Verification دارد: پس از هر بکاپ زمان‌بندی‌شده، یک verification agent بکاپ را دانلود می‌کند، آن را در یک دیتابیس موقت restore می‌کند و تعداد ردیف‌های هر جدول را با دیتابیس اصلی مقایسه می‌کند . نتیجه این بررسی به شما می‌گوید که بکاپ واقعاً قابل بازیابی است یا نه.

جمع‌بندی این بخش: بکاپی که تست بازیابی نشده باشد، بکاپ قابل اعتماد محسوب نمی‌شود. Databasus این تست را خودکار انجام می‌دهد، اما توصیه می‌شود هر چند وقت یک‌بار به‌صورت دستی نیز یک نسخه را روی یک دیتابیس آزمایشی restore کنید.

مقایسه Databasus با سایر ابزارهای بکاپ PostgreSQL

ویژگی Databasus pgBackRest Barman pg_dump دستی
رابط کاربری وب ✅ دارد ❌ ندارد ❌ ندارد ❌ ندارد
زمان‌بندی بصری ✅ دارد ⚠️ محدود ⚠️ محدود ❌ نیاز به cron
ذخیره‌سازی ابری ✅ S3, Drive, SFTP ✅ S3, Azure ✅ S3 ❌ دستی
رمزنگاری بکاپ ✅ AES-256-GCM ✅ دارد ⚠️ محدود ❌ ندارد
تست بازیابی خودکار ✅ دارد ❌ ندارد ❌ ندارد ❌ ندارد
پشتیبانی PITR ✅ دارد (Agent) ✅ دارد ✅ دارد ❌ ندارد
مناسب برای مبتدی ✅ بله ❌ پیچیده ⚠️ متوسط ⚠️ متوسط

بازیابی دستی PostgreSQL با pg_restore

در برخی سناریوها ممکن است بخواهید فایل بکاپ را خارج از رابط Databasus نیز بازیابی کنید. Databasus از فرمت custom pg_dump استفاده می‌کند، بنابراین بازیابی با pg_restore انجام می‌شود :

pg_restore -U postgres -d mywebsite backup.dump

اگر دیتابیس به‌طور کامل حذف شده است، ابتدا آن را دوباره ایجاد کنید:

sudo -u postgres createdb mywebsite

سپس عمل restore را انجام دهید. توجه داشته باشید که فایل‌های بکاپ Databasus رمزنگاری شده‌اند؛ برای بازیابی دستی، ابتدا باید فایل را با کلید رمزگشایی از حالت رمز خارج کنید.

⚠️ هشدار: قبل از restore روی دیتابیس اصلی، حتماً از وضعیت فعلی دیتابیس نیز یک بکاپ بگیرید. اگر بکاپ اشتباهی را انتخاب کرده باشید، این کار به شما امکان بازگشت می‌دهد.

خطاهای رایج در بکاپ PostgreSQL و راه‌حل آن‌ها

1. خطای Connection refused

اگر Databasus نمی‌تواند به PostgreSQL متصل شود، بررسی کنید که PostgreSQL روی پورت 5432 گوش می‌دهد:

ss -lntp | grep 5432

2. خطای Authentication failed

مطمئن شوید که رمز عبور کاربر backup_user درست وارد شده است. همچنین تنظیمات pg_hba.conf را بررسی کنید؛ ممکن است روش احراز هویت برای اتصال از localhost متفاوت باشد.

3. خطای Permission denied

کاربر بکاپ باید حداقل دسترسی SELECT روی جداول موردنظر داشته باشد. سطح دسترسی کاربر را در PostgreSQL بررسی کنید.

4. خطای فضای دیسک

بکاپ‌های متعدد می‌توانند فضای زیادی مصرف کنند. بررسی کنید:

df -h && du -sh /opt/databasus/*

در صورت نیاز، سیاست Retention را بازبینی کنید یا مقصد ذخیره‌سازی را به فضای ابری منتقل کنید.

قانون ۳-۲-۱ برای بکاپ PostgreSQL روی سرور مجازی ایران

یکی از اصول شناخته‌شده در مدیریت بکاپ، قانون ۳-۲-۱ است: حداقل ۳ نسخه از داده‌ها، روی ۲ نوع رسانه مختلف، که ۱ نسخه در مکانی جدا از سرور اصلی نگهداری شود.

برای یک سایت میزبانی‌شده روی سرور مجازی ایران، این ساختار می‌تواند به این شکل باشد:

🔹 نسخه اصلی: دیتابیس PostgreSQL روی VPS ایران
🔹 نسخه بکاپ اول: دیسک محلی VPS (برای بازیابی سریع)
🔹 نسخه بکاپ دوم: S3 یا Object Storage خارج از VPS (برای محافظت در برابر خرابی سرور)
🔹 نسخه بکاپ سوم: NAS یا سرور بکاپ جداگانه (برای محافظت در برابر باج‌گیری و حملات)

جمع‌بندی: نگهداری تنها یک نسخه بکاپ روی همان VPS، ریسک از دست دادن همزمان سرور و بکاپ را به همراه دارد. Databasus این امکان را می‌دهد که بکاپ‌ها را همزمان به چند مقصد ارسال کنید.

مشکلی در پیکربندی بکاپ دارید؟

اگر در تنظیم Databasus، اتصال به PostgreSQL یا بازیابی بکاپ به مشکلی برخوردید، تیم فنی ایرانیکاسرور آماده کمک به شماست. کافیست درخواست خود را از طریق صفحه کانفیگ و رفع مشکل ارسال کنید.

📞 تماس با پشتیبانی: 021-91302460 | ایرانیکاسرور

سوالات متداول درباره بکاپ PostgreSQL با Databasus

آیا Databasus فقط برای PostgreSQL است؟

خیر. Databasus از PostgreSQL، MySQL، MariaDB و MongoDB پشتیبانی می‌کند . البته برخی قابلیت‌های پیشرفته مثل بکاپ فیزیکی و PITR فقط برای PostgreSQL در دسترس است.

آیا می‌توان Databasus را روی سرور مجازی ایران نصب کرد؟

بله. Databasus در محیط Docker اجرا می‌شود و روی هر VPS لینوکسی با منابع کافی قابل نصب است. حداقل منابع موردنیاز یک هسته CPU و ۵۰۰ مگابایت رم است .

تفاوت Databasus با pg_dump دستی چیست؟

Databasus از همان pg_dump برای بکاپ‌گیری منطقی استفاده می‌کند، اما مدیریت زمان‌بندی، ذخیره‌سازی چندمقصدی، رمزنگاری، سیاست Retention و تست بازیابی را به‌صورت خودکار انجام می‌دهد . در واقع Databasus جایگزین pg_dump نیست، بلکه مدیریت آن را ساده می‌کند.

آیا بکاپ PostgreSQL همان بکاپ کل سایت است؟

خیر. بکاپ PostgreSQL فقط اطلاعات دیتابیس را پوشش می‌دهد. فایل‌های سایت، آپلودها، فایل .env، تنظیمات Nginx و گواهی SSL نیز باید در برنامه Disaster Recovery جداگانه در نظر گرفته شوند.

چند نسخه بکاپ نگه داریم؟

عدد ثابتی برای همه سایت‌ها وجود ندارد. به حجم دیتابیس، تعداد تغییرات روزانه، فضای ذخیره‌سازی و اهمیت داده‌ها بستگی دارد. برای شروع، نگهداری ۷ نسخه روزانه و ۴ نسخه هفتگی یک نقطه تعادل خوب است.

جمع‌بندی

بکاپ خودکار PostgreSQL روی سرور مجازی ایران یکی از مهم‌ترین کارهایی است که یک مدیر سرور باید انجام دهد. با Databasus، این کار از یک فرآیند دستی و خطاپذیر به یک سیستم خودکار، رمزنگاری‌شده و قابل اعتماد تبدیل می‌شود. Databasus با رابط وب مدرن، پشتیبانی از مقصدهای ذخیره‌سازی متعدد، رمزنگاری AES-256-GCM و قابلیت تست بازیابی خودکار، یکی از کامل‌ترین گزینه‌های متن‌باز برای این کار است .

مراحل کلی این راهنما عبارت بودند از: نصب Databasus با یک دستور، اتصال به PostgreSQL، تنظیم زمان‌بندی بکاپ، انتخاب مقصد ذخیره‌سازی، بررسی موفقیت بکاپ و تست بازیابی. مهم‌ترین نکته این است که بکاپی که بازیابی نشده، بکاپ قابل اعتماد نیست. حتماً فرآیند Restore را به‌صورت دوره‌ای آزمایش کنید و حداقل یک نسخه از بکاپ را خارج از VPS اصلی نگهداری نمایید.

ایرانیکاسرور — ارائه‌دهنده سرور مجازی ایران، هاست وردپرس، هاست لینوکس، سرور اختصاصی ایران و سرور مجازی فرانسه با منابع اختصاصی و پشتیبانی ۲۴/۷

📞 تماس با پشتیبانی: 021-91302460 | ایرانیکاسرور

🔹 سرور مجازی ایران، سرور اختصاصی، هاست وردپرس و هاست لینوکس — مشاهده محصولات ایرانیکاسرور

این آموزش برایت مفید بود؟ می‌توانی لینک آن را ذخیره یا برای دیگران ارسال کنی.

Amir Jabbari

نویسنده مجله ایرانیکاسرور؛ منتشرکننده آموزش‌ها و راهنماهای کاربردی در حوزه هاست، سرور، وردپرس و شبکه.

برای اجرای آموزش به زیرساخت نیاز داری؟

سرویس مرتبط را ببین؛ معرفی خدمات در این بخش کوتاه نگه داشته شده تا تمرکز اصلی صفحه روی آموزش باقی بماند.

ایرانیکاسرور
گفت‌وگو درباره آموزش

دیدگاه‌ها

0 دیدگاه برای این مطلب ثبت شده است.

هنوز دیدگاهی ثبت نشده است؛ اگر سؤال یا تجربه‌ای درباره این آموزش داری، همین‌جا بنویس. پاسخ‌های مدیریت و کاربران به‌صورت مشخص از هم تفکیک می‌شوند.

دیدگاه یا سؤال خود را بنویسید

ایمیل شما منتشر نمی‌شود. فیلدهای ضروری مشخص شده‌اند.