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

安装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

# mongod.conf
# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

systemLog:
    destination: file
    path: /var/log/mongodb/mongod.log
    logAppend: true
    logRotate: reopen
storage:
    ##journal配置
    journal:
        enabled: true
    ##数据文件存储位置
    dbPath: /var/lib/mongodb
    ##是否一个库一个文件夹
    directoryPerDB: true
    ##数据引擎
    engine: wiredTiger
    ##WT引擎配置
    wiredTiger:
        engineConfig:
            ##WT最大使用cache(根据服务器实际情况调节,4G的独享服务器,设置为2G)
            cacheSizeGB: 2
            ##是否将索引也按数据库名单独存储
            directoryForIndexes: true
        ##表压缩配置(数据量不是很大,使用snappy减少资源占用)
        collectionConfig:
            blockCompressor: snappy
        ##索引配置
        indexConfig:
            prefixCompression: true
##端口配置
net:
    port: 27017
    bindIp: 0.0.0.0
##复制集配置
replication:
    ##oplog大小
    oplogSizeMB: 10240
    ##复制集名称
    replSetName: pybrep

##安全认证
security:
    authorization: enabled
    keyFile: /var/lib/mongodb/mongoDB_keyfile

拷贝文件

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

posted @ 2017-11-16 19:09  peiybpeiyb  阅读(124)  评论(0编辑  收藏  举报