From c0acd3e994030e295bdfaec03e7ef7b51a1b1688 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Fri, 1 Sep 2023 15:42:21 -0400 Subject: [PATCH] Add daily Postgres vacuum script --- roles/pvc/tasks/patroni/main.yml | 6 ++++++ roles/pvc/templates/patroni/pvcdns-vacuum.j2 | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 roles/pvc/templates/patroni/pvcdns-vacuum.j2 diff --git a/roles/pvc/tasks/patroni/main.yml b/roles/pvc/tasks/patroni/main.yml index dfa4bac..bae0a1d 100644 --- a/roles/pvc/tasks/patroni/main.yml +++ b/roles/pvc/tasks/patroni/main.yml @@ -60,6 +60,12 @@ dest: /usr/lib/check_mk_agent/plugins/postgres mode: 0755 +- name: install daily vacuum script + template: + src: patroni/pvcdns-vacuum.j2 + dest: /etc/cron.daily/pvcdns-vacuum + mode: 0755 + - name: install initial schema files copy: src: "{{ item.src }}" diff --git a/roles/pvc/templates/patroni/pvcdns-vacuum.j2 b/roles/pvc/templates/patroni/pvcdns-vacuum.j2 new file mode 100644 index 0000000..92d967b --- /dev/null +++ b/roles/pvc/templates/patroni/pvcdns-vacuum.j2 @@ -0,0 +1,16 @@ +#!/bin/bash +# Daily vaccuum script for PVCDNS database +# {{ ansible_managed }} + +# Don't run if we aren't primary +HOSTNAME="$( hostname -s )" +PRIMARY="$( pvc node list | grep primary | awk '{ print $1 }' )" +if [[ $HOSTNAME != $PRIMARY ]]; then + exit 0 +fi + +# Analyze the database +echo -e "----------------------------" &>>/var/log/pvc/pdns/vacuum.log +echo -e "$( date )" &>>/var/log/pvc/pdns/vacuum.log +echo -e "----------------------------" &>>/var/log/pvc/pdns/vacuum.log +su postgres -c 'psql pvcdns -c "VACUUM (VERBOSE, ANALYZE);"' &>>/var/log/pvc/pdns/vacuum.log