現在位置: ホーム / 技術サポート情報 / MIRACLE ZBX 6.0 技術情報 / MIRACLE ZBX 6.0 サポート関連情報 / ZBX 5.0から6.0へアップグレードするさいのDBの移行について

ZBX 5.0から6.0へアップグレードするさいのDBの移行について

MIRACLE ZBX 6.0ではデータベース(DB)のバージョンに制約があります。MIRACLE ZBX 5.0からの移行にさいしDBサーバのバージョンアップデートも必要になる場合があります。本稿ではMIRACLE ZBX 5.0からの移行時に必要となるDBのバージョンアップデート方法について説明します。DBのバージョンの制約については弊社ブログ『MIRACLE ZBX 6.0 からデータベースのバージョンに制約があります』を参照してください。

  1. 本稿の内容に関するサポートとコンサルティングについて
  2. SELinuxを有効にしている場合
  3. RHEL8系OS(MIRACLE LINUX 8系)
    1. PostgreSQL
  4. RHEL7系OS(MIRACLE LINUX 7系)
    1. MariaDB
    2. PostgreSQL
  5. Amazon Linux 2
    1. MariaDB
  6. 注意事項
  7. 更新履歴

本稿の内容に関するサポートとコンサルティングについて

本稿の内容やパッケージのバージョンアップグレード手順に関するお問い合わせやサポートは受け付けておりません。本稿の手順はお客さまご自身の責任にて実施していただきます。あらかじめご容赦ください。

また本稿はMIRACLE ZBXパッケージのアップグレード手順の案内を目的とした文書ではありません。したがってMIRACLE ZBX 6.0へのアップグレードに求められる望ましい手順(ユーザ環境に応じた検証環境での事前検証や設定の互換チェックなど)はすべて網羅されていません。

弊社ではMIRACLE ZBXパッケージのバージョンアップグレードに対する支援としてコンサルティングサービスを提供しています。詳細は弊社担当営業までお問い合わせいただくか、以下URLからお問い合わせください。

https://www.cybertrust.co.jp/contact/linux-oss.html

SELinuxを有効にしている場合

SELinuxを有効にした環境でDBのアップグレードをおこなう場合は、miracle-zbx-selinuxパッケージのアップグレードを先におこなってください。

# dnf remove miracle-zbx-release
# dnf install https://ftp.miraclelinux.com/pub/zbx/6.0/miracle-zbx-release-6.0-1.noarch.rpm
# dnf update miracle-zbx-selinux

RHEL8系OS(MIRACLE LINUX 8系)

PostgreSQL

アップグレード対象のMIRACLE ZBXサービスを停止します。

MIRACLE ZBXサーバ:

# systemctl stop zabbix-server

MIRACLE ZBXプロキシ:

# systemctl stop zabbix-proxy

dnf moduleコマンドからPostgreSQL 12.xを有効にし、最新の12系へ更新します。

# dnf module reset postgresql
# dnf module enable postgresql:12
# dnf update postgresql-server

PostgreSQLアップデートのためにpostgresql-upgradeパッケージをインストールし、postgresql-setupコマンドで更新処理を実行します。

# dnf install postgresql-upgrade
# postgresql-setup --upgrade

アップデート後はpg_hba.confがリセットされます。お使いのサービスに応じて/var/lib/pgsql/data/pg_hba.confを編集してください。その後、PostgreSQLサービスを再起動します。

#systemctl restart postgresql

DB再起動後はMIRACLE ZBXサーバ/プロキシパッケージを更新します。

# dnf remove miracle-zbx-release
# dnf install https://ftp.miraclelinux.com/pub/zbx/6.0/miracle-zbx-release-6.0-1.noarch.rpm
# dnf update

サービスを起動します。

MIRACLE ZBXサーバ:

# zabbix_server -U
# systemctl start zabbix-server

MIRACLE ZBXプロキシ:

# zabbix_proxy -U
# systemctl start zabbix-proxy

RHEL7系OS(MIRACLE LINUX 7系)

MariaDB

MIRACLE ZBXプロキシサービスとデータベースサービスを停止します。古いMariaDBサービスの自動起動を無効にします。

# systemctl stop zabbix-proxy mariadb
# systemctl disable mariadb

Software Collections(SCL)で提供されているMariadb10.3へ更新します。

# yum install rh-mariadb103-mariadb-server

古いMariaDBデータディレクトリを新しいMariaDBのデータディレクトリへコピーし、オーナーとSELinuxコンテキストを設定します。その後、新しいMariaDBサービスを起動し、自動起動設定を有効にします。

# rm -rf /var/opt/rh/rh-mariadb103/lib/mysql/
# cp -r /var/lib/mysql/ /var/opt/rh/rh-mariadb103/lib/
# chown -R mysql:mysql /var/opt/rh/rh-mariadb103/lib/mysql/
# restorecon -R /var/opt/rh/rh-mariadb103/lib/mysql/
# systemctl enable --now rh-mariadb103-mariadb

MariaDBアップデートのためにrh-mariadb103-mariadb-server-utilsパッケージをインストールし、mysql_upgradeコマンドで更新処理を実行します。

# yum install rh-mariadb103-mariadb-server-utils
# scl enable rh-mariadb103 'mysql_upgrade -u root'

更新処理の完了後にMariaDBサービスを再起動します。

# systemctl restart rh-mariadb103-mariadb

移行したzabbix_proxy用のデータベースに含まれるすべての行をDynamic形式に変換します。次のようにスクリプトを生成、実行します。なお、指定するデータベース名はお使いの環境に応じて読み替えてください。

# /opt/rh/rh-mariadb103/root/bin/mysql -uzabbix -p zabbix_proxy -s -N -e "SELECT CONCAT('ALTER TABLE ',table_name, ' ROW_FORMAT=DYNAMIC;') FROM information_schema.tables where TABLE_SCHEMA='zabbix_proxy';" > ./convert_row_format_dynamic.sql
# /opt/rh/rh-mariadb103/root/bin/mysql -uzabbix -p zabbix_proxy < ./convert_row_format_dynamic.sql

MIRACLE ZBXプロキシを更新し、サービスを起動します。

# yum remove miracle-zbx-release
# yum install https://ftp.miraclelinux.com/pub/zbx/6.0/miracle-zbx-release-6.0-1.noarch.rpm
# yum update
# zabbix_proxy -U
# systemctl start zabbix-proxy

PostgreSQL

MIRACLE ZBXプロキシサービスとデータベースサービスを停止します。古いPostgreSQLサービスの自動起動を無効にします。

# systemctl stop zabbix-proxy postgresql
# systemctl disable postgresql

Software Collections(SCL)で提供されているPostgreSQL12へ更新します。

# yum install rh-postgresql12-postgresql-server

古いPostgreSQLのデータディレクトリが存在することを確認します。

# file /var/lib/pgsql/data/

PostgreSQL12のデータディレクトリが存在しないことを確認します。このディレクトリが存在する場合は、バックアップ等を実施した後ディレクトリを削除してください。

# file /var/opt/rh/rh-postgresql12/lib/pgsql/data/

postgresql-setupコマンドで更新処理を実行します。

# scl enable rh-postgresql12 -- postgresql-setup --upgrade

お使いのサービスに応じて/var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.confを編集してください。その後、新しいPostgreSQLサービスを起動し、自動起動設定を有効にします。

# systemctl enable --now rh-postgresql12-postgresql

postgresql-setupコマンドによる更新処理では、オプティマイザーの統計情報は転送されません。お使いのサービスに応じて次のコマンドの実行を検討してください。

# su - postgres -c 'scl enable rh-postgresql12 ~/analyze_new_cluster.sh'

MIRACLE ZBXプロキシを更新し、サービスを起動します。

# yum remove miracle-zbx-release
# yum install https://ftp.miraclelinux.com/pub/zbx/6.0/miracle-zbx-release-6.0-1.noarch.rpm
# yum update
# zabbix_proxy -U
# systemctl start zabbix-proxy

Amazon Linux 2

MariaDB

MIRACLE ZBXプロキシサービスを停止します。

# systemctl stop zabbix-proxy

amazon-linux-extrasコマンドからMariaDB10.5を有効にし、パッケージを更新します。

# amazon-linux-extras enable mariadb10.5
# yum clean metadata
# yum update mariadb-server

mariadb-upgradeコマンドでMariaDBの更新処理を実行し、サービスを再起動します。

# mariadb-upgrade
# systemctl restart mariadb

移行したzabbix_proxy用のデータベースに含まれるすべての行をDynamic形式に変換します。次のようにスクリプトを生成、実行します。なお、指定するデータベース名はお使いの環境に応じて読み替えてください。

# mysql -uzabbix -p zabbix_proxy -s -N -e "SELECT CONCAT('ALTER TABLE ',table_name, ' ROW_FORMAT=DYNAMIC;') FROM information_schema.tables where TABLE_SCHEMA='zabbix_proxy';" > ./convert_row_format_dynamic.sql
#  mysql zabbix_proxy -uzabbix -p < ./convert_row_format_dynamic.sql

MIRACLE ZBXプロキシを更新し、サービスを起動します。

# yum remove miracle-zbx-release
# yum install https://ftp.miraclelinux.com/pub/zbx/6.0/miracle-zbx-release-6.0-1.noarch.rpm
# yum update
# zabbix_proxy -U
# systemctl start zabbix-proxy

注意事項

本ドキュメントの内容は、予告なしに変更される場合があります。
本ドキュメントは、限られた評価環境における検証結果をもとに作成しており、 全ての環境での動作を保証するものではありません。
本ドキュメントの内容に基づき、導入、設定、運用を行なったことにより損害が 生じた場合でも、弊社はその損害についての責任を負いません。あくまでお客様のご判断にてご使用ください。

更新履歴

2022年3月15日 新規作成

MIRACLE ZBX サポートRSS

アップデート情報RSS

サポート関連情報RSS