debian 8.2 + apt-get + mongodb 3.2 + replica set

来源:互联网 发布:oracle mysql 数据同步 编辑:程序博客网 时间:2024/06/07 22:47

安装debian 8.2

安装 mongodb 3.2

192.168.0.100 debian1
192.168.0.101 debian2

可以参考博客安装。

配置 replica set

修改/etc/mongod.conf

两台机器均修改 /etc/mongod.conf ,添加副本集信息
# vi /etc/mongod.conf
##复制集配置
replication:
##oplog大小
oplogSizeMB: 200
##复制集名称
replSetName: pybrep

拷贝文件

192.168.0.100 /var/lib/mongodb/ 下的文件(mongod 停掉)全部拷贝到0 .101
# scp ./* pyb@192.168.56.101:/var/lib/mongodb/

启动mongod

两个节点依次启动mongodb
#service mongod start

初始化一个Replica Set

mongo
use admin
db.auth(“pyb”, “rootroot” )

创建一个副本集配置对象:
cfg={“_id” : “pybrep”,”members” : [{“_id” : 0,”host” : “192.168.56.100:27017”}]}

使用用rs.initiate()进程初始化:
rs.initiate(cfg)

添加成员

使用rs.add()添加mongod到副本集当中:

pybrep:PRIMARY> rs.add(“192.168.56.101:27017”)

可以通过 rs.help() 查看更多信息
pybrep:PRIMARY> rs.help();

验证replica set

登录 PRIMARY 写入数据
root@debian1:~# mongo
pybrep:PRIMARY> use admin
pybrep:PRIMARY> db.auth(“pyb”,”rootroot”);
pybrep:PRIMARY> show dbs;
pybrep:PRIMARY> use pybdb
switched to db pybdb
pybrep:PRIMARY> db
pybdb
pybrep:PRIMARY> db.test1.insert({“name”:”yiibai tutorials”});
WriteResult({ “nInserted” : 1 })
pybrep:PRIMARY> show dbs
admin 0.000GB
local 0.000GB
pybdb 0.000GB

登录 SECONDARY 查询数据
root@debian2:~# mongo
pybrep:SECONDARY> use admin
pybrep:SECONDARY> db.auth(“pyb”,”rootroot”);
pybrep:SECONDARY> show dbs
2017-08-09T13:11:10.077+0800 E QUERY [thread1] Error: listDatabases failed:{ “ok” : 0, “errmsg” : “not master and slaveOk=false”, “code” : 13435 } :

提示 not master and slaveOk=false

在报错节点 192.168.0.101 执行 rs.slaveOk();

或者在mongodb 连接串里指定 readPreference=secondaryPreferred

参考:
http://www.blogdaren.com/post-2158.html
http://www.cnblogs.com/heiing/archive/2012/08/04/2622953.html