第5章 マイグレーション

この章では、Red Hat Software Collections 3.2 に含まれるコンポーネントのバージョンへの移行に関する情報を提供します。

5.1. MariaDB 10.2 への移行

Red Hat Enterprise Linux 6 には、デフォルトのMySQL実装としてMySQL 5.1 が含まれています。Red Hat Enterprise Linux 7 には、デフォルトのMySQL実装としてMariaDB 5.5 が搭載されています。MariaDBは、コミュニティーによって開発された、MySQLを置き換えるドロップイン方式のソフトウェアです。MariaDB 10.1 は Red Hat Software Collections 2.2 から Software Collection として提供されており、Red Hat Software Collections 3.2 はMariaDB 10.2 とともに配布されています。
Red Hat Enterprise Linux 6 と Red Hat Enterprise Linux 7 の両方で利用可能なrh-mariadb102 Software Collection は、コアシステムのmysql またはmariadb パッケージと競合しないため、rh-mariadb102 Software Collection をmysql またはmariadb パッケージと一緒にインストールすることが可能です。特定のリソースが競合しないようにするため、両方のバージョンを同時に実行することもできますが、ポート番号と my.cnf ファイルのソケットを変更する必要があります。さらに、rh-mariadb101 Collection がインストールされ、実行中でも、rh-mariadb102 Software Collection をインストールすることもできます。
なお、MariaDB 5.5 またはMariaDB 10.0 を使用している場合は、Red Hat Software Collections 2.4 Release Notes に記載されているrh-mariadb101 Software Collection に、先にアップグレードする必要があります。
MariaDB 10.2 の詳細については、changes in version 10.2upgradingについてのアップストリームドキュメントをご覧ください。
注記
rh-mariadb102 Software Collection では、NFS によるマウントやscl registerコマンドによる動的登録はサポートしていません。

5.1.1. rh-mariadb101 および rh-mariadb102 Software Collections 間の主な相違点

MariaDB 10.2 における主な変更は、Red Hat Software Collections 3.0 Release Notes を参照してください。
MariaDB 10.2 以降、SQL_MODE 変数の動作が変更されました。詳細はupstream documentationを参照してください。
複数のオプションがデフォルト値を変更しているか、非推奨または削除されました。詳細は、ナレッジベースの記事Migrating from MariaDB 10.1 to the MariaDB 10.2 Software Collectionを参照してください。
rh-mariadb102 Software Collection には、バイナリー、スクリプト、man ページなどのシステム全体のラッパーを提供するパッケージをインストールする rh-mariadb102-syspaths パッケージが含まれます。rh-mariadb102*-syspaths パッケージをインストールした後、rh-mariadb102* パッケージで提供されるバイナリーやスクリプトが正しく機能するために、ユーザーがscl enableコマンドを使用する必要はありません。*-syspaths パッケージは、ベースの Red Hat Enterprise Linux システムと対応するパッケージと競合することに注意してください。syspaths の詳細は、Red Hat Software Collections パッケージガイドを参照してください。

5.1.2. rh-mariadb101 から rh-mariadb102 Software Collection へのアップグレード

重要
アップグレードする前に、MariaDB データベースを含むすべてのデータのバックアップを作成します。
  1. rh-mariadb101 データベースサーバーが実行している場合は停止します。
    サーバーを停止する前に、innodb_fast_shutdown オプションを 0 に設定し、InnoDB が完全なパージや挿入バッファーマージを含む低速なシャットダウンを実行します。アップストリームのドキュメント で、このオプションの詳細を参照してください。この操作は、通常のシャットダウンの場合よりも長い時間がかかる可能性があります。
    mysql -uroot -p -e "SET GLOBAL innodb_fast_shutdown = 0"
    rh-mariadb101 サーバーを停止します。
    service rh-mariadb101-mariadb stop
  2. rh-mariadb102 Software Collection をインストールします。
    yum install rh-mariadb102-mariadb-server
    これらの Collections が競合しないため、rh-mariadb102 Software Collection のインストール中は rh-mariadb101 Software Collection をインストールすることができることに注意してください。
  3. /etc/opt/rh/rh-mariadb102/my.cnfファイルと/etc/opt/rh/rh-mariadb102/my.cnf.d/ディレクトリーに格納されているrh-mariadb102 の設定を検査します。/etc/opt/rh/rh-mariadb101/my.cnfおよび/etc/opt/rh/rh-mariadb101/my.cnf.d/に保存されているrh-mariadb101 の設定と比較して、必要に応じて調整してください。
  4. rh-mariadb101 Software Collection のすべてのデータは、特に設定されていない限り、/var/opt/rh/rh-mariadb101/lib/mysql/ディレクトリーに保存されます。このディレクトリーの内容をすべて/var/opt/rh/rh-mariadb102/lib/mysql/にコピーします。コンテンツを移動することはできますが、アップグレードを続行する前にデータをバックアップすることを忘れないようにしてください。データが mysql ユーザーによって所有され、SELinux コンテキストが正しいことを確認します。
  5. rh-mariadb102 データベースサーバーを起動します。
    service rh-mariadb102-mariadb start
  6. データ移行を実行します。
    scl enable rh-mariadb102 mysql_upgrade
    root ユーザーに空ではないパスワードが定義されている場合 (パスワードを定義しておく必要あり) は、-p オプションを指定して mysql_upgrade ユーティリティーを呼び出してパスワードを指定する必要があります。
    scl enable rh-mariadb102 -- mysql_upgrade -p