准备 3 台以上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
wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.5.tgz
tar zxvf mongodb-linux-x86_64-2.6.5.tgz
mv mongodb-linux-x86_64-2.6.5 /usr/local/mongodb
mkdir -p /home/mongodb/data /home/mongodb/log
vi /usr/local/mongodb/mongo.conf
粘贴以下内容到此文件,:wq 保存并退出。
systemLog:
destination: "file"
path: "/home/mongodb/log/mongo.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: "/home/mongodb/data"
directoryPerDB: true
processManagement:
fork: true
pidFilePath: "/usr/local/mongodb/mongo.pid"
net:
port: 27017
http:
enabled: true
RESTInterfaceEnabled: true
replication:
replSetName: "REPLICA_NAME_MUST_BE_THE_SAME"
具体的配置参数可参考官方文档:
http://docs.mongodb.org/manual/reference/configuration-options/
注意空格及缩进
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongo.conf
因为要建立数据库文件,此处第一次启动可能会比较慢一点
vi /etc/rc.d/rc.local
将以下命令粘贴进去,保存退出
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongo.conf
第一步工作就绪!!!
/usr/local/mongodb/bin/mongo
rs.initiate()
rs.conf()
会看到自己已经成为主节点 ####:PRIMARY>
#### 是副本集的名称
rs.add("10.0.0.101:27017")
rs.add("10.0.0.102:27017")
……
若要添加 仲裁 节点,命令为:
rs.addArb("10.0.0.111:27017")
注:服务器数量为偶数的时候,需要添加一个仲裁节点来补充,即副本集的所有服务器总数必须为奇数。
关于仲裁节点,更多的可以 google
在每台从服务器上执行以下即可:
/usr/local/mongodb/bin/mongo
db.getMongo().setSlaveOk()
亦可在主服务器上使用 /usr/local/mongodb/bin/mongo --host 10.0.0.101
来连接从服务器进行设置(10.0.0.101 为从服务器IP)
至此,mongodb 副本集配置完成。
设置 _ID 为2的服务器为主服务器。
cfg = rs.conf()
cfg.members[0].priority = 1
cfg.members[1].priority = 1
cfg.members[2].priority = 2
rs.reconfig(cfg)
rs.stepDown()
在主服务器上运行 mongo, 然后执行
cfg = rs.conf()
cfg.members[n].host= 'new_host_name:prot'
rs.reconfig(cfg)
若要重设主服务器 IP , 则先给主服务器降级,再在新的主服务器上执行以上操作。