README.rst
2.06 KB
Maintenance
Script ini untuk vacuum dan backup database PostgreSQL. Berikut cara memasangnya:
$ python3 -m venv env $ env/bin/pip install --upgrade pip $ env/bin/pip install git+https://git.opensipkd.com/sugiana/maintenance
Buat file konfigurasi maintenance.ini
:
[main] # Perintah yang dijalankan sebelum pg_dump before = /usr/sbin/ntpdate -u ntp.ubuntu.com systemctl stop cron.service systemctl stop nginx.service # Perintah yang dijalankan setelah pg_dump after = systemctl start nginx.service systemctl start cron.service pg_stop = systemctl stop postgresql.service pg_start = systemctl start postgresql.service pg_lib_dir = /usr/lib/postgresql pg_conf_dir = /etc/postgresql # Daftar database yang akan di-vacuum dan di-pg_dump database = pbb bphtb pad # Lokasi direktori hasil pg_dump database_backup_dir = /var/backups/pg # Jumlah masing-masing database yang tersimpan database_rotate = 5 [formatter_generic] format = %(asctime)s %(levelname)s %(message)s [handler_console] class = StreamHandler stream = sys.stdout formatter = generic [handler_file] class = FileHandler filename = /var/log/maintenance.log formatter = generic [logger_root] handlers = console, file level = DEBUG
Konfigurasi ini dibuat untuk Debian 8 ke atas yaitu yang sudah menerapkan
systemd
. Sesuaikan baris database
yang berisi nama database yang akan
di-backup. Baris before
biasanya diisi dengan perintah untuk menghentikan
daemon yang menggunakan database, sedangkan baris after
untuk
menghidupkannya kembali setelah proses backup selesai.
Selanjutnya jalankan sebagai root:
$ sudo env/bin/maintenance maintenance.ini
Daftarkan di cron pada jam 1:45 saat dimana kegiatan transaksi jarang
dilakukan. Contohnya di /etc/cron.d/maintenance
berikut ini:
MAILTO="" 45 1 * * * root cd /home/sugiana/2020/08 && env/bin/maintenance maintenance.ini >/dev/null 2>&1
Semoga berhasil.