پرش به محتوا

نصب PostgreSQL، ساخت کاربر و پشتیبان‌گیری خودکار

PostgreSQL را از مخزن Ubuntu نصب کنید، برای هر برنامه نقش و پایگاه داده‌ی جدا بسازید و بکاپ شبانه با نگهداری ۱۴ روزه تنظیم کنید.

Ubuntu 24.04 LTSسطح: مقدماتیبرای: Ubuntu 24.04 LTS، Ubuntu 26.04 LTS، Ubuntu 22.04 LTSبه‌روزرسانی: ۱۶ آبان ۱۴۰۵

۱. نصب

bash
sudo apt update
sudo apt install -y postgresql
sudo systemctl enable --now postgresql
ls /etc/postgresql/      # شماره‌ی نسخه، مثلاً 16 یا 18

۲. نقش و پایگاه داده

bash
sudo -u postgres createuser --pwprompt crm
sudo -u postgres createdb -O crm -E UTF8 crm
psql -h 127.0.0.1 -U crm -d crm -c 'select current_user, version();'

۳. فقط localhost

حالت پیش‌فرض Ubuntu فقط گوش دادن روی localhost است که امن‌ترین حالت است. بررسی کنید:

bash
sudo ss -ltnp | grep 5432

اگر برنامه روی سرور دیگری است، در postgresql.conf آدرس سرور را به listen_addresses اضافه کنید و در pg_hba.conf فقط IP همان سرور را با روش scram-sha-256 مجاز کنید. پورت 5432 را هم در فایروال فقط برای همان IP باز کنید.

۴. بکاپ شبانه

bash
sudo install -d -o postgres -g postgres -m 700 /var/backups/pg
sudo nano /etc/cron.d/pg-backup
ini
# m h dom mon dow user command
15 2 * * * postgres pg_dump -Fc crm > /var/backups/pg/crm-$(date +\%F).dump && find /var/backups/pg -name '*.dump' -mtime +14 -delete

علامت % در فایل cron معنای خاص دارد و باید با `` نوشته شود.

۵. بازیابی (و آزمایش منظم بازیابی)

بکاپی که هرگز بازیابی نشده، بکاپ نیست:

bash
sudo -u postgres createdb -O crm crm_restore_test
sudo -u postgres pg_restore -d crm_restore_test /var/backups/pg/crm-2026-11-07.dump
sudo -u postgres psql -d crm_restore_test -c '\dt'
sudo -u postgres dropdb crm_restore_test