15.4. 数据库服务器

RHEL 8 提供以下数据库服务器:

  • MySQL 8.0,多用户,多线程 SQL 数据库服务器。它由 MySQL 服务器守护进程(mysqld)和多个客户端程序组成。
  • MariaDB 10.3,多用户,多线程 SQL 数据库服务器。在所有实践上, MariaDBMySQL 在二进制一级上兼容。
  • PostgreSQL 10PostgreSQL 9.6,这是一个高级的对象关系数据库管理系统(DBMS)。
  • Redis 5,这是一个高级的键值存储。通常被称为数据结构服务器,因为键可以包含字符串、散列、列表、集合和排序。Redis 在 RHEL 中第一次提供。

请注意, NoSQL MongoDB 数据库服务器没有包括在 RHEL 8.0 中,因为它使用 Server Side Public License(SSPL)。

数据库服务器不能并行安装

因为 RPM 软件包冲突, mariadbmysql 模块无法在 RHEL 8.0 中并行安装。

根据设计,不可能并行安装同 一 模块的多个版本(stream)。例如,您只需要从 postgresql 模块中选择一个可用流,可以是 10 (默认)或 9.6。在 Red Hat Software Collections for RHEL 6 和 RHEL 7 中可以并行安装组件。在 RHEL 8 中,可在容器中使用不同版本的数据库服务器。

15.4.1. MariaDB 10.3的显著变化

与 RHEL 7 提供的版本 5.5 相比,MariaDB 10.3 提供了多个新功能,例如:

  • 通用表表达式
  • 系统版本化表
  • FOR 循环
  • 不可见的栏
  • Sequences
  • InnoDB 的 Instant ADD COLUMN
  • 独立于存储引擎的栏压缩
  • 并行复制
  • 多源复制

另外,新的 mariadb-connector-c 软件包为 MySQLMariaDB 提供通用的客户端程序库。这个程序库可用于 MySQLMariaDB 数据库服务器的任意版本。因此,用户可以将应用程序的一个构建连接到 RHEL 8 中发布的任何 MySQLMariaDB 服务器。

其他显著变化包括:

  • MariaDB Galera 集群 (一个同步的多 master 集群)现在是 MariaDB 的标准部分。
  • InnoDB 是默认存储引擎,而不是 XtraDB
  • 已删除 mariadb-bench 子包。
  • 默认允许插件成熟度等级已改为比服务器成熟度低 一 个等级。因此,以前正在正常工作的成熟度较低的插件将不再加载。

另请参阅 在 Red Hat Enterprise Linux 8 中使用 MariaDB

15.4.2. MySQL 8.0中的显著变化

RHEL 8 提供了 MySQL 8.0,它提供以下改进:

  • MySQL 现在整合了一个事务性数据字典,它存储了有关数据库对象的信息。
  • MySQL 现在支持角色,这是权限的集合。
  • 默认字符集已从 latin1 改为 utf8mb4
  • 增加了对通用表表达式(非递归和递归)的支持。
  • MySQL 现在支持窗口功能,它使用相关的行从查询中为每个行执行一个计算。
  • InnoDB 现在支持 NOWAIT 并跳 SKIP LOCKED 语句的锁定选项。
  • 与 pod 相关的功能已被改进。
  • JSON 功能已被提高。
  • 新的 mariadb-connector-c 软件包为 MySQLMariaDB 提供通用的客户端程序库。这个程序库可用于 MySQLMariaDB 数据库服务器的任意版本。因此,用户可以将应用程序的一个构建连接到 RHEL 8 中发布的任何 MySQLMariaDB 服务器。

另外,发布于 RHEL 8 的 MySQL 8.0 服务器被配置为使用 mysql_native_password 作为默认验证插件,因为 RHEL 8 中的客户端工具和库与 caching_sha2_password 方法不兼容。 它在上游 MySQL 8.0 版本里默认使用。

要将默认身份验证插件更改为 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 数据库服务器,它由 postgresql 模块的两个流发布: PostgreSQL 10 (默认流)和 PostgreSQL 9.6。RHEL 7 包含 PostgreSQL 版本 9.2。

PostgreSQL 9.6 中的显著变化是:

  • 可以并行执行的顺序操作: scanjoinaggregate
  • 同步复制的改进
  • 改进了完整文本搜索功能,让用户能够搜索短语
  • postgres_fdw data federation 驱动现在支持远程的 join, sort, UPDATE, 和 DELETE 操作
  • 显著的性能改进,特别是在多CPU 插槽服务器的可伸缩性方面

PostgreSQL 10 的主要改进包括:

  • 使用 publishsubscribe 关键字进行逻辑复制
  • 基于 SCRAM-SHA-256 机制的更强大密码验证
  • 声明性表分区
  • 改进了查询并行性
  • 显著地提高一般的性能
  • 改进的监控和控制

另请参阅 Red Hat Enterprise Linux 8 中使用 PostgreSQL


为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。