MongoDB Replica Set & Sharding

记得风吹起的零散记忆 ,堆砌着巧克力般的幸福甜蜜,那时一起走过的青草绿地 ,留下了锦瑟音里的万千思绪

  • 搜狗截图20180410222542
  • MongoDB Replica Set

    • 准备服务器:172.16.8.91,172.16.8.92,172.16.8.93
    • # mongod –config=/usr/local/mongodb/mongodb.conf :启动,启动前需要在每台服务器上的配置文件中加入replSet=SET01
    • 配置主从节点:

      • 方式一:

        • # mongo 172.16.8.91:27017
        • > rs.initiate() :初始化副本集,登入任意一台机器的MongoDB执行,因为是全新的副本集所以可以任意进入一台执行;要是有一台有数据,则需要在有数据上执行;要多台有数据则不能初始化,输入的此命令只是将当前机器设置为primary,到primary状态有一个等待时间
        • > rs.status():查看副本集的状态

          • {
  • "set" : "testRS",

    "date" : ISODate("2018-04-10T13:21:42.192Z"), 当前日期

    "myState" : 1,

    "members" : [ 显示当前副本集成员的属性

    {

    "_id" : 0, 节点加入副本集后的唯一ID

    "name" : "centos7-5:27017",

    "health" : 1, 节点的健康状态

    "state" : 1,

    "stateStr" : "PRIMARY", 该节点

    "uptime" : 507, 运行时长

    "optime" : Timestamp(1544534491, 1), optime:指某成员节点最后一次应用本地oplog日志中事件条目的时间戳,时间戳即是一串数字,和时间有所区别

    "optimeDate" : ISODate("2018-04-10T13:21:31Z"), 最后一次oplog操作的时间

    "electionTime" : Timestamp(1544534491, 2), 选举时间戳

    "electionDate" : ISODate("2018-04-10T13:21:31Z"), 选举时间

    "configVersion" : 1,

    "self" : true

    }

    ],

    "ok" : 1

    }

  • testRS:PRIMARY> rs.add(“172.16.8.92”):添加从节点到副本集,指定IP和PORT,PORT默认27017,刚开是从节点的状态STARTUP,是因为在进行数据同步的初始化阶段,如果数据同步完成变成SECONDARY
  • testRS:PRIMARY> rs.add(“172.16.8.93”)
  • 方式二:

    • # mongo 172.16.8.91:27017
    • > cfg={ _id:"RSet01", members:[ {_id:0,host:’172.16.8.91:27017′,priority:2}, {_id:1,host:’172.16.8.92:27017′,priority:1}, {_id:2,host:’172.16.8.93:27017′,arbiterOnly:true}] };

      • cfg:设置一个cfg的变量,是可以任意的名字,当然最好不要是mongodb的关键字,conf,config都可以
      • _id : 副本集的名称
      • members :副本集的服务器列表
      •  _id : 服务器加入副本集后的唯一ID
      • priority:表示优先级,优先级最高的成为primary,默认为1,优先级0为被动节点,不能成为活跃节点。优先级不位0则按照有大到小选出活跃节点。
      • arbiterOnly:true :表示仲裁节点,只参与投票,不接收数据,也不能成为活跃节点。
    • > rs.initiate(cfg) 使cfg配置生效
  • MongoDB副本集相关的指令:

    • rs.help() 副本集命令的帮助
    • rs.status()    查看副本集中成员的运行状态等信息
    • rs.config()     查看配置信息,即各成员信息
    • rs.slaveOk()   允许在SECONDARY节点上进行查询操作,默认从节点不具有查询功能
    • rs.isMaster()   查询该节点是否是主节点
    • rs.add(“IP”)    添加新的节点到该副本集中
    • rs.remove()    从副本集中删除节点,如:rs.remove(“IP:PORT”),必须加端口
    • rs.conf() 打印副本集的成员配置信息到荧幕
    • rs.stepDown([#]) 指定#秒后让自己离线,不指定#表示立即
    • rs.addArb(”IP”) 添加一个节点为arbiter
  • MongoDB Sharding的搭建

    • 先启动若干 shard 节点: # mongod –shardsvr
    • 启动 3 个 config 节点: # mongod –configsvr
    • 启动 mongos :# mongos –configdb=192.168.1.100, 192.168.1.101, 192.168.1.102

      • –shardsvr 参数只起到修改默认端口为 27018 作用,–configsvr 则修改默认端口为 27019 以及默认路径为 /data/configdb。此外并没有什么直接作用。实际使用时,也可以自己指定端口和数据路径。此外,这两个参数的另一个作用就是对进程进行标记,这样在 ps aux 的进程列表里,就很容易确定进程的身份。–configdb 参数就是 config 节点的地址。如果更改了默认端口,则需要在这里加上。
    • 然后我们把数据节点加入集群:

      • # mongo连接到mongos节点
      • > use admin
      • > sh.addShard(’ [hostname]:[port]’)
      • 如果使用的是 replicaSet,则是

        • > use admin
        • > sh.addShard(’replicaSetName/,,’)
      • 接着就是启用 sharding 了。

        • > sh.enableSharding(dbname)
        • > sh.shardCollection(fullName, key, unique)
    • 这样就可以了。还是很简单的吧。如果 collection 里有数据,则会自动进行数据平衡

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95667

(0)
DPingDPing
上一篇 2018-04-10 21:28
下一篇 2018-04-11 14:05

相关推荐

  • Nginx介绍及Web服务相关配置

    Nginx 是一个高性能的Web和反向代理服务器, 它具有有很多非常优越的特性:作为 Web 服务器:相比Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx尤其受到虚拟主机提供商的欢迎。

    2018-07-10
  • 粗谈用户和用户组相关配置文件

    创建一个用户时,用户会根据系统配置文件来创建用户。配置文件在/etc/login.defs文件里 login.defs //创建账户自动分配参数 PASS_MAX_DAYS //可以使用密码的最大天数。 PASS_MIN_DAYS //密码更改之间允许的最短天数 PASS_MIN_LEN //最小可接受的密码长度 PASS_WARN_AGE //密码过期前发…

    Linux笔记 2018-04-08
  • mysql主从复制

    首先配置主从复制结构 主节点: # vim /etc/my.cnf.d/server.cnf [mysqld] server_id=1 log_bin=master-bin innodb_file_per_table=on skip_name_resolve=on # systemctl start mairadb mysql> grant repli…

    Linux笔记 2018-06-10
  • Linux运维学习的常用命令总结以及需要注意的地方(1)

    逆水行舟,不进则退 ,大家共勉之!
    1.在linux安装阶段可能会用到的命令
    2.设置网络相关的命令
    3.用户频道的切换以及用户相关信息的查看
    4.系统当前的shell信息以及别名、内部命令、外部命令相关

    2018-04-02
  • linux基础之自动登陆和自动开启网卡设置

    Centos7.4设置自动登陆以及设置网卡开机自动启用功能 1、进入命令行模式,输入 nano /etc/gdm/custom.conf ,在[daemon]下添加2条命令,分别是 AutomaticLoginEnable=true AutomaticLogin=root 2、然后按住Ctrl+X退出并保存,接着选择Y,再按回车键即可保存更改,到这里设置自动…

    2018-03-29
  • awk工具详解

    介绍了awk的使用格式,和它的一些使用技巧。

    2018-05-17