MySQL8 中文参考(八十五)(1)

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: MySQL8 中文参考(八十五)


原文:docs.oracle.com/javase/tutorial/reallybigindex.html

22.5.7 监控 X 插件

译文:dev.mysql.com/doc/refman/8.0/en/x-plugin-system-monitoring.html

对于一般的 X 插件监控,请使用其公开的状态变量。参见第 22.5.6.3 节,“X 插件状态变量”。有关专门监视消息压缩效果的信息,请参见 X 插件的连接压缩监控。

监控 X 插件生成的 SQL

本节描述了如何监视运行 X DevAPI 操作时 X 插件生成的 SQL 语句。当您执行 CRUD 语句时,它会被转换为 SQL 并针对服务器执行。要能够监视生成的 SQL,必须启用 Performance Schema 表。SQL 注册在performance_schema.events_statements_currentperformance_schema.events_statements_historyperformance_schema.events_statements_history_long表下。以下示例使用了在本节快速入门教程中导入的world_x模式。我们在 Python 模式下使用 MySQL Shell,并使用\sql命令,该命令使您能够发出 SQL 语句而无需切换到 SQL 模式。这很重要,因为如果您尝试切换到 SQL 模式,该过程将显示此操作的结果而不是 X DevAPI 操作。如果您使用 JavaScript 模式下的 MySQL Shell,则\sql命令的使用方式相同。

  1. 检查events_statements_history消费者是否已启用。问题:
mysql-py> \sql SELECT enabled FROM performance_schema.setup_consumers WHERE NAME = 'events_statements_history'
+---------+
| enabled |
+---------+
| YES     |
+---------+
  1. 检查所有仪器是否向消费者报告数据。问题:
mysql-py> \sql SELECT NAME, ENABLED, TIMED FROM performance_schema.setup_instruments WHERE NAME LIKE 'statement/%' AND NOT (ENABLED and TIMED)
  1. 如果此语句报告至少一行,则需要启用仪器。请参见第 29.4 节,“Performance Schema 运行时配置”。
  2. 获取当前连接的线程 ID。问题:
mysql-py> \sql SELECT thread_id INTO @id FROM performance_schema.threads WHERE processlist_id=connection_id()
  1. 执行您想要查看生成的 SQL 的 X DevAPI CRUD 操作。例如,问题:
mysql-py> db.CountryInfo.find("Name = :country").bind("country", "Italy")
  1. 您必须不再发出任何操作,以便下一步显示正确的结果。
  2. 显示由此线程 ID 执行的最后一个 SQL 查询。问题:
mysql-py> \sql SELECT THREAD_ID, MYSQL_ERRNO,SQL_TEXT FROM performance_schema.events_statements_history WHERE THREAD_ID=@id ORDER BY TIMER_START DESC LIMIT 1;
+-----------+-------------+--------------------------------------------------------------------------------------+
| THREAD_ID | MYSQL_ERRNO | SQL_TEXT                                                                             |
+-----------+-------------+--------------------------------------------------------------------------------------+
|        29 |           0 | SELECT doc FROM `world_x`.`CountryInfo` WHERE (JSON_EXTRACT(doc,'$.Name') = 'Italy') |
+-----------+-------------+--------------------------------------------------------------------------------------+
  1. 结果显示了基于最近语句生成的 X 插件 SQL,本例中为上一步的 X DevAPI CRUD 操作。

第二十三章 InnoDB 集群

原文:dev.mysql.com/doc/refman/8.0/en/mysql-innodb-cluster-introduction.html

本章介绍了 MySQL InnoDB 集群,它结合了 MySQL 技术,使您能够部署和管理 MySQL 的完整集成高可用性解决方案。本内容是 InnoDB 集群的高级概述,有关完整文档,请参阅 MySQL InnoDB 集群。

重要

InnoDB 集群不支持 MySQL NDB 集群。有关 MySQL NDB 集群的更多信息,请参阅第二十五章 MySQL NDB 集群 8.0和第 25.2.6 节,“使用 InnoDB 的 MySQL 服务器与 NDB 集群比较”。

InnoDB 集群由至少三个 MySQL 服务器实例组成,并提供高可用性和扩展功能。InnoDB 集群使用以下 MySQL 技术:

  • MySQL Shell,这是一个用于 MySQL 的高级客户端和代码编辑器。
  • MySQL 服务器,以及组复制,使一组 MySQL 实例能够提供高可用性。InnoDB 集群提供了一种替代的、易于使用的编程方式来处理组复制。
  • MySQL 路由器,一个轻量级中间件,提供应用程序与 InnoDB 集群之间的透明路由。

以下图表显示了这些技术如何共同工作的概述:

图 23.1 InnoDB 集群概述

基于 MySQL 组复制构建,提供了诸如自动成员管理、容错性、自动故障转移等功能。InnoDB  集群通常以单主模式运行,其中一个主实例(读写)和多个次要实例(只读)。高级用户还可以利用多主模式,其中所有实例都是主实例。甚至可以在  InnoDB 集群在线时更改集群的拓扑结构,以确保最高可能的可用性。

你可以使用 AdminAPI 来操作 InnoDB Cluster,该 API 作为 MySQL Shell 的一部分提供。AdminAPI 支持 JavaScript 和  Python,并且非常适合用于脚本编写和自动化部署 MySQL 以实现高可用性和可扩展性。通过使用 MySQL Shell 的  AdminAPI,你可以避免手动配置许多实例的需要。相反,AdminAPI 提供了一个有效的现代界面来管理一组 MySQL  实例,并使你能够从一个中央工具中进行部署、管理和监控。

要开始使用 InnoDB Cluster,你需要下载和安装 MySQL Shell。你需要一些安装了 MySQL Server 实例的主机,并且你也可以安装 MySQL Router。

InnoDB Cluster 支持 MySQL Clone,这使得实例的部署变得简单。在过去,为了在一个 MySQL  实例集合中加入一个新实例,你需要手动将事务传输到加入的实例中。这可能涉及制作文件副本、手动复制等操作。使用 InnoDB  Cluster,你只需简单地添加一个实例到集群中,它就会自动部署。

同样,InnoDB Cluster 与 MySQL Router 紧密集成,你可以使用 AdminAPI 来与它们一起工作。MySQL  Router 可以根据 InnoDB Cluster 自动配置自身,这个过程称为引导,这消除了你手动配置路由的需要。MySQL Router  然后透明地连接客户端应用程序到 InnoDB Cluster,为客户端连接提供路由和负载均衡。这种集成还使你能够使用 AdminAPI 管理针对  InnoDB Cluster 引导的一些 MySQL Router 的方面。InnoDB Cluster 状态信息包括针对集群引导的  MySQL Router 的详细信息。操作使你能够在集群级别创建 MySQL Router 用户,与引导到集群的 MySQL Router  一起工作等。

欲了解更多关于这些技术的信息,请参阅描述中链接的用户文档。除了这些用户文档外,还有所有 AdminAPI 方法的开发人员文档在 MySQL  Shell JavaScript API 参考或 MySQL Shell Python API 参考中,可从 Connectors and  APIs 获取。

第二十四章 InnoDB ReplicaSet

原文:dev.mysql.com/doc/refman/8.0/en/mysql-innodb-replicaset-introduction.html

本章介绍了 MySQL InnoDB ReplicaSet,它结合了 MySQL 技术,使您能够部署和管理第十九章,复制。本内容是 InnoDB ReplicaSet 的高级概述,有关完整文档,请参阅 MySQL InnoDB ReplicaSet。

一个 InnoDB ReplicaSet 至少由两个 MySQL 服务器实例组成,并提供您熟悉的所有 MySQL 复制功能,如读取扩展和数据安全。InnoDB ReplicaSet 使用以下 MySQL 技术:

  • MySQL Shell,这是一个用于 MySQL 的高级客户端和代码编辑器。
  • MySQL 服务器和第十九章,复制,使一组 MySQL 实例能够提供可用性和异步读取扩展。InnoDB ReplicaSet 提供了一种替代的、易于使用的编程方式来处理复制。
  • MySQL Router,一个轻量级中间件,提供应用程序与 InnoDB ReplicaSet 之间的透明路由。

InnoDB ReplicaSet 的接口类似于 MySQL InnoDB Cluster,您可以使用 MySQL Shell 来操作  MySQL 服务器实例作为一个 ReplicaSet,并且 MySQL Router 也与 InnoDB Cluster 紧密集成。

基于 MySQL 复制,InnoDB ReplicaSet 有一个主实例,它复制到一个或多个次要实例。InnoDB ReplicaSet  不提供 InnoDB Cluster  提供的所有功能,如自动故障转移或多主模式。但是,它支持配置、添加和删除实例等功能的方式类似。例如,在发生故障时,您可以手动切换到或故障转移到次要实例。甚至可以采用现有的复制部署,然后将其管理为  InnoDB ReplicaSet。

您可以使用 AdminAPI 来操作 InnoDB ReplicaSet,该 API 作为 MySQL Shell  的一部分提供。AdminAPI 可用于 JavaScript 和 Python,并非常适合脚本编写和自动化部署 MySQL  以实现高可用性和可伸缩性。通过使用 MySQL Shell 的 AdminAPI,您可以避免手动配置许多实例的需要。相反,AdminAPI  提供了一种有效的现代接口来管理 MySQL 实例集,并使您能够从一个中心工具中进行部署、管理和监控。

要开始使用 InnoDB ReplicaSet,您需要下载和安装 MySQL Shell。您需要一些安装了 MySQL Server 实例的主机,并且您还可以安装 MySQL Router。

InnoDB ReplicaSet 支持 MySQL Clone,这使您可以简单地提供实例。过去,在新实例加入 MySQL  复制部署之前,您需要以某种方式手动将事务传输到加入实例。这可能涉及制作文件副本,手动复制它们等等。您只需添加一个实例到复制集中,它就会自动提供。

同样,InnoDB ReplicaSet 与 MySQL Router 紧密集成,您可以使用 AdminAPI 一起使用它们。MySQL  Router 可以根据 InnoDB ReplicaSet 自动配置自身,在一个称为引导过程的过程中,这样您就无需手动配置路由。MySQL  Router 然后透明地连接客户端应用程序到 InnoDB ReplicaSet,为客户端连接提供路由和负载平衡。这种集成还使您能够使用  AdminAPI 管理针对 InnoDB ReplicaSet 引导的 MySQL Router 的某些方面。InnoDB ReplicaSet  状态信息包括有关针对 ReplicaSet 引导的 MySQL Router 的详细信息。操作使您能够在 ReplicaSet 级别创建  MySQL Router 用户,与针对 ReplicaSet 引导的 MySQL Router 一起工作,等等。

关于这些技术的更多信息,请参阅描述中链接的用户文档。除了这些用户文档外,还有关于 MySQL Shell JavaScript API  参考或 MySQL Shell Python API 参考中所有 AdminAPI 方法的开发人员文档,可从 Connectors and  APIs 获取。

第二十五章 MySQL NDB 集群 8.0

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster.html

目录

25.1 通用信息

25.2 NDB 集群概述

25.2.1 NDB 集群核心概念

25.2.2 NDB 集群节点、节点组、片段副本和分区

25.2.3 NDB 集群的硬件、软件和网络要求

25.2.4 MySQL NDB 集群 8.0 中的新功能

25.2.5 NDB 8.0 中新增、弃用或移除的选项、变量和参数

25.2.6 使用 InnoDB 的 MySQL 服务器与 NDB 集群的比较

25.2.7 NDB 集群的已知限制

25.3 NDB 集群安装

25.3.1 在 Linux 上安装 NDB 集群

25.3.2 在 Windows 上安装 NDB 集群

25.3.3 NDB 集群的初始配置

25.3.4 NDB 集群的初始启动

25.3.5 具有表和数据的 NDB 集群示例

25.3.6 NDB 集群的安全关闭和重启

25.3.7 NDB 集群的升级和降级

25.3.8 NDB 集群自动安装程序(不再支持)

25.4 NDB 集群的配置

25.4.1 NDB 集群的快速测试设置

25.4.2 NDB 集群配置参数、选项和变量概述

25.4.3 NDB 集群配置文件

25.4.4 使用高速互连与 NDB 集群

25.5 NDB 集群程序

25.5.1 ndbd — NDB 集群数据节点守护程序

25.5.2 ndbinfo_select_all — 从 ndbinfo 表中选择

25.5.3 ndbmtd — NDB 集群数据节点守护程序(多线程)

25.5.4 ndb_mgmd — NDB 集群管理服务器守护程序

25.5.5 ndb_mgm — NDB 集群管理客户端

25.5.6 ndb_blob_tool — 检查和修复 NDB 集群表的 BLOB 和 TEXT 列

25.5.7 ndb_config — 提取 NDB 集群配置信息

25.5.8 ndb_delete_all — 从 NDB 表中删除所有行

25.5.9 ndb_desc — 描述 NDB 表

25.5.10 ndb_drop_index — 从 NDB 表中删除索引

25.5.11 ndb_drop_table — 删除 NDB 表

25.5.12 ndb_error_reporter — NDB 错误报告实用程序

25.5.13 ndb_import — 将 CSV 数据导入 NDB

25.5.14 ndb_index_stat — NDB 索引统计实用程序

25.5.15 ndb_move_data — NDB 数据复制实用程序

25.5.16 ndb_perror — 获取 NDB 错误消息信息

25.5.17 ndb_print_backup_file — 打印 NDB 备份文件内容

25.5.18 ndb_print_file — 打印 NDB 磁盘数据文件内容

25.5.19 ndb_print_frag_file — 打印 NDB 片段列表文件内容

25.5.20 ndb_print_schema_file — 打印 NDB 模式文件内容

25.5.21 ndb_print_sys_file — 打印 NDB 系统文件内容

25.5.22 ndb_redo_log_reader — 检查和打印集群重做日志的内容

25.5.23 ndb_restore — 恢复 NDB 集群备份

25.5.24 ndb_secretsfile_reader — 从加密的 NDB 数据文件中获取关键信息

25.5.25 ndb_select_all — 打印 NDB 表中的行

25.5.26 ndb_select_count — 打印 NDB 表的行计数

25.5.27 ndb_show_tables — 显示 NDB 表列表

25.5.28 ndb_size.pl — NDBCLUSTER 大小需求估算器

25.5.29 ndb_top — 查看 NDB 线程的 CPU 使用信息

25.5.30 ndb_waiter — 等待 NDB 集群达到给定状态

25.5.31 ndbxfrm — 压缩、解压、加密和解密由 NDB 集群创建的文件

25.6 NDB 集群的管理

25.6.1 NDB 集群管理客户端中的命令

25.6.2 NDB 集群日志消息

25.6.3 在 NDB 集群中生成的事件报告

25.6.4 NDB 集群启动阶段总结

25.6.5 执行 NDB Cluster 的滚动重启

25.6.6 NDB Cluster 单用户模式

25.6.7 在线添加 NDB Cluster 数据节点

25.6.8 NDB Cluster 的在线备份

25.6.9 将数据导入到 MySQL Cluster

25.6.10 NDB Cluster 的 MySQL 服务器用法

25.6.11 NDB Cluster 磁盘数据表

25.6.12 NDB Cluster 中使用 ALTER TABLE 的在线操作

25.6.13 权限同步和 NDB_STORED_USER

25.6.14 NDB Cluster 的文件系统加密

25.6.15 NDB API 统计计数器和变量

25.6.16 ndbinfo:NDB Cluster 信息数据库

25.6.17 NDB Cluster 的 INFORMATION_SCHEMA 表

25.6.18 NDB Cluster 和性能模式

25.6.19 快速参考:NDB Cluster SQL 语句

25.6.20 NDB Cluster 安全问题

25.7 NDB Cluster 复制

25.7.1 NDB Cluster 复制:缩写和符号

25.7.2 NDB Cluster 复制的一般要求

25.7.3 NDB Cluster 复制中已知问题

25.7.4 NDB Cluster 复制模式和表

25.7.5 为复制准备 NDB Cluster

25.7.6 启动 NDB Cluster 复制(单一复制通道)

25.7.7 使用两个复制通道进行 NDB Cluster 复制

25.7.8 使用 NDB Cluster 复制实现故障切换

25.7.9 使用 NDB Cluster 复制进行 NDB Cluster 备份

25.7.10 NDB Cluster 复制:双向和循环复制

25.7.11 使用多线程应用程序的 NDB Cluster 复制

25.7.12 NDB Cluster 复制冲突解决

25.8 NDB Cluster 发行说明

本章提供关于 MySQL NDB Cluster 的信息,这是 MySQL 的高可用性、高冗余性版本,适用于分布式计算环境,使用NDB存储引擎(也称为NDBCLUSTER)来实现在集群中运行多台带有 MySQL 服务器和其他软件的计算机。NDB Cluster 8.0,现已作为通用可用性(GA)版本发布(从版本 8.0.19 开始),包含了NDB存储引擎的  8.0 版本。本章还提供了特定于 NDB Cluster 8.0 的信息,并覆盖了 8.0.34 版本。基于 NDB 存储引擎的 NDB  Cluster 8.1(NDB 8.1.0)现已作为创新版本发布。请参阅 MySQL NDB Cluster 8.2 有什么新功能,了解 NDB  8.1 与早期版本的区别。NDB Cluster 7.6 和 NDB Cluster 7.5 仍作为 GA 版本提供,分别使用了 7.6 和  7.5 版本的NDB。NDB Cluster 7.6 和 7.5 是之前的 GA 版本,仍在生产中得到支持;有关  NDB Cluster 7.6 的信息,请参阅 NDB Cluster 7.6 有什么新功能。有关 NDB Cluster 7.5  的类似信息,请参阅 NDB Cluster 7.5 有什么新功能。之前的 GA 版本 NDB Cluster 7.4 和 NDB Cluster  7.3 分别包含了NDB的 7.4 和 7.3 版本。NDB 7.4 及更早版本系列不再得到支持或维护。NDB 8.0 和 NDB 8.1 都在生产中得到支持,并建议用于新部署。

25.1 常规信息

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-general-info.html

MySQL NDB Cluster 使用带有NDB存储引擎的 MySQL 服务器。 Oracle 构建的标准 MySQL Server 8.0 二进制版本不包含对NDB存储引擎的支持。  相反,Oracle 的 NDB Cluster 二进制版本用户应升级到支持平台上最新的 NDB Cluster 二进制版本 -  这些版本包括应该适用于大多数 Linux 发行版的 RPM。 从源代码构建的 NDB Cluster 8.0 用户应使用为 MySQL 8.0  提供 NDB 支持所需的选项构建提供的源代码。 (可以在本节后面列出的位置获取源代码的地点。)

重要

MySQL NDB Cluster 不支持 InnoDB Cluster,必须使用带有InnoDB存储引擎的  MySQL Server 8.0 部署,以及未包含在 NDB Cluster 发行版中的其他应用程序。 MySQL Server 8.0  二进制版本不能与 MySQL NDB Cluster 一起使用。 有关部署和使用 InnoDB Cluster 的更多信息,请参阅 MySQL  AdminAPI。 第 25.2.6 节,“MySQL Server 使用 InnoDB 与 NDB Cluster 比较”,讨论了NDBInnoDB存储引擎之间的差异。

支持的平台。 NDB Cluster 目前在许多平台上可用并受支持。 有关特定操作系统版本、操作系统发行版和硬件平台组合的确切支持级别,请参阅www.mysql.com/support/supportedplatforms/cluster.html

可用性。 NDB Cluster 二进制和源代码包可在dev.mysql.com/downloads/cluster/上的支持平台上获得。

NDB Cluster 发行版本号。 NDB 8.0 遵循与 MySQL Server 8.0 系列发布相同的发布模式,从 MySQL 8.0.13 和 MySQL NDB Cluster 8.0.13 开始。 在本 手册 和其他 MySQL 文档中,我们使用以“NDB”开头的版本号来标识这些以及后续的 NDB Cluster 发行版,这个版本号是 NDB 8.0 发行版中使用的NDBCLUSTER存储引擎的版本号,并且与基于的 MySQL 8.0 服务器版本相同 NDB Cluster 8.0 发行版。

NDB Cluster 软件中使用的版本字符串。 MySQL NDB Cluster 发行版附带的mysql客户端显示的版本字符串使用此格式:

mysql-*mysql_server_version*-cluster

mysql_server_version 代表 NDB Cluster 发行版所基于的 MySQL Server 版本。对于所有 NDB Cluster 8.0 发行版,这是 8.0.*n*,其中 n 是发行号。使用 -DWITH_NDB 或等效选项从源代码构建时,会在版本字符串中添加 -cluster 后缀。(参见 第 25.3.1.4 节,“在 Linux 上从源代码构建 NDB Cluster”,以及 第 25.3.2.2 节,“在 Windows 上从源代码编译和安装 NDB Cluster”。)你可以在 mysql 客户端中看到这种格式的使用,如下所示:

$> mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 8.0.35-cluster Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SELECT VERSION()\G
*************************** 1\. row ***************************
VERSION(): 8.0.35-cluster 1 row in set (0.00 sec)

使用 MySQL 8.0 的第一个正式发布的 NDB Cluster 版本是 NDB 8.0.19,使用 MySQL 8.0.19。

其他未包含在 MySQL 8.0 发行版中的 NDB Cluster 程序显示的版本字符串采用以下格式:

mysql-*mysql_server_version* ndb-*ndb_engine_version*

mysql_server_version 代表 NDB Cluster 发行版所基于的 MySQL Server 版本。对于所有 NDB Cluster 8.0 发行版,这是 8.0.*n*,其中 n 是发行号。 ndb_engine_version 是此 NDB Cluster 软件版本使用的 NDB 存储引擎的版本。对于所有 NDB 8.0 发行版,此数字与 MySQL Server 版本相同。你可以在 ndb_mgm 客户端的 SHOW 命令输出中看到这种格式的使用,如下所示:

ndb_mgm> SHOW
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=1    @10.0.10.6  (mysql-8.0.35 ndb-8.0.35, Nodegroup: 0, *)
id=2    @10.0.10.8  (mysql-8.0.35 ndb-8.0.35, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=3    @10.0.10.2  (mysql-8.0.35 ndb-8.0.35)
[mysqld(API)]   2 node(s)
id=4    @10.0.10.10  (mysql-8.0.35 ndb-8.0.35)
id=5 (not connected, accepting connect from any host)

与标准 MySQL 8.0 版本的兼容性。 虽然许多标准 MySQL 架构和应用程序可以在 NDB  Cluster 中运行,但未经修改的应用程序和数据库架构可能会略有不兼容或在使用 NDB Cluster 时性能不佳(参见《第 25.2.7  节,“NDB Cluster 的已知限制”》)。大多数问题都可以克服,但这也意味着您很难将当前使用例如 MyISAMInnoDB 的现有应用程序数据存储切换到使用 NDB 存储引擎,而不考虑架构、查询和应用程序可能发生变化的可能性。没有使用 NDB 支持编译的 mysqld(即没有使用 -DWITH_NDB-DWITH_NDBCLUSTER_STORAGE_ENGINE 构建的)无法作为使用它构建的 mysqld 的直接替代品。

NDB Cluster 开发源码树。 NDB Cluster 开发树也可以从 github.com/mysql/mysql-server 访问。

github.com/mysql/mysql-server 维护的 NDB Cluster 开发源代码受 GPL 许可。有关使用 Git 获取 MySQL 源代码并自行构建的信息,请参阅《第 2.8.5 节,“使用开发源码树安装 MySQL”》。

注意

与 MySQL Server 8.0 一样,NDB Cluster 8.0 版本是使用 CMake 构建的。

NDB Cluster 8.0 从 NDB 8.0.19 开始作为正式版本发布,建议用于新部署。NDB Cluster 7.6 和 7.5  是之前的正式版本,仍在生产中得到支持;有关 NDB Cluster 7.6 的信息,请参阅《NDB Cluster 7.6  有什么新特性》。有关 NDB Cluster 7.5 的类似信息,请参阅《NDB Cluster 7.5 有什么新特性》。NDB Cluster  7.4 和 7.3 是之前的正式版本,不再维护。我们建议新的生产部署使用 MySQL NDB Cluster 8.0。

本章内容可能会随着 NDB Cluster 的不断发展而进行修订。有关 NDB Cluster 的其他信息可以在 MySQL 网站上找到,网址为 www.mysql.com/products/cluster/

额外资源。 关于 NDB Cluster 的更多信息可以在以下地方找到:

  • 欲了解关于 NDB Cluster 的一些常见问题的答案,请参阅 Section A.10, “MySQL 8.0 FAQ: NDB Cluster”。
  • NDB Cluster 论坛:forums.mysql.com/list.php?25
  • 许多 NDB Cluster 的用户和开发者在他们的博客中分享了他们与 NDB Cluster 的经验,并通过PlanetMySQL提供这些内容的订阅。

25.2 NDB Cluster 概述

原文:dev.mysql.com/doc/refman/8.0/en/mysql-cluster-overview.html

25.2.1 NDB Cluster 核心概念

25.2.2 NDB Cluster 节点、节点组、片副本和分区

25.2.3 NDB Cluster 硬件、软件和网络要求

25.2.4 MySQL NDB Cluster 8.0 中的新功能

25.2.5 NDB 8.0 中添加、弃用或删除的选项、变量和参数

25.2.6 使用 InnoDB 的 MySQL 服务器与 NDB Cluster 比较

25.2.7 NDB Cluster 已知限制

NDB Cluster 是一种技术,可以在共享无关系统中对内存数据库进行集群化。共享无关架构使系统能够使用非常廉价的硬件,并且对硬件或软件的特定要求最少。

NDB Cluster 设计为没有任何单点故障。在共享无关系统中,预期每个组件都有自己的内存和磁盘,并且不建议或支持使用共享存储机制,如网络共享、网络文件系统和 SAN。

NDB Cluster 将标准 MySQL 服务器与名为NDB的内存集群存储引擎集成在一起(代表“Network DataBase”)。在我们的文档中,术语NDB指的是特定于存储引擎的设置部分,而“MySQL NDB Cluster”指的是一个或多个 MySQL 服务器与NDB存储引擎的组合。

一个 NDB Cluster 由一组计算机(称为主机)组成,每台主机运行一个或多个进程。这些进程称为节点,可能包括 MySQL  服务器(用于访问 NDB 数据)、数据节点(用于存储数据)、一个或多个管理服务器,以及可能的其他专门的数据访问程序。NDB Cluster  中这些组件的关系如下所示:

图 25.1 NDB Cluster 组件

所有这些程序共同组成一个 NDB 集群(参见第 25.5 节,“NDB 集群程序”)。当数据由NDB存储引擎存储时,表格(和表格数据)存储在数据节点中。这样的表格可以直接从集群中的所有其他  MySQL 服务器(SQL  节点)访问。因此,在一个将数据存储在集群中的工资应用程序中,如果一个应用程序更新了员工的工资,所有查询这些数据的其他 MySQL  服务器都可以立即看到这一变化。

从 NDB 8.0.31 开始,NDB 集群 8.0 SQL 节点使用与 MySQL Server 8.0 发行版提供的相同的mysqld服务器守护程序。在 NDB 8.0.30 和之前的版本中,它与 MySQL Server 提供的mysqld二进制文件在许多关键方面有所不同,而且这两个版本的mysqld是不可互换的。您应该记住,一个未连接到 NDB 集群的任何版本的mysqld实例都无法使用NDB存储引擎,也无法访问任何 NDB 集群数据

存储在 NDB 集群数据节点中的数据可以进行镜像;集群可以处理单个数据节点的故障,除了一小部分事务由于丢失事务状态而中止之外,没有其他影响。因为事务应用程序预计会处理事务失败,所以这不应该成为问题的源头。

单个节点可以停止和重新启动,然后重新加入系统(集群)。滚动重启(逐个重新启动所有节点)用于进行配置更改和软件升级(参见第 25.6.5  节,“执行 NDB 集群的滚动重启”)。滚动重启也用作在线添加新数据节点的过程的一部分(参见第 25.6.7 节,“在线添加 NDB  集群数据节点”)。有关数据节点、它们在 NDB 集群中的组织方式以及它们如何处理和存储 NDB 集群数据的更多信息,请参见第 25.2.2  节,“NDB 集群节点、节点组、片段副本和分区”。

备份和恢复 NDB Cluster 数据库可以使用 NDB Cluster 管理客户端中找到的 NDB-本地功能以及 NDB Cluster 发行版中包含的 ndb_restore 程序。更多信息,请参见 Section 25.6.8, “Online Backup of NDB Cluster”,以及 Section  25.5.23, “ndb_restore — Restore an NDB Cluster Backup”。您还可以使用标准 MySQL  功能提供的 mysqldump 和 MySQL 服务器来实现此目的。有关更多信息,请参见 Section 6.5.4, “mysqldump — A Database Backup Program”。

NDB Cluster 节点可以使用不同的传输机制进行节点间通信;在大多数实际部署中,使用标准 100 Mbps 或更快的以太网硬件上的 TCP/IP。


MySQL8 中文参考(八十五)(2)https://developer.aliyun.com/article/1566065

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
关系型数据库 MySQL Unix
MySQL8 中文参考(二十三)(3)
MySQL8 中文参考(二十三)
139 4
|
存储 缓存 关系型数据库
MySQL8 中文参考(二十一)(5)
MySQL8 中文参考(二十一)
216 3
|
存储 监控 Java
MySQL8 中文参考(二十一)(4)
MySQL8 中文参考(二十一)
295 3
|
存储 安全 关系型数据库
MySQL8 中文参考(二十一)(1)
MySQL8 中文参考(二十一)
151 3
|
存储 关系型数据库 MySQL
MySQL8 中文参考(二十一)(3)
MySQL8 中文参考(二十一)
168 2
|
关系型数据库 MySQL Unix
MySQL8 中文参考(二十一)(2)
MySQL8 中文参考(二十一)
213 2
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL8 中文参考(二十五)(5)
MySQL8 中文参考(二十五)
154 2
|
存储 关系型数据库 MySQL
MySQL8 中文参考(二十四)(1)
MySQL8 中文参考(二十四)
201 2
|
NoSQL 关系型数据库 MySQL
MySQL8 中文参考(二十三)(2)
MySQL8 中文参考(二十三)
191 2
|
存储 关系型数据库 MySQL
MySQL8 中文参考(二十三)(1)
MySQL8 中文参考(二十三)
125 2

推荐镜像

更多