Mysqldumpを利用したシステム移行

お世話になっております。
質問を初めて投稿させて頂きます。
宜しくお願いします。

Zabbix3.0で運用中のシステムのサーバ(筐体)移行を検討しております。
以下のケースにおいて、mysqldumpで全データを取得して、移行しようと考えております。
その際のmysqldumpコマンドのオプションは何を使用すれば良いでしょうか。
zabbixDBだけでは無く、全DBのオプションを使用したら良いでしょうか。
お教え頂けると助かります。

・現行サーバ
rhel 7.3
Zabbix-server 3.0.10
mysql Community-Server 5.7.19

・移行後サーバ
rhel 7.3
Zabbix-server 3.0.10
mysql (RHEL SCL)5.7.19

mysql Community-Serverからmysql (RHEL SCL)へ移行したい意図があります。
宜しくお願いします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

何のためにMySQL Community Server 5.7.19からSCLの5.7.19に移行
されるのでしょうか?
SCLのMySQL 5.7は、2019年11月にサポートが終了しています。
RHEL 7のサポート期間とは異なりますのでご注意ください。

https://access.redhat.com/support/policy/updates/rhscl-rhel7

サポート期間とは関係なく、どうしても書かれていた環境間での移
行を行われたいのであれば、以下のブログでも紹介されているよう
に、「--single-transaction」オプションを指定してZabbix用のデ
ータベースをバックアップすれば良いと思います。

Blog: Backups to the rescue!
https://blog.zabbix.com/backups-to-the-rescue/23442/

他にも「zabbix mysqldump」というキーワードで検索すれば、日本
語での情報もたくさんあるので、ご自身で内容を理解できるような
情報を探してみてください。

例:
$ mysqldump --opt --single-transaction -uzabbix -p zabbix > zabbixdb.dump
参考:
https://dev.mysql.com/doc/refman/5.6/ja/mysqldump.html

同じバージョンのMySQLであれば、それ以外のデータベースも移行
しても良いかもしれませんが、MySQLのバージョンが異なればなお
さらですが、MySQL自体を管理するようなシステムテーブルなどに
関しては、細かなバージョンの違いによって問題が発生する可能性
が考えられるので、移行しない方が良いと思います。

ただし、その場合は、データベースの作成、データベースアカウン
トの作成や権限の付与を別途行うことが必要になると思うので忘れ
ないようにしてください。

ユーザー HIGAKI の写真

TNKさん

ご返信頂きまして、大変ありがとうございます。

>何のためにMySQL Community Server 5.7.19からSCLの5.7.19に移行
>されるのでしょうか?
>SCLのMySQL 5.7は、2019年11月にサポートが終了しています。
>RHEL 7のサポート期間とは異なりますのでご注意ください。
>https://access.redhat.com/support/policy/updates/rhscl-rhel7
サポート終了については存じておりました。ご警告ありがとうございます。
Community ServerからSCLにデータ移行し、MySQL8.0にバージョンアップする予定でございます。
Community Serverを使わない方向にして、RHEL8とZabbix6.0にバージョンアップするつもりです。

>サポート期間とは関係なく、どうしても書かれていた環境間での移
>行を行われたいのであれば、以下のブログでも紹介されているよう
>に、「--single-transaction」オプションを指定してZabbix用のデ
>ータベースをバックアップすれば良いと思います。

>Blog: Backups to the rescue!
>https://blog.zabbix.com/backups-to-the-rescue/23442/

>他にも「zabbix mysqldump」というキーワードで検索すれば、日本
>語での情報もたくさんあるので、ご自身で内容を理解できるような
>情報を探してみてください。

>例:
>$ mysqldump --opt --single-transaction -uzabbix -p zabbix > zabbixdb.dump
>参考:
>https://dev.mysql.com/doc/refman/5.6/ja/mysqldump.html

ありがとうございます。参考にさせて頂きます。
>同じバージョンのMySQLであれば、それ以外のデータベースも移行
>しても良いかもしれませんが、MySQLのバージョンが異なればなお
>さらですが、MySQL自体を管理するようなシステムテーブルなどに
>関しては、細かなバージョンの違いによって問題が発生する可能性
>が考えられるので、移行しない方が良いと思います。

>ただし、その場合は、データベースの作成、データベースアカウン
>トの作成や権限の付与を別途行うことが必要になると思うので忘れ
>ないようにしてください。
データベースの作成、データベースアカウントの作成や権限の付与を行う事
が省略できると思いまして、記載したバージョンで全DBをバックアップしてリストアしてみました。

・MySqldumpバックアップコマンド
mysqldump -u root -p --password=' パスワード' --single-transaction --all-databases --add-drop-databas> /tmp/mysqldump_alldb_20230118.sql.gz

・MySqldumpリストアコマンド
zcat /tmp/mysqldump_alldb_20230118.sql.gz | mysql -u root -pパスワード

結果、dumpのリストア中にmysqld.logにInnoDBのエラーが12行同じメッセージが出力されました。
2023-01-20T11:25:28.821286+09:00 9 [ERROR] InnoDB: Table `mysql`.`innodb_table_stats` not found.
MySQL5.6からのバグと思われるエラーです。
他にはエラーはありませんでした。
Zabbixのインストールも行い、監視画面から監視設定や過去のデータも閲覧出来ました。

MySQL Community Server 5.7.19とSCLの5.7.19は違うバージョンととらえた方が良いのか、わからないですが、
自分は全DBのdumpで大丈夫な気がしております。
素人の考えかもしれませんが。

ユーザー HIGAKI の写真

mysqldumpでは無く、/mysqlにあるファイルでの移行を試したところ、
mysqldのログにはエラーが出ませんでした。
この方法で本番システムのデータ移行をしてみようと思います。

TNKさん
mysqldumpについての情報をご提供いただきまして、
ありがとうございました。