Bug 44523

Summary: Отсутствует history_pk_prepare.sql
Product: Sisyphus Reporter: Гусев В.Ю. <VladGousev>
Component: zabbix-common-database-mysqlAssignee: Alexei Takaseev <taf>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: VladGousev, alimektor, taf
Version: unstable   
Hardware: x86   
OS: Linux   

Description Гусев В.Ю. 2022-12-02 16:06:16 MSK
Zabbix сообщает "Database history tables use primary key - No".
В документации (https://www.zabbix.com/documentation/current/en/manual/appendix/install/db_primary_keys) написано, что нужно создать первичные ключи в таблице history, для чего, в том числе, необходимо выполнить файл history_pk_prepare.sql
Не смог найти данный файл - ни в /usr/share/doc/zabbix-common-database-mysql-6.0.10, ни где-либо ещё.
Comment 1 Evgeny Shesteperov 2022-12-26 12:27:09 MSK
Описание
========

Посмотрел по исходникам Zabbix (https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.12.tar.gz), действительно, должен быть:

        zabbix-6.0.12/database/mysql/
        ├── data.sql
        ├── double.sql
        ├── history_pk_prepare.sql
        ├── images.sql
        ├── Makefile.am
        ├── Makefile.in
        └── schema.sql

Однако файл history_pk_prepare.sql в пакете zabbix-common-database-mysql отсутствует.

Версия
======

- zabbix-common-database-mysql-6.0.12-alt1

Дистрибутивы
============

- p10-server-10-x86-64, обновленный до Sisyphus

Шаги воспроизведения
====================

1. Установить пакет zabbix-common-database-mysql:

        # apt-get install -y zabbix-common-database-mysql 

2. Проверить наличие файла history_pk_prepare.sql в пакете:

        # rpm -ql zabbix-common-database-mysql | grep history_pk_prepare.sql

Ожидаемый результат: наличие файла history_pk_prepare.sql

Фактический результат: отсутствие файла history_pk_prepare.sql

Воспроизводится и в P10, и в Sisyphus.
Comment 2 Alexei Takaseev 2022-12-27 06:08:15 MSK
Содержимое history_pk_prepare.sql на этапе компиляции помещается в файл schema.sql
Comment 3 Гусев В.Ю. 2022-12-27 11:22:27 MSK
(Ответ для Alexei Takaseev на комментарий #2)
> Содержимое history_pk_prepare.sql на этапе компиляции помещается в файл
> schema.sql

schema.sql используется при создании БД с нуля.
Включение history_pk_prepare.sql в него не позволяет нормально перейти на zabbix 6.*, когда нужно обработать только таблицы history*
Для обновления до zabbix 6 придётся самостоятельно найти history_pk_prepare.sql и выполнить согласно документации об обновлению (https://www.zabbix.com/documentation/current/en/manual/appendix/install/db_primary_keys)
Comment 4 Alexei Takaseev 2022-12-27 11:31:39 MSK
При обновлении 5.x -> 6.0 процесс zabbix_DBNAME сам автоматически обрабатывает изменения в схеме БД и вносит необходимые правки, генерацию PKEY в том числе.
Comment 5 Гусев В.Ю. 2022-12-27 14:14:58 MSK
(Ответ для Alexei Takaseev на комментарий #4)
> При обновлении 5.x -> 6.0 процесс zabbix_DBNAME сам автоматически
> обрабатывает изменения в схеме БД и вносит необходимые правки, генерацию
> PKEY в том числе.

Видимо, у меня не отработало. Т.к. пришлось всё делать руками.

Там значительно сложнее, чем поправить схему таблиц. history_pk_prepare.sql переименовывает имеющиеся таблицы и создаёт новые. Потом нужно перенести данные из переименованных таблиц и удалить их. Процесс весьма небыстрый на большой базе.
Comment 6 Repository Robot 2022-12-29 13:00:35 MSK
zabbix-1:6.0.12-alt2 -> sisyphus:

 Wed Dec 28 2022 Alexei Takaseev <taf@altlinux> 1:6.0.12-alt2
 - Add notice fo use MySQL 8.0.x
 - Pack history_pk_prepare.sql (ALT #44523)
 - Fix build with curl 7.87.0