mongodb是一个非关系型的数据库了,在此小编给各位介绍mongodb 副本集方法,希望文章对各位会带来帮助.
第一步、安装 mongodb 至每台服务器,准备 3 台以上mongodb服务器,并在每台上先做以下操作.
1、下载mongodb,解压并移动到 /usr/local/mongodb 目录.
若未安装wget,请先 yum install wget 或者 apt-get install wget,可以在局域网内某一台web服务器上下载后,再去从此服务器下载,会快些.如:
- wget-chttp://10.0.0.123/mongodb-linux-x86_64-2.6.5.tgz
- wget-chttps://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.5.tgz
- tarzxvfmongodb-linux-x86_64-2.6.5.tgz
- mvmongodb-linux-x86_64-2.6.5/usr/local/mongodb
2、建立 mongodb 数据库(data)、日志(log) 文件夹.
mkdir -p /home/mongodb/data /home/mongodb/log
3、设置配置文件:
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/
注意空格及缩进,可用的conf文件.
wget http://xclient.info/assets/mongodb/mongo.conf
4、运行 mongodb 进程:
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongo.conf
因为要建立数据库文件,此处第一次启动可能会比较慢一点.
5、设置开机启动:vi /etc/rc.d/rc.local,将以下命令粘贴进去,保存退出.
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongo.conf
第一步工作就绪!!!
第二步、设置副本集。
1、在要设置为主数据库的服务器上,打开mongo.
/usr/local/mongodb/bin/mongo
2、初始化配置
- rs.initiate()
- rs.conf()
会看到自己已经成为主节点 ####:PRIMARY> #### 是副本集的名称.
3、添加成员
- rs.add("10.0.0.101:27017")
- rs.add("10.0.0.102:27017")
- ……
若要添加 仲裁 节点,命令为:
rs.addArb("10.0.0.111:27017")
注:服务器数量为偶数的时候,需要添加一个仲裁节点来补充,即副本集的所有服务器总数必须为奇数,关于仲裁节点,更多的可以 google.
4、设置从数据库可读,在每台从服务器上执行以下即可:
- /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()
重设数据库IP地址,在主服务器上运行 mongo,然后执行.
- cfg=rs.conf()
- cfg.members[n].host='new_host_name:prot'
- rs.reconfig(cfg)
若要重设主服务器 IP,则先给主服务器降级,再在新的主服务器上执行以上操作.