mysql5.7复制集_复制集数据同步

参考官方文档:

为了维护共享数据集的最新副本,副本的辅助成员设置同步或复制来自其他成员的数据。 MongoDB使用两种形式的数据同步:初始同步以使用完整数据集填充新成员,和复制将持续更改应用于整个数据集。

初始化同步

初始同步将所有数据从副本集的一个成员复制到另一个成员。

过程

当你执行一个初始化同步,MongoDB:

1.克隆除本地数据库之外的所有数据库。 要进行克隆,mongod会扫描每个源数据库中的每个集合,并将所有数据插入到这些集合的所属的副本中。

版本3.4中的变更:初始同步会在为每个集合复制文档时构建所有集合索引。 在早期版本的MongoDB中,在此阶段仅构建_id索引。

版本3.4中的变更:初始同步在数据复制期间提取新添加的oplog记录。 确保目标成员在本地数据库中有足够的磁盘空间,以便在此数据复制阶段的持续时间内临时存储这些oplog记录。

容错

要从瞬态网络或操作故障中恢复,初始同步具有内置重试逻辑。

版本3.4中更改:MongoDB 3.4改进了初始同步重试逻辑,使其更能适应网络上的间歇性故障。

复制

辅助成员在初始同步后不断复制数据。 辅助成员从其源中同步复制oplog,并在异步的应用这些操作。

辅助节点可以基于ping时间和其他成员复制状态的变化,来自动更改其从源的同步。

在版本3.2中更改:具有1 vote 的MongoDB 3.2副本集成员无法从具有0 vote 的成员同步。

辅助节点避免与延迟成员和隐藏成员同步。

如果辅助成员将members [n] .buildIndexes设置为true,则它只能从buildIndexes为true的其他成员同步。 buildIndexes为false的成员可以从任何其他成员同步,禁止其他同步限制。 默认情况下,buildIndexes为true。

多线程复制

MongoDB使用多线程批量应用写操作以提高并发性。 MongoDB按名称空间(MMAPv1)或文档ID(WiredTiger)对批处理进行分组,并使用不同的线程同时应用每组操作。 MongoDB始终以原始写入顺序将写入操作应用于给定文档。

在应用批处理时,MongoDB会阻止所有读取操作。 因此,辅助读取查询永远不会返回反映主数据库中从未存在的状态的数据。

预取索引以提高复制吞吐量

注意:

只应用于MMAPv1

使用MMAPv1存储引擎,MongoDB可以获取包含受影响数据和索引的内存页,以帮助提高应用oplog条目的性能。 此预取阶段最大限度地减少了MongoDB在应用oplog条目时保持写锁定的时间。 默认情况下,辅助节点将预取所有索引。

可选地,您可以禁用所有预取或仅预取_id字段上的索引。 有关更多信息,请参阅secondaryIndexPrefetch设置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对您的问题,我来给您详细讲解一下如何修改MySQL 5.7的参数。 MySQL 5.7的参数可以通过修改配置文件my.cnf来进行配置。my.cnf文件通常位于MySQL安装目录下的/etc或者/etc/mysql目录下。在Linux系统中,可以通过vi或者nano等编辑器打开该文件进行修改。 修改MySQL的参数有两种方式:动态修改和静态修改。 动态修改是指在运行时直接修改MySQL的参数值,这种方式的优点是不需要重启MySQL服务,缺点是重启MySQL服务后,修改的参数值会失效。 静态修改是指在my.cnf文件中修改MySQL的参数值,这种方式的优点是修改的参数值会持久化保存,即使重启MySQL服务后,修改的参数值也不会失效。缺点是需要重启MySQL服务才能生效。 下面是两种方式的具体操作步骤: 动态修改MySQL参数: 可以通过下面的命令动态修改MySQL的参数: ``` SET GLOBAL parameter_name=parameter_value; ``` 其中,parameter_name为要修改的参数名,parameter_value为要修改的参数值。例如,要将max_connections参数修改为1000,可以使用下面的命令: ``` SET GLOBAL max_connections=1000; ``` 静态修改MySQL参数: 可以通过修改my.cnf文件来静态修改MySQL的参数。具体操作步骤如下: 1.使用编辑器打开my.cnf文件,例如: ``` sudo vi /etc/mysql/my.cnf ``` 2.找到要修改的参数行,例如: ``` max_connections=100 ``` 3.将参数值修改为需要的值,例如: ``` max_connections=1000 ``` 4.保存修改后的my.cnf文件。 5.重启MySQL服务,例如: ``` sudo service mysql restart ``` 这样,修改的参数值就会生效了。 希望以上内容能够对您有所帮助。如果您还有其他问题,可以随时向我提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值