Zabbix为数据库升级主键
问题:Zabbix升级7.0后,前端页面系统信息内显示“数据库历史数据表使用主键:否”
MySQL停机升级主键
1. 先检查下MySQL配置,使用语句SELECT @@secure_file_priv;
如果执行结果是NULL或者固定的路径,需要修改MySQL配置
修改my.cnf,在[mysqld]配置部分新增secure_file_priv = ""
重启MySQL生效,修改成功后再次执行语句,正确的结果为空
2. 导入Zabbix源码包database/mysql/option-patches/history_upgrade_prepare.sql,这个脚本会重命名旧表并创建新表
3. 停止Zabbix Server服务
4. 将旧表数据迁移到新表
SET @@max_execution_time=0;
INSERT IGNORE INTO history SELECT * FROM history_old;
INSERT IGNORE INTO history_uint SELECT * FROM history_uint_old;
INSERT IGNORE INTO history_str SELECT * FROM history_str_old;
INSERT IGNORE INTO history_log SELECT * FROM history_log_old;
INSERT IGNORE INTO history_text SELECT * FROM history_text_old;
5. 迁移完成后删除旧表
DROP TABLE history_old;
DROP TABLE history_uint_old;
DROP TABLE history_str_old;
DROP TABLE history_log_old;
DROP TABLE history_text_old;
来源:https://www.zabbix.com/documentation/current/zh/manual/appendix/install/db_primary_keys