3.1 关于数据库系统

数据库系统是 MySQL 实例的逻辑容器。它提供了一个界面,可以管理供应、备份、监控等任务。它还提供了一个读/写端点,使您能够使用标准 MySQL 协议连接到 MySQL 实例。

本节中的以下主题描述了数据库系统:

数据库系统组件

数据库系统由以下组件组成:

  • Amazon EC2 实例类型(具有由关联形状定义的资源。有关更多信息,请参阅 支持的形状。)

  • 甲骨文Linux操作系统

    笔记

    无法访问操作系统。只有 MySQL 实例通过数据库系统端点公开。

  • MySQL 服务器企业版 8.0。有关详细信息,请参阅MySQL 服务器

  • 将数据库系统附加到虚拟私有云 (VPC) 子网的虚拟网络接口卡 (VNIC)。对于与数据库系统的连接,公共端点公开为完全限定域名 (FQDN)。可以指定 CIDR 格式的特定 IP 地址以限制对公共端点的访问。

  • 网络附加块存储。AWS 上的 MySQL HeatWave 使用 Amazon EBS 块存储。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的 Amazon Elastic Block Store (Amazon EBS)

MySQL服务器

本节介绍 MySQL 服务器的各个方面,包括版本控制、升级、错误日志记录、不支持的功能和限制。

服务器版本控制

AWS 上的 MySQL HeatWave 中包含的 MySQL 服务器使用由三个数字、更新版本和 -cloud后缀组成的版本控制系统。例如: 8.0.30-u1-cloud

  • 第一个数字:主要版本号。

  • 第二个数字:次要版本号。总的来说,主要和次要的数字构成了发布序列号。

  • 第三个数字:发布系列中的版本号。每个新版本都会增加。

  • uN:MySQL 服务器特定的更新号。MySQL Server 云版本的修复和功能开发根据与本地版本不同的时间表交付。

  • cloud:后缀表示此版本的 MySQL Server 仅为云构建。

要检索 MySQL 服务器版本号,请使用 MySQL 客户端连接到您的数据库系统,然后运行SELECT @@version;​​. 以下示例显示了命令和典型输出:

mysql> SELECT @@version;
+-----------------+
| @@version       |
+-----------------+
| 8.0.30-u1-cloud |
+-----------------+

服务器升级

AWS 上的 MySQL HeatWave 支持最新版本的 MySQL。

  • 次要版本,例如 8.0。nn, 必须手动应用。有关信息,请参阅 升级 MySQL 服务器

  • 升级版本,例如 8.0。nn-u n,根据数据库系统上定义的维护窗口自动应用。

有关 MySQL 服务器版本控制的更多信息,请参阅 服务器版本控制

无法回滚(降级)升级。建议在升级数据库系统之前执行完整备份。

服务器错误记录

AWS 上的 MySQL HeatWave 将错误、警告和状态更新等 MySQL 服务器诊断信息记录到性能模式 error_log表中。您可以使用命令行客户端(例如 MySQL Client 或 MySQL Shell)来查看此数据。有关从客户端连接到 DB 系统的信息,请参阅 第 5.2 节,“从客户端连接”\sql如果从 MySQL Shell 连接,则必须通过在 MySQL Shell 提示符 下键入来切换到 SQL 模式。

要查看表中的日志 performance_schema.error_log ,请运行以下语句:

SELECT * FROM performance_schema.error_log\G

您会收到类似于以下内容的响应,其中显示事件时间戳、线程 ID、事件优先级、事件错误代码(如果存在)、发生事件的子系统以及描述事件的文本:

*************************** 1. row ***************************
    LOGGED: 2022-04-07 19:17:03.981201
 THREAD_ID: 0
      PRIO: Warning
ERROR_CODE: MY-011068
 SUBSYSTEM: Server
      DATA: The syntax 'skip_slave_start' is deprecated and will be removed 
            in a future release. Please use skip_replica_start instead.
*************************** 2. row ***************************
    LOGGED: 2022-04-07 19:17:03.98388
 THREAD_ID: 0
      PRIO: Note
ERROR_CODE: MY-010096
 SUBSYSTEM: Server
      DATA: Ignoring --secure-file-priv value as server is running with 
            --initialize(-insecure).
*************************** 3. row ***************************
    LOGGED: 2022-04-07 19:17:03.983921
 THREAD_ID: 0
      PRIO: Note
ERROR_CODE: MY-010949
 SUBSYSTEM: Server
      DATA: Basedir set to /usr/.
....

要过滤日志以仅显示错误,请运行以下语句:

SELECT * FROM performance_schema.error_log WHERE PRIO='error'\G

要过滤日志以仅显示来自 RAPID(HeatWave) 子系统的错误,请运行以下语句:

SELECT * FROM performance_schema.error_log WHERE SUBSYSTEM IN ('RAPID')\G

您可以从以下子系统中进行选择:

  • Server

  • InnoDB

  • RAPID

要在RAPID2 小时的时间间隔内过滤 (HeatWave) 子系统,请运行以下命令:

SELECT * FROM performance_schema.error_log WHERE SUBSYSTEM IN ('RAPID')\G

要检索一天内发生特定错误的次数,请运行以下命令:

SELECT HOUR(LOGGED), count(*) FROM performance_schema.error_log 
  WHERE ERROR_CODE = 'MY-010914' 
  AND LOGGED > DATE_SUB(NOW(),INTERVAL 1 DAY) GROUP BY HOUR(LOGGED);

要检索一周内发生特定错误的次数,请运行以下命令:

SELECT DAY(LOGGED), count(*) FROM performance_schema.error_log 
  WHERE ERROR_CODE = 'MY-010914' 
  AND LOGGED > DATE_SUB(NOW(),INTERVAL 1 WEEK) GROUP BY DAY(LOGGED);

不支持的 MySQL 服务器功能

AWS 上的 MySQL HeatWave 目前不支持 MySQL Server 的以下功能:

  • mysql_native_password本机可插入身份验证 ( )、SHA-256 可插入身份验证 ( sha256_password) 和缓存 SHA-2 可插入身份验证 ( ) 以外的身份验证插件caching_sha2_password

  • 修改系统表

  • 二进制日志访问

  • 错误记录到 MySQL 服务器错误日志。错误日志记录可通过性能模式获得。请参阅 服务器错误记录

  • 组复制插件

  • InnoDB 表空间加密

  • 设置全局变量

  • 持久化系统变量

  • 复制过滤器

  • 半同步复制

  • 可传输表空间

MySQL 存储引擎

AWS 上的 MySQL HeatWave 仅支持 InnoDB 存储引擎。

如果您打算迁移到 AWS 上的 MySQL HeatWave,并且当前未使用 InnoDB 存储引擎,则必须在InnoDB导入数据之前将您的数据转换为使用存储引擎。

您可以使用以下 ALTER TABLE语句手动将表转换为 InnoDB:

ALTER TABLE table_name ENGINE=InnoDB;

迁移数据的推荐方法是使用 MySQL Shell 客户端。MySQL Shell 转储实用程序提供了一个 ocimds选项来检查各种不兼容性,包括使用不受支持的存储引擎定义的表。如果存在不兼容性,MySQL Shellcompatibility选项可用于更改 MySQL Shell 转储文件以修复不兼容性,包括将存储引擎更改为 InnoDB。有关详细信息,请参阅 第 6 章,导入数据

插件和组件

默认加载以下 MySQL 服务器插件和组件。您不需要安装任何这些插件。

  • MySQL 企业级线程池

    实现一个线程池,通过有效管理大量客户端连接的语句执行线程来提高服务器性能。有关详细信息,请参阅MySQL 参考手册中的 MySQL 企业线程池

  • 连接控制插件

    在多次连续失败尝试后,服务器响应连接尝试的延迟会增加。此功能提供了一种威慑力,可以减缓针对 MySQL 用户帐户的暴力攻击。有关详细信息,请参阅 MySQL 参考手册的连接控制插件

  • 密码验证组件

    通过要求帐户密码和启用潜在密码的强度测试来提高安全性。有关详细信息,请参阅MySQL 参考手册的密码验证组件

  • MySQL 企业数据屏蔽和去标识化

    通过隐藏真实值并将其替换为替代值,帮助保护敏感数据免遭未经授权的使用。有关更多信息,请参阅MySQL 参考手册中的MySQL Enterprise Data Masking and De-Identification

  • MySQL 企业防火墙

    通过监视、警报和阻止未经授权的数据库活动来保护您的数据。有关详细信息,请参阅MySQL 参考手册中的 MySQL Enterprise Firewall

  • MySQL 企业加密

    提供内置的服务器端非对称加密、密钥生成、数字签名和其他加密功能,以帮助使用公钥和私钥保护机密数据。仅支持 MySQL Enterprise Encryption 组件功能。AWS 上的 MySQL HeatWave 已弃用和不支持MySQL Enterprise Encryption插件功能。有关详细信息,请参阅 MySQL 参考手册中的 MySQL Enterprise Encryption

AWS 服务限制上的 MySQL HeatWave

AWS 上的 MySQL HeatWave 目前不允许使用以下项目:

默认 MySQL 权限

本节列出了在数据库系统上授予 MySQL 管理员用户的 MySQL 权限以及在mysqlsys模式上明确撤销的权限。撤销的权限不能授予任何 MySQL 用户。有关详细信息,请参阅 MySQL 权限

保留的用户名

以下用户名是保留的,不能用作 MySQL 管理员用户名:

  • administrator

  • ociadmin

  • ocimonitor

  • ocirpl

  • mysql.sys

  • mysql.session

  • mysql.infoschema

数据库系统存储

存储大小应根据您的数据大小和性能要求来确定。

有关增加数据库系统可用存储的信息,请参阅 增加数据库系统存储

支持的形状

AWS 上的 MySQL HeatWave 支持以下 MySQL 和 HeatWave 节点形状。

表 3.1 MySQL 形状

形状名称 vCPU 内存 (GiB)
MySQL.2.16GB 2个 16
MySQL.4.32GB 4个 32
MySQL.8.64GB 8个 64
MySQL.32.256GB 32 256

表 3.2 HeatWave 节点形状

形状名称 内存 (GiB)
热浪.16GB 16
HeatWave.256GB 256

笔记

如果您打算使用 HeatWave 机器学习功能, HeatWave.256GB建议在创建 HeatWave 集群时使用节点形状。HeatWave.16GB节点形状可能没有足够的内存来训练大型数据集。 如果您看到有关此的错误消息(例如 ML003024),请改用较大的形状。