15.4. データベースサーバー

RHEL 8 は、次のデータベースサーバーを提供します。

  • MySQL 8.0。マルチユーザー、マルチスレッドの SQL データベースサーバーです。MySQL サーバーデーモンである mysqld と、多数のクライアントプログラムで構成されます。
  • MariaDB 10.3。マルチユーザー、マルチスレッドの SQL データベースサーバーです。あらゆる実用的な目的に対応するために、MariaDB には、MySQL とバイナリー互換性があります。
  • PostgreSQL 10 および PostgreSQL 9.6。高度なオブジェクトリレーショナルデータベース管理システム (DBMS) です。
  • Redis 5。高度な鍵と値のストアです。鍵には、文字列、ハッシュ、リスト、セット、およびソートセットを含めることができるため、データ構造サーバーと呼ばれています。RHEL で、Redis が初めて提供されます。

NoSQL の MongoDB データベースサーバーは、Server Side Public License (SSPL) を使用するため、RHEL 8.0 には同梱されていません。

データベースサーバーを並行してインストールできない

RPM パッケージが競合しているため、RHEL 8.0 では、mariadb モジュールと mysql モジュールを同時にインストールすることができません。

設計上、同じモジュールの複数のバージョン (ストリーム) を並行してインストールすることはできません。たとえば、postgresql モジュールから利用可能なストリーム ( 10 (デフォルト) または 9.6 ) の中から 1 つ選択する必要があります。RHEL 6 および RHEL 7 用の Red Hat Software Collections では、コンポーネントの並列インストールが可能です。RHEL 8 では、コンテナー内で異なるバージョンのデータベースサーバーを使用できます。

15.4.1. MariaDB 10.3 への主な変更点

MariaDB 10.3 では、RHEL 7 に同梱されていたバージョン 5.5 に新機能が数多く追加されました。以下は、主な変更点です。

  • 共通テーブル式 (CTE)
  • システムのバージョンが管理されたテーブル
  • FOR ループ
  • 非表示の列
  • シーケンス
  • InnoDB のインスタント ADD COLUMN
  • ストレージエンジンに依存しないカラム圧縮
  • 並列レプリケーション
  • マルチソースのレプリケーション

さらに、新しい mariadb-connector-c パッケージは、MySQLMariaDB に共通のクライアントライブラリーを提供します。このライブラリーは、データベースサーバーの MySQL および MariaDB の全バージョンで使用できます。その結果、RHEL 8 に同梱される MySQL サーバーおよび MariaDB サーバーのいずれかに構築されるアプリケーションの 1 つに接続できます。

その他の主な変更点は次の通りです。

  • 同期マルチクラスターでもある MariaDB Galera Cluster が、MariaDB の標準に含まれるようになりました。
  • InnoDB は、XtraDB の代わりに、デフォルトのストレージエンジンとして使用されます。
  • mariadb-bench サブパッケージが削除されました。
  • プラグインの成熟度に対するデフォルトの許可レベルは、サーバーの成熟度よりレベルが 1 つ低くなるように変更になりました。その結果、以前は動作していた、成熟度レベルが低いプラグインが、読み込まれなくなりました。

「Red Hat Enterprise Linux 8 での MariaDB の使用」も併せて参照してください。

15.4.2. MySQL 8.0 への主な変更点

RHEL 8 に同梱される MySQL 8.0 には、たとえば次のような機能強化が含まれます。

  • MySQL に、データベースオブジェクトに関する情報を格納するトランザクショナルデータディクショナリーが組み込まれました。
  • MySQL がロールに対応するようになりました。ロールは特権の集まりです。
  • デフォルトの文字セットが、latin1 から utf8mb4 に変更しました。
  • 非再帰的および再帰的な Common Table Expression に対応するようになりました。
  • MySQL が、クエリーで関連する行の集合に対して、行ごとに計算を実行する window 関数に対応するようになりました。
  • locking readステートメントにより、InnoDB で、NOWAIT オプションおよび SKIP LOCKED オプションに対応するようになりました。
  • GIS 関連の関数が改善しました。
  • JSON 関数が強化されました。
  • 新しい mariadb-connector-c パッケージは、MySQLMariaDB に共通のクライアントライブラリーを提供します。このライブラリーは、データベースサーバーの MySQL および MariaDB の全バージョンで使用できます。その結果、RHEL 8 に同梱される MySQL サーバーおよび MariaDB サーバーのいずれかに構築されるアプリケーションの 1 つに接続できます。

さらに、RHEL 8 に同梱されている MySQL 8.0 サーバーでは、デフォルトの認証プラグインに mysql_native_password を使用するように設定されています。RHEL 8 のクライアントツールおよびライブラリーは、アップストリームの MySQL 8.0 バージョンでデフォルトで使用されている caching_sha2_password メソッドと互換性がないためです。

デフォルトの認証プラグインを caching_sha2_password に変更するには、/etc/my.cnf.d/mysql-default-authentication-plugin.cnf ファイルを次のように変更します。

[mysqld]
default_authentication_plugin=caching_sha2_password

15.4.3. PostgreSQL への主な変更点

RHEL 8.0 は、postgresql モジュールの 2 つのストリームで、PostgreSQL データベースサーバーのバージョンを 2 つ (PostgreSQL 10 (デフォルトストリーム) および PostgreSQL 9.6) 提供します。RHEL 7 には PostgreSQL バージョン 9.2 が含まれます。

PostgreSQL 9.6 への主な変更点。以下は例になります。

  • 一連の動作の並列実行 - scanjoin、および aggregate
  • 同期レプリケーションの機能強化
  • フレーズを検索できるように、フルテキスト検索が改善
  • postgres_fdw データ連携ドライバーが、リモートの joinsortUPDATE、および DELETE の操作に対応
  • (特に、マルチ CPU ソケットサーバーのスケーラビリティーに関する) 重要なパフォーマンスの向上

PostgreSQL 10 への主な機能拡張。以下は例になります。

  • publish キーワードおよび subscribe キーワードを使用した論理レプリケーション
  • SCRAM-SHA-256 メカニズムを基にした強力なパスワード認証
  • 宣言型テーブルのパーティション
  • 改善されたクエリーの並列処理
  • 重要な一般的なパフォーマンスの向上
  • 改善された監視および制御

「Red Hat Enterprise Linux 8 で PostgreSQL の使用」も併せて参照してください。