Для MySQL 8 данная статья не актуальна

Подготовка

  1. Выполните подрезку данных в БД.
    Чаще всего в подрезке нуждаются неактуальные данные о товарах, переоценках и неиспользуемые данные о продажах за большой временной интервал. При подрезке данных в БД и таблицах осуществляется поиск и удаление записей, старше указанного количества суток. Подробнее о подрезке можно прочитать в разделе "Подрезка данных в БД".

  2. Проверьте наличие свободного места на диске. 
    На диске необходимо выделить достаточное количество памяти для работы системы и хранения таблиц, которые могут быть созданы в процессе миграции БД. Для успешной миграции необходимо пространство равное размеру самой большой таблицы + 2 ГБ.

  3. Загрузите с КС на кассы все данные, необходимые для их корректной работы во время обновления.
    Кассовый сервер хранит информацию о справочниках (каталоги товаров, переоценки, скидки, акции и так далее), которые должны быть своевременно переданы на кассы в магазине. Во время обновления загрузку актуальных справочников выполнить невозможно. Подробнее о загрузке справочников на кассу можно прочитать в разделе "Загрузка справочников из КС на кассу" и в статье "SYNC-AGENT".

  4. Необходимо загрузить на кассы актуальные акции и выгрузить из касс в АСТУ все доступные продажи. Подробнее о выгрузке продаж с кассы в АСТУ можно прочитать в разделе "Выгрузка продаж из Кассы в АСТУ".

  5. Сделайте бэкап на сервере (или виртуальной машине) с установленными КС и БД:

    Такой подход работает для КС и БД, которые установлены как на одном сервере, так и на разных серверах.

Обновление

  1. Запустите скрипт обновления КС.
    Подробнее об обновлении КС можно прочитать в подразделе "Обновление" в разделе "Установка и обновление".

  2. Если автоматическая миграция выключена, то необходимо запустить ее вручную, используя веб-интерфейс кассового сервера.
    Если автоматическая миграция включена, то она будет запущена при изменении структуры БД сразу после обновления. Подробнее о миграции можно прочитать в разделе "Миграция БД".

    Миграция БД справочников и продаж запускается автоматически при включенной настройке "Запускать миграцию при старте КС" в настройках сервера (вкладка "Прочее").

Контроль

  1. Отслеживайте процесс миграции:
    1. Через сообщения в логе.
      В /var/log/artix/artixcs-rest/migrate.log логируются сообщения о начале (begin inner db MigrateImpl.migrateInner()) и окончании (Success MigrationImpl.setMigrateVersion()) миграции для каждой БД, а также сообщения об ошибках.
    2. Через мониторинг состояния выполняемых SQL-запросов.
      Отслеживая такие запросы, как создание временной таблицы, изменение таблиц, копирование данных обратно из временной таблицы, можно определить, как идет миграция, а также закончилась она или нет. Например, некоторые запросы работают слишком медленно или не завершатся никогда.
      Для получения списка текущих запросов необходимо использовать команду:
      1. show full processlist – для MySQL;
      2. SELECT * from pg_stat_activity – для PostgreSQL.

        Примеры вывода команды show full processlist с длительными операциями

IDПользовательХостБДКомандаВремя выполненияСтатусЗапрос
3netrootlocalhostdb1Sleep90
NULL
13netrootlocalhostdb1Query0initshow full processlist
11netrootlocalhostdb1Query0committing alter table to storage engineALTER TABLE artixcs_shop_987_3aaac852.tpricesTemp ADD PRIMARY KEY (bcode, `index`, effectivedate)
17netrootlocalhostdb1Query0waiting for handler commitALTER TABLE artixcs_shop_987_3aaac852.unitsTemp ADD frunit INT NULL COMMENT 'Мера количества предмета расчета'
27netrootlocalhostdb1Query0waiting for handler commit

CREATE OR REPLACE VIEW dictionaries_shop_987_3aaac852.medicine AS SELECT * FROM `artixcs_shop_987_3aaac852`.`medicineTemp`

26558netrootlocalhostartixcsAllQuery3copy to tmp table

ALTER TABLE `artixcsAll`.`tmcTemp`  
    ADD COLUMN `ntin` VARCHAR(255) NULL


Проверка обмена

  1. Проверьте, что после обновления работает обмен между КС и АСТУ:
    1. Загрузите справочники из АСТУ в КС. Подробнее об этом можно прочитать в разделе "Загрузка справочников в КС".
    2. Выгрузите продажи из КС в АСТУ. Подробнее об этом можно прочитать в разделе "Выгрузка продаж из КС в АСТУ".
  2. Проверьте, что после обновления работает обмен между КС и кассой:
    1. Выгрузите продажи из кассы на КС. Подробнее об этом можно почитать в разделе "Выгрузка продаж из Кассы на КС".
    2. Загрузите справочник из КС на кассу. Подробнее об этом можно прочитать в разделе Sync-agent.
  • No labels