安装 mongodb 至每台服务器

准备 3 台以上 mongodb 服务器,并在每台上先做以下操作

下载 mongodb,解压并移动到 /usr/local/mongodb 目录

(若未安装 wget,请先 yum install wget 或者 apt-get install wget) 可以在局域网内某一台 web 服务器上下载后,再去从此服务器下载,会快些。

如: wget -c http://10.0.0.123/mongodb-linux-x86_64-2.6.5.tgz

1wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.5.tgz
2tar zxvf mongodb-linux-x86_64-2.6.5.tgz
3mv mongodb-linux-x86_64-2.6.5 /usr/local/mongodb

建立 mongodb 数据库(data)、日志(log) 文件夹。

1mkdir -p /home/mongodb/data /home/mongodb/log

设置配置文件:

1vi /usr/local/mongodb/mongo.conf

粘贴以下内容到此文件,:wq 保存并退出。

 1systemLog:
 2    destination: "file"
 3    path: "/home/mongodb/log/mongo.log"
 4    logAppend: true
 5storage:
 6    journal:
 7        enabled: true
 8    dbPath: "/home/mongodb/data"
 9    directoryPerDB: true
10processManagement:
11    fork: true
12    pidFilePath: "/usr/local/mongodb/mongo.pid"
13net:
14    port: 27017
15    http:
16        enabled: true
17        RESTInterfaceEnabled: true
18replication:
19    replSetName: "REPLICA_NAME_MUST_BE_THE_SAME"

具体的配置参数可参考官方文档: http://docs.mongodb.org/manual/reference/configuration-options/ 注意空格及缩进

运行 mongodb 进程

1/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongo.conf

因为要建立数据库文件,此处第一次启动可能会比较慢一点

设置开机启动

1vi /etc/rc.d/rc.local

将以下命令粘贴进去,保存退出

1/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongo.conf

第一步工作就绪!!!

设置副本集。

在要设置为 主数据库 的服务器上 打开 mongo

1/usr/local/mongodb/bin/mongo

初始化配置

1rs.initiate()
2rs.conf()

会看到自己已经成为主节点 ####:PRIMARY> #### 是副本集的名称

添加成员

1rs.add("10.0.0.101:27017")
2rs.add("10.0.0.102:27017")
3……

若要添加 仲裁 节点,命令为:

1rs.addArb("10.0.0.111:27017")

注:服务器数量为偶数的时候,需要添加一个仲裁节点来补充,即副本集的所有服务器总数必须为奇数。 关于仲裁节点,更多的可以 google

设置从数据库可读

在每台从服务器上执行以下即可:

1/usr/local/mongodb/bin/mongo
2db.getMongo().setSlaveOk()

亦可在主服务器上使用 /usr/local/mongodb/bin/mongo --host 10.0.0.101 来连接从服务器进行设置(10.0.0.101 为从服务器 IP)

至此,mongodb 副本集配置完成。

可能会用到的操作

设置优先级

设置 _ID 为 2 的服务器为主服务器。

1cfg = rs.conf()
2cfg.members[0].priority = 1
3cfg.members[1].priority = 1
4cfg.members[2].priority = 2
5rs.reconfig(cfg)

设置主服务器为从服务器

1rs.stepDown()

重设数据库 IP 地址

在主服务器上运行 mongo, 然后执行

1cfg = rs.conf()
2cfg.members[n].host= 'new_host_name:prot'
3rs.reconfig(cfg)

若要重设主服务器 IP , 则先给主服务器降级,再在新的主服务器上执行以上操作。