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 ./* [email protected]:/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 写入数据

[email protected]:~# 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 查询数据

[email protected]:~# 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

参考:
IT虾米网
IT虾米网

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/9834.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论