将Zabbix的本地数据库迁移至远程
由于系统规划的变更,现要将已部署的Zabbix主机数据库由本地迁移至远程服务器。现将基本思路和操作纪录一二。
2024.05 摄于天津河东区·李公楼地道
创建目标
- 在远程数据库服务器上创建对应迁移目标。
1 | 远程MySQL数据库地址为mysql.sujx.net |
- 在本地zabbix服务器上进行访问测试
1 | mysql -uzabbix -p -hmysqlsujx.net db_zabbix << EOF |
备份数据
- 在原Zabbix主机上备份导出MySQL
1 | 数据落盘 |
- 向目标数据库导入数据
1
2
3
4mysql -uzabbix -p -hmysql.sujx.net db_zabbix << EOF
source /tmp/db_zabbix.sql;
show tables;
EOF
重新指向
- 配置Server指向
1
2
3
4
5修改zabbix_server的数据库指向
sed -i 's/DBName=zabbix/DBName=db_zabbix/g; s/# DBHost=localhost/DBName=mysql.sujx.net/g' /etc/zabbix/zabbix_server.conf
拉起服务
systemctl start zabbix-server - 配置Web指向
1
2
3
4
5修改zabbix_web的数据库指向
sed -i 's/$DB['SERVER'] = 'localhost'
DB['SERVER'] = 'mysql.singsbox.com.cn'/g; s/$DB['DATABASE'] = 'zabbix'/$DB['DATABASE'] = 'db_zabbix'/g'/etc/zabbix/web/zabbix.conf.php
systemctl start nginx - 检查服务
清理现场
最后要将原有数据库服务停用并清理原有程序和数据文件
1 | 删除数据库 |
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.