zabbix6.2.3系统数据库从Mysql迁移至PostgreSQL数据库(四)zabbix系统数据从Mysql转入PostgreSQL

  • Post author:
  • Post category:mysql


前三节我们已经完成了一台全新基于postgresql14数据库的zabbix6.2.3服务器的构建,本节正式进行现网zabbix数据从mysql转入PostgreSQL的操作。

本节需要配置一台centos7/redhat7的中间服务器,因为转换工具pgloader目录只找到el7的版本。

该服务器还需打通到现网zabbix6.2.3的mysql服务器和新建postgresql14数据库的网络。

1、在pgloader服务器上进行数据转换工具的安装

工具下载地址:

https://download.postgresql.org/pub/repos/yum/common/redhat/rhel-7.9-x86_64/pgloader-3.6.2-1.rhel7.x86_64.rpm

[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 版权协议,转载请附上原文出处链接和本声明。