searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

天翼云TeleDB文档数据库数据同步方案讨论

2024-10-14 09:40:35
10
0

横向扩容场景:副本集横向扩容,副本集与集群添加只读节点。几种场景下,数据库服务都是不会停止的,现有的节点添加逻辑是将新节点加入集群,然后通过逻辑同步方式进行数据同步。

当原集群数据量很大的情况下,会存在数据同步时间过长的问题。通过提升硬件性能(如CPU核数、内存、高IO磁盘)与优化网络当然可以提升数据同步效率,这个不在本文讨论的范围内。现仅考虑数据同步方案,梳理了下方几个数据同步方案。

 

方案一

 

1.使用快照或者备份文件:

主节点上创建一个数据快照备份。

将快照备份文件复制到新加入的从节点上。

在从节点上恢复数据,并启动 MongoDB 服务。在启动 MongoDB 服务时,指定 --replSet 参数加入到副本集中。

2.增量数据逻辑同步:

从节点逻辑同步主节点的数据,追写主节点新增的数据。

这个方案有以下的缺点:现在公有云上的存储系统不支持快照功能,故采用此方式会借助于文档数据库现有的热备份功能,通过createbackup命令将数据传输到新增的节点上,多节点时需并行执行,另外稳定性待进一步验证。

 

方案二

 

借用linux的rsync工具将主节点的数据目录同步至新增的从节点,rsync在复制文件时会比较源文件和目标文件的差异,然后只复制已经修改的部分。

rsync

rsync -avz --delete --bwlimit=<带宽限制> <主节点用户名>@<主节点IP地址>:/data/mongodb/ /data/mongodb/

该方案缺点:源端目标端机器都需要安装rsync工具

同步效率待测试。

 

方案三

 

1.添加节点时先创建一个备份,然后将备份文件恢复至新增节点,有点本末倒置了。

2.使用最新的一个成功的自动备份,可能存在找不到备份文件,自动备份配置关闭的问题。手动备份则可能存在数据过久的问题。

缺点:曲折且本末倒置。

 

方案四

 

停止hidden节点,将hidden节点的数据直接scp至新增节点,然后重启hidden节点与新增节点,并将新增节点加入副本集。

缺点:需要停止hidden节点,三节点副本集过程中再挂掉一个节点,会导致实例异常。不过重启后亦会恢复正常状态。

 

 

0条评论
0 / 1000
福尔摩斯军
8文章数
0粉丝数
福尔摩斯军
8 文章 | 0 粉丝
福尔摩斯军
8文章数
0粉丝数
福尔摩斯军
8 文章 | 0 粉丝
原创

天翼云TeleDB文档数据库数据同步方案讨论

2024-10-14 09:40:35
10
0

横向扩容场景:副本集横向扩容,副本集与集群添加只读节点。几种场景下,数据库服务都是不会停止的,现有的节点添加逻辑是将新节点加入集群,然后通过逻辑同步方式进行数据同步。

当原集群数据量很大的情况下,会存在数据同步时间过长的问题。通过提升硬件性能(如CPU核数、内存、高IO磁盘)与优化网络当然可以提升数据同步效率,这个不在本文讨论的范围内。现仅考虑数据同步方案,梳理了下方几个数据同步方案。

 

方案一

 

1.使用快照或者备份文件:

主节点上创建一个数据快照备份。

将快照备份文件复制到新加入的从节点上。

在从节点上恢复数据,并启动 MongoDB 服务。在启动 MongoDB 服务时,指定 --replSet 参数加入到副本集中。

2.增量数据逻辑同步:

从节点逻辑同步主节点的数据,追写主节点新增的数据。

这个方案有以下的缺点:现在公有云上的存储系统不支持快照功能,故采用此方式会借助于文档数据库现有的热备份功能,通过createbackup命令将数据传输到新增的节点上,多节点时需并行执行,另外稳定性待进一步验证。

 

方案二

 

借用linux的rsync工具将主节点的数据目录同步至新增的从节点,rsync在复制文件时会比较源文件和目标文件的差异,然后只复制已经修改的部分。

rsync

rsync -avz --delete --bwlimit=<带宽限制> <主节点用户名>@<主节点IP地址>:/data/mongodb/ /data/mongodb/

该方案缺点:源端目标端机器都需要安装rsync工具

同步效率待测试。

 

方案三

 

1.添加节点时先创建一个备份,然后将备份文件恢复至新增节点,有点本末倒置了。

2.使用最新的一个成功的自动备份,可能存在找不到备份文件,自动备份配置关闭的问题。手动备份则可能存在数据过久的问题。

缺点:曲折且本末倒置。

 

方案四

 

停止hidden节点,将hidden节点的数据直接scp至新增节点,然后重启hidden节点与新增节点,并将新增节点加入副本集。

缺点:需要停止hidden节点,三节点副本集过程中再挂掉一个节点,会导致实例异常。不过重启后亦会恢复正常状态。

 

 

文章来自个人专栏
linux technology
8 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0