首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当服务器-uuid存在时,为什么MySQL服务器-id是复制所必需的?

当服务器-uuid存在时,为什么MySQL服务器-id是复制所必需的?
EN

Database Administration用户
提问于 2023-03-22 21:06:49
回答 1查看 64关注 0票数 2

我们正试图在我们公司设置一些基本的MySQL主/从复制,我们对副本服务器上唯一的server_id要求感到困惑。引用mysql文档:

在源和每个副本上,必须设置server_id系统变量,以在1到2^32−1的范围内建立唯一的复制ID。“唯一”意味着每个ID必须与复制拓扑中任何其他源或副本使用的每个其他ID不同。

文档接着描述了另一个相关的MySQL变量,server_uuid,着重于我:

MySQL服务器除了在server_id系统变量中生成默认或用户提供的服务器ID之外,还生成一个真正的UUID。这可以作为全局的只读变量server_uuid使用...。在使用MySQL复制时,源和副本都知道对方的UUID。

文档明确说明server_id当然仍然是必要的:

如本节前面所述,server_uuid系统变量的存在不会改变为每个MySQL服务器设置唯一server_id值作为准备和运行MySQL复制的一部分的要求。

我的问题是,为什么这个手动设置的服务器id是一个要求,而这些或多或少保证是唯一的UUID总是可用的和存在的?

EN

回答 1

Database Administration用户

发布于 2023-03-23 03:01:06

这里引用了MySQL文档,但您会问为什么。

GTID复制的引入允许将每个binlog事件表示为UUID和事务号。

如果您不想使用GTID,但希望设置复制,怎么办?

您可以运行更改母版,以使用MASTER_AUTO_POSITION=0绕过GTID插值。这就是为什么server_id必须仍然存在并随时准备使用的原因。

您还可以在主服务器上停用GTID,并以旧的方式设置、复制。同样,server_id必须仍然存在并随时准备使用。

从较早版本的MySQL中复制如何?同样,server_id必须仍然存在并随时准备使用。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/325053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档