Настройка еженедельной очистки базы данных

Основные особенности очистки базы:

Еженедельную очистку базы данных можно настроить с помощью планировщика задач Cron:

  1. В командной строке сервера Staffcop выполните команду:

sudo crontab -e
  1. В открывшийся файл добавьте строки для выполнения очистки базы данных в определённый день недели:

0 22 * * 5 sudo staffcop cleanup 100 >> /srv/cleanupdb.log

Эта команда:

  1. Каждую неделю в указанное время будет стирать из базы данных все события старше 100 дней;

  2. Лог работы будет записываться в файл /srv/cleanupdb.log.

Оптимизация очищенной базы

Чтобы физически освободить дисковое пространство после очистки базы:

  1. Откройте файл скрипта compact, являющегося частью Staffcop:

sudo nano /usr/share/staffcop/bin/compact
  1. В открывшемся файле раскомментируйте строки echo «Vacuum database» и sudo -u postgres psql staffcop -c «vacuum full». Итоговый файл будет иметь следующий вид:

#!/bin/bash
# USE compact
# HELP Cleanup unreffered dimensions and vaccum database
staffcop stop
echo "Cleanup dimensions"
cat sql/cleanup_dimensions.sql| bin/sql
echo "Vacuum database"
sudo -u postgres psql staffcop -c "vacuum full"
staffcop start
echo "Cleanup done"
bin/info
  1. Сохраните изменения.

  2. После завершения очистки базы запустите:

staffcop compact

Примечание

Процедура оптимизации базы данных может занимать длительное время. Запускайте её в нерабочие или выходные дни.