资讯专栏INFORMATION COLUMN

MongoDB 创建集群的步骤备忘

asoren / 2821人阅读

摘要:创建三个数据库目录启动三个实例开启命令行初始化查看添加一个从节点这里的是查出来的属性添加一个再查看状态可以看到变成了三个自动恢复执行下面的代码模拟插入操作插入成功插入失败正在

创建三个数据库目录

$ cd /data
$ mkdir db27017 db27018 db27019

启动三个实例

$ mongod --replSet replset --dbpath /data/db27017 --port 27017 --oplogSize 200 --smallfiles
$ mongod --replSet replset --dbpath /data/db27018 --port 27018 --oplogSize 200 --smallfiles
$ mongod --replSet replset --dbpath /data/db27019 --port 27019 --oplogSize 200 --smallfiles

开启命令行

$ mongo

初始化

$ rs.initiate()

查看 name

$ rs.status()

添加一个从节点, 这里的 "lai-2.local" 是 rs.status() 查出来的 name 属性

$ rs.add("lai-2.local:27018")

添加一个 arbiter

$ rs.addArb("lai-2.local:27019")
再查看状态, 可以看到 members 变成了三个
$ rs.status()

自动恢复

$ mongo  —nodb

执行下面的代码, 模拟插入操作

var conn = new Mongo("replset/localhost:27017,localhost:27018,localhost:27019");
var db =conn.getDB("test");
var count=0; while(count++<1000) {
    try{
        sleep(1000);  
        db.col.insert({n: count});  
        print("插入成功 #" + count);  
    }
    catch(exception){
        print("插入失败 #"+count+",  正在重试...");
        count--;
    }
}

执行上述脚本后, 关掉 27017 的 shell 看看发生了什么?

数据库连接 27017 失败, 会尝试连接 27018.

这时候 27018 变成主节点了.

重启 27017 的话, 27017 变成非主节点了.

这时候再次关掉 27018 的shell, 27017 则会变成主节点.

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

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

相关文章

  • mongoose 操作备忘

    摘要:如果不存在则创建新记录。如果值为,执行验证。如果选项为,在新建时插入文档定义的默认值。以模式进行更新。禁用模式,允许覆盖记录示例更新多个为的文档将设置为更新多条数据与相同更新一条数据设置无效查找查询条件控制返回的字段控制选项回调函数。 在使用node.js时,时常与之搭配的是mongoDB,一般我们不写原生mongo语法,一个经常使用的mongo库便是mongoose,由于个人记性比较...

    happyhuangjinjin 评论0 收藏0
  • mongoDB运维篇④】Shard 分片集群

    摘要:简述为何要分片减少单机请求数,降低单机负载,提高总负载减少单机的存储空间,提高总存空间。就是用来存储所有节点的配置信息每个的范围在各的分布情况该集群中所有和的配置信息。 简述 为何要分片 减少单机请求数,降低单机负载,提高总负载 减少单机的存储空间,提高总存空间。 showImg(http://static.oschina.net/uploads/space/2014/0201/1...

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

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

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

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

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

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

    ad6623 评论0 收藏0

发表评论

0条评论

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