2.7. MariaDB 10.5 から MariaDB 10.11 へのアップグレード
ここでは、RHEL 9 における MariaDB 10.5 から MariaDB 10.11 への移行について説明します。
2.7.1. MariaDB 10.5 と MariaDB 10.11 の主な相違点
MariaDB 10.5 と MariaDB 10.11 の間の重要な変更点は次のとおりです。
-
新しい
sys_schema
機能。これは、データベースの使用状況に関する情報を提供するビュー、関数、およびプロシージャーのコレクションです。 -
CREATE TABLE
、ALTER TABLE
、RENAME TABLE
、DROP TABLE
、DROP DATABASE
、および関連するデータ定義言語 (DDL) ステートメントがアトミックになりました。ステートメントは完全に完結している必要があります。そうでない場合、変更が元に戻されます。DROP TABLE
を使用して複数のテーブルを削除する場合、テーブルの全リストではなく、個々のドロップのみがアトミックであることに注意してください。 -
新しい
GRANT … TO PUBLIC
権限が利用可能になりました。 -
SUPER
権限とREAD ONLY ADMIN
権限が分離されました。 -
新しい
UUID
データベースデータ型に、ユニバーサル一意識別子を格納できるようになりました。 - MariaDB が Secure Socket Layer (SSL) プロトコルバージョン 3 をサポートするようになりました。
- MariaDB サーバーの起動に正しく設定された SSL が必要になりました。以前は、SSL の設定が誤っている場合、MariaDB は SSL を暗黙的に無効にし、セキュアでない接続を使用していました。
-
MariaDB が
natural_sort_key()
関数により自然なソート順序をサポートするようになりました。 -
新しい
SFORMAT
関数を任意のテキスト書式設定に使用できるようになりました。 -
utf8
文字セット (および関連する照合順序) が、デフォルトでutf8mb3
のエイリアスになりました。 - MariaDB は、Unicode Collation Algorithm (UCA) 14 の照合順序をサポートしています。
-
MariaDB の
systemd
ソケットのアクティベーションファイルが/usr/share/
ディレクトリーで利用できるようになりました。アップストリームとは異なり、これらのファイルは RHEL のデフォルト設定の一部ではないことに注意してください。 -
エラーメッセージに、
MySQL
ではなくMariaDB
文字列が含まれるようになりました。 - エラーメッセージが中国語で利用できるようになりました。
- デフォルトの logrotate ファイルが大幅に変更されました。MariaDB 10.11 に移行する前に設定を確認してください。
-
MariaDB および MySQL クライアントの場合、コマンドラインで指定した接続プロパティー (例:
--port=3306
) によって、クライアントとサーバー間の通信のプロトコルタイプ (tcp
、socket
、pipe
、memory
など) が強制されるようになりました。たとえば、以前は MariaDB クライアントが UNIX ソケットを介して接続した場合、指定したポートが無視されていました。
2.7.2. RHEL 9 バージョンの MariaDB 10.5 から MariaDB 10.11 へのアップグレード
この手順では、dnf
および mariadb-upgrade
ユーティリティーを使用して、mariadb-server
RPM パッケージで提供される MariaDB 10.5 から、mariadb:10.11
モジュールストリームにアップグレードする方法について説明します。
mariadb-upgrade
ユーティリティーは、mariadb-server-utils
サブパッケージにより提供され、mariadb-server
パッケージの依存関係としてインストールされます。
前提条件
- アップグレードを実行する前に、MariaDB データベースに保存されている全データのバックアップを作成します。
手順
MariaDB サーバーを停止します。
# systemctl stop mariadb.service
非モジュールの MariaDB 10.5 からモジュールの MariaDB 10.11 に切り替えます。
# dnf module switch-to mariadb:10.11
-
/etc/my.cnf.d/
にあるオプションファイルに MariaDB 10.11 に対して有効なオプションのみが含まれるように、設定を調整します。詳細は、MariaDB 10.6 および MariaDB 10.11 のアップストリームドキュメントを参照してください。 MariaDB サーバーを起動します。
スタンドアロンを実行しているデータベースをアップグレードする場合:
# systemctl start mariadb.service
Galera クラスターノードをアップグレードする場合:
# galera_new_cluster
mariadb
サービスが自動的に起動します。
mariadb-upgrade ユーティリティーを実行して、内部テーブルをチェックし、修復します。
スタンドアロンを実行しているデータベースをアップグレードする場合:
# mariadb-upgrade
Galera クラスターノードをアップグレードする場合:
# mariadb-upgrade --skip-write-binlog
インプレースアップグレードには、特定のリスクと既知の問題があります。たとえば、一部のクエリーが動作しなかったり、アップグレード前とは異なる順序で実行される場合があります。これらのリスクと問題、およびインプレースアップグレードに関する全般的な情報は、MariaDB 10.11 Release Notes を参照してください。