首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TiDB单排水机架构正在创建一个单一的故障点

TiDB单排水机架构正在创建一个单一的故障点
EN

Stack Overflow用户
提问于 2021-08-10 09:07:19
回答 1查看 78关注 0票数 0

我们试图在两个TiDB集群之间创建主主复制。每个集群有3台PD服务器、4 KV服务器和2台TiDB服务器。TiDB运行时启用了二进制日志。在TiDB服务器上,我们还安装了水泵。现在我们开始安装排水机,我们看到了以下问题:

如果我们在同一台配置为将数据同步到远程集群的TiDB服务器上部署多个排水器--我们将在远程TiDB中得到重复的条目。每个排水器分别发送插入,因此对于源集群上插入的每条记录,我们在目标集群

  • 上得到2条记录,如果我们在为其专门分配的单独服务器上部署单个排水器,我们将创建单个故障点。如果在这个服务器上发生了什么事情--数据将不会同步。此外,我们无法找到任何关于泵集群设计的信息。如我们所知,水泵正在为gc日保存所有事务,并且至少可以设置1天。如果我们有2台
  • 服务器,并且每个服务器都在运行泵,那么每个TiDB服务器是否保存相同的完整数据?还是分片的?如果它是切碎的,它有复制品吗?如果我们丢失了一个TiDB服务器(在它上运行了泵)-我们会丢失部分泵数据吗?
EN

回答 1

Stack Overflow用户

发布于 2021-11-30 10:20:32

我也是TiDB用户。

从官方网站上,它建议您使用单独的实例来部署水泵和排水机。

Q1:每个泵是否保存相同的完整数据?还是有阴影?如果部署了一个以上的水泵,事务记录将随机发送到水泵和排水管,以便根据提交时间合并这些绑定日志。

代码语言:javascript
复制
Drainer collects and merges binlogs from each Pump, converts the binlog to SQL or data of a specific format, and replicates the data to a specific downstream platform.

https://docs.pingcap.com/tidb/stable/tidb-binlog-overview#:~:text=Drainer%20collects%20and%20merges%20binlogs%20from%20each%20Pump%2C%20converts%20the%20binlog%20to%20SQL%20or%20data%20of%20a%20specific%20format%2C%20and%20replicates%20the%20data%20to%20a%20specific%20downstream%20platform.

Q2.如果我们丢失了一个TiDB服务器(在它上运行了泵)--我们会丢失部分泵数据吗?理想情况下,如果一个泵发生故障,那么新的二进制日志将被发送到其他可用的泵中,并将二进制日志文件存储在排水机中而不是泵中。

代码语言:javascript
复制
Here is the drainer config file: 
https://github.com/pingcap/tidb-binlog/blob/master/cmd/drainer/drainer.toml

我认为这是非常有用的,你可以遵循它来做你自己的设置。根据我的经验,您可以将二进制日志存储到两个排水机,以避免丢失数据,而不是只使用一个排水机。另外,另一种方法是将绑定日志同步到kafka,这在drainer.toml文件中也可用。

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

https://stackoverflow.com/questions/68723975

复制
相关文章

相似问题

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