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, ни где-либо ещё.
Описание ======== Посмотрел по исходникам 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.
Содержимое history_pk_prepare.sql на этапе компиляции помещается в файл schema.sql
(Ответ для 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)
При обновлении 5.x -> 6.0 процесс zabbix_DBNAME сам автоматически обрабатывает изменения в схеме БД и вносит необходимые правки, генерацию PKEY в том числе.
(Ответ для Alexei Takaseev на комментарий #4) > При обновлении 5.x -> 6.0 процесс zabbix_DBNAME сам автоматически > обрабатывает изменения в схеме БД и вносит необходимые правки, генерацию > PKEY в том числе. Видимо, у меня не отработало. Т.к. пришлось всё делать руками. Там значительно сложнее, чем поправить схему таблиц. history_pk_prepare.sql переименовывает имеющиеся таблицы и создаёт новые. Потом нужно перенести данные из переименованных таблиц и удалить их. Процесс весьма небыстрый на большой базе.
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