Для подрезки данных продаж и отложенных чеков в БД предназначен сервис, который входит в пакет artix-cs-db-trimmer. Для установки пакета необходимо выполнить команду:

sudo apt-get install artix-cs-db-trimmer

Файлы сервиса размещаются в директории /opt/db-trimmer. Настройка подрезки осуществляется в конфигурационном файле /opt/db-trimmer/config.ini

СекцияОписание секции
Наименование
Тип данных
Возможные значения
Описание
Примечания
[MAIN]Основная секция для включения/выключения подрезки

sales_actual_days

целочисленный Количество дней хранения продажЕсли установить значение равное 0 или меньше, то подрезка осуществляться не будет
dictionaries_actual_daysцелочисленный Количество дней хранения справочниковЕсли установить значение равное 0 или меньше, то подрезка осуществляться не будет
[SALES_DB]

 

 

 

 

Настройки подключения к БД, в которой требуется подрезка продаж

 

actual_days

 целочисленный Количество дней хранения продаж

Если установить значение равное 0 или меньше, то подрезка осуществляться не будет.

Если этот параметр не указан, то будет взято значение из параметра sales_actual_days секции [MAIN]

hostстроковый Хост базы данных 
portцелочисленный Порт базы данных 

user

строковый Пользователь, от имени которого будет выполняться подрезка 

passwd

строковый Пароль пользователя 

db

строковый База данных, для которой будет осуществляться подрезкаПодрезка данных может проводиться только в одной БД

tables

строковый
  • aspectitem
  • bonusitem
  • button
  • carditem
  • certificate
  • client
  • couponitem
  • crights
  • department
  • discitem
  • document
  • goodsitem
  • kkm
  • moneyitem
  • paymentitem
  • securitylog
  • stornogoodsitem
  • users
  • workshift
Список таблиц, для которых будут подрезаться данныеНаименования таблиц перечисляются через запятую
[DICTIONARIES_DB]

Настройки подключения к БД, в которой требуется подрезка справочников

 actual_days целочисленный  Количество дней хранения справочников

Если установить значение равное 0 или меньше, то подрезка осуществляться не будет

Если этот параметр не указан, то будет взято значение из параметра dictionaries_actual_days секции [MAIN]

hostстроковый Хост базы данных 
portцелочисленный Порт базы данных 
userстроковый Пользователь, от имени которого будет выполняться подрезка 
passwdстроковый Пароль пользователя 
dbстроковый База данных, для которой будет осуществляться подрезкаПодрезка данных может проводиться только в одной БД
tablesстроковый
  • pendingcheck
Список таблиц, для которых будут подрезаться данные 
Пример настройки
[MAIN]
; Количество дней хранения продаж. Если установить значение равное 0 или меньше, то подрезка осуществляться не будет
sales_actual_days = 61
; Количество дней хранения справочников. Если установить значение равное 0 или меньше, то подрезка осуществляться не будет
dictionaries_actual_days = 0

; Настройки подключения к БД, в которой требуется подрезка продаж
[SALES_DB]
; Количество дней хранения продаж. Если установить значение равное 0 или меньше, то подрезка осуществляться не будет. 
; Если этот параметр не указан, то будет взято значение из параметра sales_actual_days секции [MAIN]
actual_days = 61
host=127.0.0.1
port=3306
user=netroot
passwd=netroot
db=documentsAll
; Таблицы, данные в которых требуется подрезать (названия таблиц должны указываться через запятую)
; Доступные таблицы:
; aspectitem, bonusitem, button, carditem, certificate, client, couponitem, crights, department, discitem, document, goodsitem, kkm, moneyitem, paymentitem, securitylog, stornogoodsitem, users, workshift
tables = bonusitem, carditem, client, couponitem, department, discitem, document, goodsitem, kkm, moneyitem, paymentitem, stornogoodsitem, users, workshift

; Настройки подключения к БД, в которой требуется подрезка справочников
[DICTIONARIES_DB]
; Количество дней хранения справочников. Если установить значение равное 0 или меньше, то подрезка осуществляться не будет
; Если этот параметр не указан, то будет взято значение из параметра dictionaries_actual_days секции [MAIN]
actual_days = 0
host=127.0.0.1
port=3306
user=netroot
passwd=netroot
db=dictionariesAll
; Таблицы, данные в которых требуется подрезать (названия таблиц должны указываться через запятую)
; Доступные таблицы:
; pendingcheck
tables = pendingcheck

Если нужна подрезка разных БД или таблиц с разным значением актуальности данных, то есть возможность дублировать секции [SALES_DB] и [DICTIONARIES_DB], добавляя в их названия суффиксы (например: [SALES_DB_1] и [DICTIONARIES_DB_1]). Для всех секций поочередно будет выполняться подрезка данных.

Подрезка данных выполняется автоматически ежедневно. При подрезке данных в указанной БД и таблицах осуществляется поиск и удаление записей, старше указанного количества суток. Определение устаревших записей выполняется по полю update_time (время создания или правки записи).

При необходимости запуска подрезки вручную нужно запустить скрипт /etc/cron.daily/db-trimmer.

Логирование событий ведется в файле  /opt/db-trimmer/log_db_trimmer.log

При удалении записей из таблиц БД размер таблиц в файловой системе не изменяется. Для оптимизации таблиц в файловой системе в пакете artix-cs-db-trimmer предусмотрен скрипт /opt/db-trimmer/optimize_tables.py. Скрипт запускается вручную и предусмотрен только для запуска на той же машине, где находится СУБД. Для запуска необходимо в директории /opt/db-trimmer/ выполнить команду:

sudo python optimize_tables.py

Логирование событий ведется в файле  /opt/db-trimmer/log_optimize_tables.log

  • No labels