资讯专栏INFORMATION COLUMN

MongDB 数据库副本集配置

jubincn / 843人阅读

摘要:登陆丛机此时,丛机已经在副本集群中了,进行最后一个操作这样在主机上的操作就会同步到从机上了。

本文目的

为了在各个MongDB之间实现多节点之间的数据自动备份,提高容灾性能。MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性。
mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。mongodb各个节点常见的搭配方式为:一主一从、一主多从。主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。

N 个节点的集群

任何节点可作为主节点

所有写入操作都在主节点上

自动故障转移

自动恢复

操作步骤

本文中使用同一个MongoDB实现两个节点的直接的备份,当然是有主、从的,但是这个主、从和一般的主从不一样,这里的主机爆掉之后,就会自动连接到丛机上继续使用数据。这就是集群的优势所在。

准备两个数据库
复制两个data目录:data与data1目录,也就是两个数据库目录。分别修改这两个data目录下的配置文件,分别为:

data中,/data/etc/mongodb.conf:

dbpath=datadb #数据库路径
logpath=datalogsmongodb.log #日志输出文件路径
logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
journal=true #启用日志文件,默认启用
quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
port=27017 #端口号 默认为27017

data1中,/data1/etc/mongodb.conf:

dbpath=data1db #数据库路径
logpath=data1logsmongodb.log #日志输出文件路径
logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
journal=true #启用日志文件,默认启用
quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
port=27018 #端口号 默认为27018

启动两个mongoDB数据库
cmd中:

由于本文是在同一台机器上配置两个节点,所以两个节点的ip是相同的:
启动第一个数据库:

mongod --port 27017 --dbpath "data" --replSet rs

启动第二个数据库:

mongod --port 27018 --dbpath "data1" --replSet rs

添加将数据库添加到副本集中
登陆第一个数据库:
mongo 127.0.0.1:27017
以该数据库为主机,初始化副本集,初始化过程化过程中就会将该数据库作为主机加入到这个副本集中了。

初始化副本集:

>rs.initiat()

查看当前副本集的机器情况:

>rs.conf()

当前应该只有27017这个主机在这个副本集中。
然后再将丛机都加进来:

>rs.add("trilever-pc:27018")

再看当前副本集集群的情况,就会发现丛机已经加进来了。
登陆丛机:

mongo 127.0.0.1:27017

此时,丛机已经在副本集群中了,进行最后一个操作:

>rs.slaveok()

这样在主机上的操作就会同步到从机上了。

整个配置完毕。验证即可。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18907.html

相关文章

  • 磊哥评测之据库:腾讯云MongoDB vs自建

    摘要:为了进行数据库对比测试,这次我购买了腾讯云的主从版主从,同时在同样配置的云主机自建作为对比。有读者可能会有疑惑,既然数据库测试是比较云和自建,看起来差距也没有那么大,用自建好像也可以接受啊。 本文由云+社区发表作者:磊哥 上期文章我们聊到了redis。这期我们来说说另一个网红nosql数据库:MongoDB。有这么一个介绍MongoDB的说法是:MongoDB是非关系数据库当中功能最...

    aikin 评论0 收藏0
  • 磊哥评测之据库:腾讯云MongoDB vs自建

    摘要:为了进行数据库对比测试,这次我购买了腾讯云的主从版主从,同时在同样配置的云主机自建作为对比。有读者可能会有疑惑,既然数据库测试是比较云和自建,看起来差距也没有那么大,用自建好像也可以接受啊。 本文由云+社区发表作者:磊哥 上期文章我们聊到了redis。这期我们来说说另一个网红nosql数据库:MongoDB。有这么一个介绍MongoDB的说法是:MongoDB是非关系数据库当中功能最...

    jemygraw 评论0 收藏0
  • 【MongoDB】MongoDB复制原理

    摘要:另外,支持对复制集的节点进行灵活的配置,以适应多种场景的需求。节点只参与投票,不能被选为,并且不从同步数据。节点不能被选为主为,并且对不可见。根据各集合的设置,在上为相应集合创建。 复制集简介 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Second...

    baiy 评论0 收藏0
  • 用Docker和Kubernetes将MongoDB作为微服务来运行

    摘要:注意事项用容器和编排工具运行介绍了一些额外注意事项数据库是有状态的。尤其,在副本集合中,一个节点必须被用来执行和命令。名字叫做的被配置用来确保的单个实例是一直在运行的。 想要在你的手提电脑上尝试MongoDB吗?执行一个命令,然后拥有一个轻量级,独立的沙箱;再执行一个命令,删除你完成之后所有的痕迹。是不是需要一个在多个环境中都跟你的应用程序堆栈一样的应用程序?创建一你自己的容器镜像,然...

    Neilyo 评论0 收藏0
  • 用Docker和Kubernetes将MongoDB作为微服务来运行

    摘要:注意事项用容器和编排工具运行介绍了一些额外注意事项数据库是有状态的。尤其,在副本集合中,一个节点必须被用来执行和命令。名字叫做的被配置用来确保的单个实例是一直在运行的。 想要在你的手提电脑上尝试MongoDB吗?执行一个命令,然后拥有一个轻量级,独立的沙箱;再执行一个命令,删除你完成之后所有的痕迹。是不是需要一个在多个环境中都跟你的应用程序堆栈一样的应用程序?创建一你自己的容器镜像,然...

    mo0n1andin 评论0 收藏0

发表评论

0条评论

jubincn

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<