MySQL  - 讨论区

标题:如何使用TokuMX配置Replica Set集群

2013年12月14日 星期六 17:01

Replica Set是MongoDB典型的集群部署方式,其特点是:

1,集群由多个MongoDB实例构成。

2,多个实例中,只有一个实例是Primary角色,其他都是Secondary角色。

3,默认情况下,只有Primary实例可读可写,Secondary角色不可读写。

4,可以手工配置Secondary实例使之可读。

5,当Primay实例宕机后,其余的实例会尝试选举出一个新的实例作为Primary角色。

6,MongoDB的客户端会自动发现集群的所有成员,并且会自动识别Primary实例。

使用TokuMX配置Replica Set过程很简单,我们有如下基础环境:

服务器信息:

IP地址:172.16.88.97,内存:16G,数据磁盘目录:/data

我们准备为此Replica Set启动三个TokuMX实例,端口分别为:27017,27018,27019.

三个实例的配置文件为:

实例1:

logpath=/data/mongod/mongod.log
fork = true
port = 27017
dbpath=/data/mongod
pidfilepath=/data/mongod/mongod.pid
directio = true
rest = true
cacheSize=2G
replSet=HugeSet
expireOplogDays=14

实例2:

logpath=/data/mongod2/mongod.log
fork = true
port = 27018
dbpath=/data/mongod2
pidfilepath=/data/mongod2/mongod.pid
directio = true
rest = true
cacheSize=2G
replSet=HugeSet
expireOplogDays=14

实例3:

logpath=/data/mongod3/mongod.log
fork = true
port = 27019
dbpath=/data/mongod3
pidfilepath=/data/mongod3/mongod.pid
directio = true
rest = true
cacheSize=2G
replSet=HugeSet
expireOplogDays=14

然后我们启动三个实例:

启动之前需要关闭hugepages:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

mongod -f r1.conf

mongod -f r2.conf

mongod -f r2.conf

然后使用mongo客户端连接r1实例进行配置:

config={
    "_id" : "HugeSet",
    "members" : [
        {"_id" : 0, "host" : "172.16.88.97:27017"},
        {"_id" : 1, "host" : "172.16.88.97:27018"},
        {"_id" : 2, "host" : "172.16.88.97:27019"}
    ]
}

rs.initiate(config)

然后查看集群运行情况:

rs.status()

注意:初始化配置只能在集群中一个实例上进行操作。如果我们是将一个有数据的单独实例升级为Replica Set,那么就在有数据的实例上执行初始化操作就可以了,集群的其他实例会自动将数据同步过去。

 

更多TokuMX(MongoDB)的操作可以参考书籍:

OReilly - MongoDB - The Definitive Guide, 2nd Edition

 

 

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号