В кассовом ПО Artix версии 4.6.199 реализован скрипт /linuxcash/cash/data/db/upgradeToMySQL8.sh для перехода c MySQL 5.7 на 8.0. Скрипт необходимо запустить вручную.

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


Описание таблиц БД кассы можно прочитать в разделе "База данных".

Описание структуры баз данных

База данных Artix состоит из двух баз данных MySQL. В одной из них (БД Dictionaries) хранится справочная информация товары, кассиры, карты и т.д., в другой (БД Documents) – результаты продаж, журнал действий кассира (опционально). База данных Dictionaries оптимизирована под механизмы обновления данных, информация в ней может изменяться только сервисами, которые отвечают за обновление данных. База данных Documents предназначена для надежного хранения и поддержания целостности данных о результатах продаж, информация в эту базу добавляется только кассовой программой. С целью предотвращения ситуации окончания свободного места на диске, специальным сервисом производится удаление устаревшей информации. Файлы баз данных располагаются в директории /linuxcash/cash/data/mysql. Доступ к файлам баз данных выполняется от имени пользователя mysql.

Необходимо следить за тем, чтобы владельцем директории /linuxcash/cash/data/mysql всех файлов и поддиректорий был пользователь mysql, группа mysql.

Доступ к базам данных с localhost может быть осуществлен от имени пользователя root без пароля. Для доступа с удаленного хоста используется пользователь netroot с паролем netroot.

Для удаленного подключения должен быть доступен порт MySQL 3306.

Поддержание структуры баз данных

Для поддержания структуры базы данных в актуальном состоянии используется механизм миграции базы данных. Миграция – это удобный способ поддерживать актуальность схемы базы данных всё время неизменным и простым образом. Каждую миграцию можно рассматривать как новую версию базы данных. Схема изначально ничего не содержит, а каждая миграция изменяет ее, добавляя или убирая таблицы, столбцы или записи. Подсистема миграции включена в состав пакета artix45-mysql-db, файлы находится в директории /linuxcash/cash/data/db/.

Обновление структуры базы данных выполняется автоматически при включении кассы и перезапуске кассовой программы. За запуск процесса обновления отвечает скрипт /linuxcash/cash/bin/startup/17_update_db. Подробнее о порядке загрузке читайте в разделе "Запуск кассовой программы". Такой подход позволяет поддерживать актуальность схемы баз данных и позволяет восстановить структуру после крушения.

Для очистки результатов продаж при замене кассы достаточно удалить базу данных documents и перезапустить кассовую программу.

Для получения информации о текущей версии базы, изменениях версии, обновлениях схемы доступны следующие команды, которые выполняются из директории /linuxcash/cash/data/db:

Здесь метафайл_базы_данных – файл, который содержит информацию о базе данных.

Для базы данных:

где номер_версии – конечный номер версии, до которой будет выполнено увеличение или понижение.

Миграция баз данных построена с учетом обратной совместимости, старая версия кассовой программы будет корректно работать с новой версией базы данных.

Бэкапирование и восстановление базы данных

Описание системы

В кассовом ПО Artix реализована система бэкапирования и восстановления данных при миграции базы Documents. Использование бэкапов обеспечивает безопасный перенос данных из старых таблиц в новые. Время блокировки кассы при миграции БД сокращается с нескольких часов до 1-2 минут благодаря тому, что процесс восстановления данных производится в фоновом режиме и не мешает работе кассы.

Система бэкапирования используется только если в применяемой миграции содержатся структурные изменения следующих таблиц БД Documents:

  • document,

  • goodsitem,

  • moneyitem.

Бэкапирование производится не для всех таблиц. Список таблиц, игнорируемых при бэкапировании:

Бэкапы сохраняются в таблицах с префиксом backup. За восстановление данных отвечает скрипт, который запускается сразу после обновления таблиц. Данные восстанавливаются блоками по 1000 записей с заданным интервалом. Информация о процессе восстановления сохраняется в файл /linuxcash/logs/current/artix_restore_data.log.

Для немедленного восстановления всех данных реализован скрипт /linuxcash/cash/data/db/restore_backup_tables_now.sh. При запуске скрипт проверяет наличие бэкапов и, если они имеются, начинает процесс немедленного восстановления с нулевым интервалом между добавлением блоков данных.

Если запустить скрипт во время автоматического процесса восстановления данных, то скрипт остановит текущий процесс и начнет восстановление с нулевым интервалом.

Информация о работе скрипта сохраняется в файл /linuxcash/logs/current/artix_restore_data.log.

Настройка системы

Настройка системы бэкапирования и восстановления осуществляется в конфигурационном файле /linuxcash/cash/data/db/artixbackup.ini.

Параметр enable включает систему:

Параметр shiftCount определяет количество смен, при котором запускается создание бэкапов.

Параметр goodsItemCount определяет количество проданных товаров, при котором запускается создание бэкапов.

Если фактическое количество смен или товаров окажется меньше заданного в файле настроек, то бэкапирование не запустится.

Параметр restoreInterval задает интервал в секундах между восстановлением блоков данных.

НаименованиеТип данныхВозможные значенияОписаниеПримечания
enableлогический
  • true
  • false
Включение системы бэкапированияПо умолчанию false
shiftCountчисловой
Количество смен, при котором запускается бэкапированиеПо умолчанию 20
goodsItemCountчисловой
Количество товаров, при котором запускается бэкапированиеПо умолчанию 35000
restoreIntervalчисловой
Интервал восстановления данных в секундахПо умолчанию 60


[main]

; Включает систему бэкапирования и восстановления при миграции бд
; По умолчанию false
enable = false

[store]

; Количество смен, при котором стартует бэкапирование. По умолчанию 20
shiftCount = 20

; Количество товаров, при котором стартует бэкапирование. По умолчанию 35000
goodsItemCount = 35000

[restore]

; Интервал восстановления данных в секундах
; По умолчанию 60
restoreInterval = 60

Восстановление базы данных

Восстановление БД может происходить несколькими способами:

  1. С помощью пункта "Восстановление справочников" в сервисном меню.
  2. Создать дамп с другой кассы магазина и восстановить его на кассе.

Настройки доступа к серверу БД MySQL

Настройки доступа к серверу БД MySQL находятся в конфигурационном файле /linuxcash/cash/conf/db.ini в секции [MysqlServer].

Наименование

Тип данных

Описание

Примечания

hostстроковыйХост сервера БДПо умолчанию localhost
portцелочисленныйПорт сервера БДПо умолчанию 3306
userстроковыйПользователь БДПо умолчанию root
passwordстроковыйПароль пользователя БДПо умолчанию без пароля


[MysqlServer]
; Настройки доступа к серверу БД MySQL

; Хост сервера БД
; по умолчанию localhost
;host = localhost

; Порт сервера БД
; по умолчанию 3306
;port = 3306

; Пользователь БД
; по умолчанию root
;user = root

; Пароль пользователя БД
; по умолчанию без пароля
;password =


Пользователи netroot и root являются равноправными.