关于replset 初始化同步数据的困惑!

发布问题 回首页

关于replset 初始化同步数据的困惑!

★ 0 成为第一个关注这个问题的人

在网上查了些资料,总结下,复制集添加新成员/初始化同步大概有两种方式:
第一种:清空新节点 dbpath目录,直接启动,系统会自动同步数据。优点:简单。缺点:数据量大时同步速度慢。
第二种方式:在已有主或从节点上,获得文件系统快照,或者在已有的从节点上,设定只读状态,获得一致性数据文件,
然后复制到新节点上,启动新节点。优点:数据量大时,同步速度快。缺点:操作麻烦。
我困惑的是,这两方法的区别,一个是系统自动拷贝数据文件,一个是手动拷贝,如果主库uid频繁,oplog填满时间小于整个操作时间,那么这两中方法是不是都没用了?

eshujiushiwo 在大约 之前 回答了
  • 提问于
  • Answers2 个
  • 浏览 742 次
  • 最新活跃于

2 个回答2

0
eshujiushiwo answered about

不是的 需要预留足够多的oplog 窗口。

0
eshujiushiwo answered about

你好。
第二种方式如果遇到数据库操作频繁,oplog时间超过是会失去了他的优势。但是是会进行rsync来数据复制。
第一种方法在空的DBPATH启动的新节点,也是会进行rsync来进行数据复制。
整体来讲,当遇到题主所说的问题时候,第二种方式会失去其快速完成的优势,但是无论哪一种方式,都还是会进行rsync来重新复制数据。

bj_sbl@163.com 在大约 之前添加了 状态
1 Comment
To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create