mongoDB 副本集配置

nodejs中如何使用:

https://github.com/christkv/node-mongodb-native/blob/master/docs/replicaset.md

建立一个副本集需要步骤:

  1. 需要启动每个节点
  2. 然后进行初始化设置。

在这里,先配置一组(三个节点),这是标准设置。一旦mongod节点启动,将发出一个命令,以正确地初始化设置。几秒钟后,将选举产生一个主节点,就可以开始写和查询集。

启动节点

首先,创建每个节点的数据目录。

# sudo mkdir -p /data/db/data/20
      # sudo mkdir -p /data/db/data/21
      # sudo mkdir -p /data/db/data/22

接下来,使用”sudo mongod --replset”启动每个mongod进程,”–replset”参数需要你指定一个副本集逻辑名称.这里使用“blort”作为第一个节点的名称:

启动第一个节点,端口 27020.

sudo mongod --port 27020 --replSetblort/localhost:27021 --dbpath/data/db/data/20/ 

//注意:localhost是主机名

启动第二个节点,端口 27021.

sudo mongod --port 27021 --replSetblort/localhost:27020 --dbpath/data/db/data/21/ 

最后,启动第三个节点,端口 27022.

sudo mongod --port 27022 --replSetblort/localhost:27020 --dbpath/data/db/data/22/ 

现在你有三个节点在运行中,注意,每个节点都应显示如下警告:

Mon Aug 2 11:30:19 [startReplSets] replSet can't getlocal.system.replset config from self or any seed(EMPTYCONFIG)在初始化这些节点前,还不能使用这个副本集.

初始化节点 :

连接到其中一个节点上,并使用 replSetInitiate 命令进行初始化。此命令需要一个配置对象( configurationobject ),指定设定的每个成员的名字。

# mongo localhost:27020

MongoDB shell version: 2.0.4
connecting to: localhost:27020/test
> config = {_id: 'blort', members: [
{_id: 0, host: 'localhost:27020'},
{_id: 1, host: 'localhost:27021'},
{_id: 2, host: 'localhost:27022'}]
}

> rs.initiate(config);
{
"info" : "Config now saved locally. Should come online in about a minute.",
"ok" : 1
}

指定的配置对象传递给rs.initiate()。然后,如果一切正常,得到回应:副本集将在一分钟内在线。在此期间,其中一个节点将当选为主节点。

运行 rs.status 检查节点状态:

> rs.status()
{
        "set" : "blort",
        "date" : ISODate("2012-09-24T07:11:08Z"),
        "myState" : 2,
        "syncingTo" : "localhost:27020",
        "members" : [
                {
                        "_id" : 0,
                        "name" : "localhost:27020",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 5384,
                        "optime" : {
                                "t" : 1348470385000,
                                "i" : 2
                        },
                        "optimeDate" : ISODate("2012-09-24T07:06:25Z"),
                        "lastHeartbeat" : ISODate("2012-09-24T07:11:08Z"),
                        "pingMs" : 0
                },
                {
                        "_id" : 1,
                        "name" : "localhost:27021",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "optime" : {
                                "t" : 1348470385000,
                                "i" : 2
                        },
                        "optimeDate" : ISODate("2012-09-24T07:06:25Z"),
                        "self" : true
                },
                {
                        "_id" : 2,
                        "name" : "localhost:27022",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 5384,
                        "optime" : {
                                "t" : 1348470385000,
                                "i" : 2
                        },
                        "optimeDate" : ISODate("2012-09-24T07:06:25Z"),
                        "lastHeartbeat" : ISODate("2012-09-24T07:11:06Z"),
                        "pingMs" : 0
                }
        ],
        "ok" : 1
}

state值是1,这表明已经连接到主节点,值为2表示一个辅节点。


参考:http://snoopyxdy.blog.163.com/blog/static/60117440201241694254441/

          http://docs.mongodb.org/manual/reference/replica-configuration/

         http://docs.mongodb.org/manual/tutorial/deploy-replica-set/



如何设置主从节点:

(--dbpath为数据目录,--source 为从节点指明主节点的地址,如果在同一台机器上不能选择相同的目录和端口

 

//启动主节点

sudo mongod --dbpath /data/db/data/master --port 30000 --master


//启动从节点

sudo mongod --dbpath /data/db/data/slave --port 30001 --slave--source 192.168.1.102:30000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值