前三节我们已经完成了一台全新基于postgresql14数据库的zabbix6.2.3服务器的构建,本节正式进行现网zabbix数据从mysql转入PostgreSQL的操作。
本节需要配置一台centos7/redhat7的中间服务器,因为转换工具pgloader目录只找到el7的版本。
该服务器还需打通到现网zabbix6.2.3的mysql服务器和新建postgresql14数据库的网络。
1、在pgloader服务器上进行数据转换工具的安装
[root@localhost opt]# yum install pgloader-3.6.2-1.rhel7.x86_64.rpm
...
Installed:
pgloader.x86_64 0:3.6.2-1.rhel7
Dependency Installed:
keyutils-libs-devel.x86_64 0:1.5.8-3.el7 krb5-devel.x86_64 0:1.15.1-50.el7 libcom_err-devel.x86_64 0:1.42.9-19.el7
libkadm5.x86_64 0:1.15.1-50.el7 libselinux-devel.x86_64 0:2.5-15.el7 libsepol-devel.x86_64 0:2.5-10.el7
libverto-devel.x86_64 0:0.2.5-4.el7 openssl-devel.x86_64 1:1.0.2k-19.el7 pcre-devel.x86_64 0:8.32-17.el7
Complete!
2、在新构建的zabbix服务器上停止相关服务,中止对postgresql数据库的访问
在zabbix服务器上停止zabbix相关服务
[root@localhost ~]# systemctl stop zabbix-server httpd php-fpm
3、在PostgreSQL服务器上对postgresql启用md5加密认证(需重置zabbix用户密码)以便支持pgloader数据转换工具,删除zabbix库的所有模式及数据:
[root@localhost app]# vi pgsqldata/postgresql.conf
[root@localhost pgsqldata]# cat postgresql.conf |grep password_encryption
#password_encryption = scram-sha-256 # scram-sha-256 or md5
password_encryption = md5
[root@localhost app]# systemctl stop postgresql-14
[root@localhost app]# systemctl start postgresql-14
[root@localhost app]# su - postgres
上一次登录:二 11月 1 22:29:23 CST 2022pts/0 上
[postgres@localhost ~]$ psql
psql (14.5)
输入 "help" 来获取帮助信息.
postgres=# \dx
已安装扩展列表
名称 | 版本 | 架构模式 | 描述
-------------+-------+------------+-------------------------------------------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
timescaledb | 2.7.0 | public | Enables scalable inserts and complex queries for time-series data
(2 行记录)
postgres=# \l
postgres | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
template0 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
zabbix | zabbix | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
postgres=# ALTER USER zabbix WITH PASSWORD 'aoms@2012';
ALTER ROLE
postgres=# \c zabbix
您现在已经连接到数据库 "zabbix",用户 "postgres".
zabbix=# \dt
没有找到任何关系.
zabbix=# \dn
public | zabbix
zabbix=# drop schema public cascade;
注意: 串联删除178个其它对象
描述: 递归删除 表 public.acknowledges
递归删除 表 public.actions
...
递归删除 表 public.media_type_param
78个其它对象(相关列表参见服务器日志)
DROP SCHEMA
zabbix=# \dn
也就是仅保留zabbix空库以用于存储转换数据。
4、在在pgloader服务器上进行数据转换,为了快速转换,我先对现网zabbix服务的历史数据进行了清理后再做的,转换过程中有很多中间回显信息我进行了省略,显示如下信息时,转换即已完成 。
[root@localhost opt]# pgloader -d mysql://zabbix:Mysql数据库用户密码@MYSQL数据库IP/zabbix postgresql://zabbix:Pos
版权声明:本文为forestqq原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。