MongoDB:副本集集群配置

mongodb 副本集

                
                
 mongod  --dbpath /data/mongodbtest/replset/data   --replSet repcls01 
 
 
 
 
 mongod --config D:\MongoDB\Server\3.2\mongodb.conf --replSet repcls01     --install --serviceName MongoDBreplSet1 --serviceDisplayName MongoDBreplSet1  
 
 
 mongod  --config D:\MongoDB\Server\3.2\mongorepl01.conf --replSet repcls01  --install --serviceName MongoDBreplSet2 --serviceDisplayName MongoDBreplSet2 
 
 
 
 config = { _id:"repcls01", members:[
   {_id:0,host:"192.168.1.132:27017"},
   {_id:1,host:"192.168.1.132:27027"}] }
   
   
   
 rs.initiate(config);
 
  rs.status();
 
  PRIMARY
  SECONDARY
  STARTUP2
   
 

db.getMongo().setReadPref('primaryPreferred')

 

  
> rs.initiate(config);
{ "ok" : 1 }
 
 
repcls01:OTHER>
repcls01:SECONDARY>
repcls01:SECONDARY>
repcls01:SECONDARY>  rs.status();
{
        "set" : "repcls01",
        "date" : ISODate("2016-11-25T06:39:02.571Z"),
        "myState" : 1,
        "term" : NumberLong(1),
        "heartbeatIntervalMillis" : NumberLong(2000),
        "members" : [
                {
                        "_id" : 0,
                        "name" : "192.168.1.132:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 333,
                        "optime" : {
                                "ts" : Timestamp(1480055936, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2016-11-25T06:38:56Z"),
                        "infoMessage" : "could not find member to sync from",
                        "electionTime" : Timestamp(1480055935, 1),
                        "electionDate" : ISODate("2016-11-25T06:38:55Z"),
                        "configVersion" : 1,
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "192.168.1.132:27027",
                        "health" : 1,
                        "state" : 5,
                        "stateStr" : "STARTUP2",
                        "uptime" : 18,
                        "optime" : {
                                "ts" : Timestamp(0, 0),
                                "t" : NumberLong(-1)
                        },
                        "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
                        "lastHeartbeat" : ISODate("2016-11-25T06:39:01.680Z"),
                        "lastHeartbeatRecv" : ISODate("2016-11-25T06:39:01.125Z"),
                        "pingMs" : NumberLong(0),
                        "syncingTo" : "192.168.1.132:27017",
                        "configVersion" : 1
                }
        ],
        "ok" : 1
}  
  
   
repcls01:SECONDARY>
repcls01:SECONDARY>   db.stat_res_play_record_bak.find({})
Error: error: { "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 }
repcls01:SECONDARY>   db.getMongo().setSlaveOk();
repcls01:SECONDARY>
repcls01:SECONDARY>
repcls01:SECONDARY> db.stat_res_play_record_bak.find({})
repcls01:SECONDARY> use admin
switched to db admin
repcls01:SECONDARY> db.stat_res_play_record_bak.find({})
repcls01:SECONDARY> show dbs
ad2     0.461GB
ad3     0.000GB
admin   0.000GB
config  0.000GB
local   0.000GB
repcls01:SECONDARY> use admin3
switched to db admin3
repcls01:SECONDARY> use ad3
switched to db ad3
repcls01:SECONDARY> db.stat_res_play_record_bak.find({})
repcls01:SECONDARY> use ad2
switched to db ad2
repcls01:SECONDARY> db.stat_res_play_record_bak.find({}).count();
3720812
repcls01:SECONDARY>
repcls01:SECONDARY>
repcls01:SECONDARY> use ad3
switched to db ad3
repcls01:SECONDARY> db.stat_res_play_record_bak.find({}).count();
0

 
 
 
上面是最简单的一份复制,下面稍微增加一点复杂度,加一个监控:
 
*****************************************************************
配置为自动监控模式:增加一个仲裁节点
*****************************************************************
 

 conf = { _id:"repcls01", members:[
   {_id:0,host:"192.168.1.132:27017"},
   {_id:1,host:"192.168.1.132:27027"},
   }
   ] } ;
 
rs.reconfig(conf) ;
 
rs.status() ;

 
repcls01:PRIMARY> rs.status() ;
{
        "set" : "repcls01",
        "date" : ISODate("2016-11-28T07:49:32.669Z"),
        "myState" : 1,
        "term" : NumberLong(7),
        "heartbeatIntervalMillis" : NumberLong(2000),
        "members" : [
                {
                        "_id" : 0,
                        "name" : "192.168.1.132:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 373,
                        "optime" : {
                                "ts" : Timestamp(1480319162, 1),
                                "t" : NumberLong(7)
                        },
                        "optimeDate" : ISODate("2016-11-28T07:46:02Z"),
                        "lastHeartbeat" : ISODate("2016-11-28T07:49:32.618Z"),
                        "lastHeartbeatRecv" : ISODate("2016-11-28T07:49:32.605Z"),
                        "pingMs" : NumberLong(0),
                        "syncingTo" : "192.168.1.132:27027",
                        "configVersion" : 2
                },
                {
                        "_id" : 1,
                        "name" : "192.168.1.132:27027",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 2331,
                        "optime" : {
                                "ts" : Timestamp(1480319162, 1),
                                "t" : NumberLong(7)
                        },
                        "optimeDate" : ISODate("2016-11-28T07:46:02Z"),
                        "electionTime" : Timestamp(1480319000, 1),
                        "electionDate" : ISODate("2016-11-28T07:43:20Z"),
                        "configVersion" : 2,
                        "self" : true
                },
                {
                                                "name" : "192.168.1.132:27047",
                        "health" : 1,
                        "state" : 7,
                        "stateStr" : "ARBITER",
                        "uptime" : 210,
                        "lastHeartbeat" : ISODate("2016-11-28T07:49:32.617Z"),
                        "lastHeartbeatRecv" : ISODate("2016-11-28T07:49:27.755Z"),
                        "pingMs" : NumberLong(0),
                        "configVersion" : 2
                }
        ],
        "ok" : 1
}
 
 
 
 
**************************************
重组节点关系
**************************************
 
  conf1 = { _id:"repcls01", members:[
   {_id:0,host:"192.168.1.132:27017"},
   {_id:1,host:"192.168.1.132:27027"},
   {_id:2,host:"192.168.1.132:27047",arbiterOnly:true}
   ] } ;
rs.reconfig(conf1) ;
rs.status() ;
 
 
repcls01:PRIMARY>  conf1 = { _id:"repcls01", members:[
...    {_id:0,host:"192.168.1.132:27017"},
...    {_id:1,host:"192.168.1.132:27027"},
...    {_id:2,host:"192.168.1.132:27047",arbiterOnly:true}
...    ] } ;
{
        "_id" : "repcls01",
        "members" : [
                {
                        "_id" : 0,
                        "host" : "192.168.1.132:27017"
                },
                {
                        "_id" : 1,
                        "host" : "192.168.1.132:27027"
                },
                {
                        "_id" : 2,
                        "host" : "192.168.1.132:27047",
                        "arbiterOnly" : true
                }
        ]
}
repcls01:PRIMARY> rs.reconfig(conf1) ;
{ "ok" : 1 }
repcls01:PRIMARY>
repcls01:PRIMARY> rs.status() ;
{
        "set" : "repcls01",
        "date" : ISODate("2016-11-28T08:23:22.748Z"),
        "myState" : 1,
        "term" : NumberLong(8),
        "heartbeatIntervalMillis" : NumberLong(2000),
        "members" : [
                {
                        "_id" : 0,
                        "name" : "192.168.1.132:27017",
 
 
 
 
 
 
 
 
 

*****************************************************************
Replication Methods in the mongo Shell
命令
描述
==========================================================
rs.add() 
为复制集新增节点。
rs.addArb() 
为复制集新增一个 arbiter
rs.conf() 
返回复制集配置信息
rs.freeze() 
防止当前节点在一段时间内选举成为主节点。
rs.help() 
返回 replica set 的命令帮助
rs.initiate() 
初始化一个新的复制集。
rs.printReplicationInfo() 
以主节点的视角返回复制的状态报告。
rs.printSlaveReplicationInfo() 
以从节点的视角返回复制状态报告。
rs.reconfig() 
通过重新应用复制集配置来为复制集更新配置。
rs.remove() 
从复制集中移除一个节点。
rs.slaveOk() 
为当前的连接设置 slaveOk 。不推荐使用。使用 readPref() 和 Mongo.setReadPref() 来设置 read preference 。
rs.status() 
返回复制集状态信息。
rs.stepDown() 
让当前的 primary 变为从节点并触发 election 。
rs.syncFrom() 
设置复制集节点从哪个节点处同步数据,将会覆盖默认选取逻辑。
复制集数据库命令
命令
描述
replSetFreeze 
防止当前节点在一段时间内选举成为主节点。
replSetGetStatus 
返回复制集的状态报告。
replSetInitiate 
初始化一个新的复制集。
replSetMaintenance 
开启活关闭维护模式,维护模式将使 secondary 进入 RECOVERING 状态。
replSetReconfig 
为已存在的复制集应用新的配置。
replSetStepDown 
强制当前的 primary *降职*变为 secondary ,并触发选举。
replSetSyncFrom 
覆盖默认的复制来源选取逻辑。
resync 
强制 mongod 重新从 master 进行初始化复制。仅在主-从模式。
applyOps 
内部命令应用 oplog 在现在的数据集上。
isMaster 
返回该节点的角色信息,包括是否为主节点。
replSetGetConfig Returns the replica set’s configuration object.

 

 

 

 Mongo.setReadPref(mode, tagSet)
Call the setReadPref() method on a Mongo connection object to control how the client will route all queries to members of the replica set.

Parameter Type Description
mode string One of the following read preference modes: primary, primaryPreferred, secondary, secondaryPreferred, or nearest.
tagSet array Optional. A tag set used to specify custom read preference modes. For details, see 标签设置.

Examples:

db.getMongo().setReadPref('primaryPreferred')

db.getMongo().setReadPref('secondaryPreferred')

 

 

 

 

dbpath=D:\MongoDB\data #数据库路径
logpath=D:\MongoDB\data\mongodb.log #日志输出文件路径
logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
journal=true #启用日志文件,默认启用
quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
port=27017 #端口号 默认为27017
maxConns=1000
cpu=true  # 定期显示CPU的CPU利用率和iowait。置为true会强制mongodb每4s报告cpu利用率和io等待,把日志信息写到标准输出或日志文件。默认为false。
wiredTigerCacheSizeGB=1  # 限制内存
replSet=repcls01

 


dbpath=D:\MongoDB\repldata01 #数据库路径
logpath=D:\MongoDB\repldata01\mongodb.log #日志输出文件路径
logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
journal=true #启用日志文件,默认启用
quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
port=27027 #端口号 默认为27017
maxConns=1000
cpu=true  # 定期显示CPU的CPU利用率和iowait。置为true会强制mongodb每4s报告cpu利用率和io等待,把日志信息写到标准输出或日志文件。默认为false。
wiredTigerCacheSizeGB=1  # 限制内存
replSet=repcls01

 


dbpath=D:\MongoDB\dataarb #数据库路径
logpath=D:\MongoDB\dataarb\mongodb.log #日志输出文件路径
logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
journal=true #启用日志文件,默认启用
quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
port=27047 #端口号 默认为27017
maxConns=1000
cpu=true  # 定期显示CPU的CPU利用率和iowait。置为true会强制mongodb每4s报告cpu利用率和io等待,把日志信息写到标准输出或日志文件。默认为false。
wiredTigerCacheSizeGB=1  # 限制内存
replSet=repcls01

 

 

 mongod  --config D:\MongoDB\Server\3.2\mongorepl00.conf   --install --serviceName MongoDBreplSet11 --serviceDisplayName MongoDBreplSet11
 
 mongod  --config D:\MongoDB\Server\3.2\mongorepl01.conf   --install --serviceName MongoDBreplSet12 --serviceDisplayName MongoDBreplSet12
 
 mongod  --config D:\MongoDB\Server\3.2\mongorepl03arb.conf   --install --serviceName MongoDBreplSet3ARB --serviceDisplayName MongoDBreplSet3ARB


相关推荐

  • C++开发:Windows2003配置集群详解(四) 提示:以上三方面的内容在群集中的所有其他节点上,都应进行同样的设置。设置群集用户账户群集服务需要一个域用户账户,该账户应为每个可运行群集服务的节点上的“本地管理员”组成员。因为安装需要用户名和密码,所以该用户账户必须在配置群集服务前予以创建
  • 虚拟环境下配置集群以及故障恢复 虚拟环境下配置集群以及故障恢复VMWare教程2011-01-1409:57虚拟数据中心的高可用性(HA)是一个多层次的任务,它涉及到在线备份(livebackup)、故障恢复功能或集群等等。在本文中,将探讨如何在虚拟环境下配置集群(clu
  • 虚拟环境下配置集群以及故障恢复 虚拟数据中心的高可用性(HA)是一个多层次的任务,它涉及到在线备份(livebackup)、故障恢复功能或集群等等。在本文中,将探讨如何在虚拟环境下配置集群(cluster),建立故障恢复体系(failoverstructure)。虚拟化的
  • Nginx+tomcat配置集群负载均衡 http://wangxr66.iteye.com/blog/1559082开发的应用采用F5负载均衡交换机,F5将请求转发给5台hpunix服务器,每台服务器有多个webserver实例,对外提供web服务和socket等接口服务。之初,
  • 集群!集群!集群服务器! 许多人在建一个应用系统时,都不太重视集群,习惯于简单地用一个服务器解决问题。强烈地建议:应该把应用服务器的集群当成一个基本的配置。为什么呢?第一:服务器是会坏的。硬件可能会坏,系统也可能出问题。这时集群对于整个应用的可靠性的意义不言而喻。第
  • 什么叫集群,集群服务的工作原理? 一、集群:英文名称为Cluster,通俗地说,集群是这样一种技术:它至少将两台服务器连接到一起,使它们能够像一台机器那样工作或者看起来好像一台机器。二、用途:采用集群系统通常是为了提高系统的稳定性和网络中心的数据处理能力及服务能力。举个例子
  • CISOC交换机基本配置命令全集 基本配置命令Switch>enable进入特权模式Switch#configterminal进入全局配置模式Switch(config)#hostname设置交换机的主机名Switch(config)#enablepassword进入
  • 交换机端口镜像配置方法集 CiscoCATALYST交换机端口监听配置CiscoCATALYST交换机分为两种,在CATALYST家族中称侦听端口为分析端口(analysisport)。1、Catalyst2900XL/3500XL/2950系列交换机端口监听配置(
  • apache 配置错误集合 1,浏览器访问时,无法访问查看apache日志为:Apache/2.2.22(Unix)configured--resumingnormaloperations一般情况,都是配置的问题,也就是httpd.conf.我仔细检查后发现:Docu
  • 09年软件水平考试辅导:配置程序集的版本策略  在实际工作中,版本策略被使用得比较多,本节将借助分析这个面试题来简要介绍程序集的版本策略和配置方法。  所涉及到的知识点  •版本策略的基本原理  •程序集版本策略的配置  分析问题  当一个程序集通过名字、版本、
  • 用cruisecontrol和phpundercontrol配置php持续集成服务器 用cruisecontrol和phpundercontrol配置php持续集成服务器1.安装jdk1)下载sunjdk2)安装chmod+x./jdk-6u27-linux-x64-rpm.bin./jdk-6u27-linux-x64-r
  • 思科路由器配置命令集 思科路由器配置命令集 Access-enable  允许路由器在动态访问列表中创建临时访问列表入口  Access-group  把访问控制列表(ACL)应用到接口上  Access-list  定义一个标准的IPACL  Access-t

你的评论

就没有什么想说的吗?

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X