mongodb集群搭建

MongoDB 搭建集群

前提是不能有数据
在12的基础上
[root@mongodb ~]# mkdir /data/mongodb{3,4}
[root@mongodb ~]# touch /data/logs/mongodb/mongodb{3,4}.log
[root@mongodb ~]# chmod 777 /data/logs/mongodb/*.log

 vim mongodb1.conf   #下面3个地方要不一致,其余3个同理
 port=27017
 dbpath=/data/mongodb1
 logpath=/data/logs/mongodb/mongodb1.log
 replSet=amber   #这个名字随便取,但是名字要一致
 
/etc/init.d/mongodb mongodb{1,2,3,4} restart

show dbs
rs.status()

#如果192.168.41.101不行换成127.0.0.1
cfg={"_id":"amber","members":[{"_id":0,"host":"127.0.0.1:27017"},
{"_id":1,"host":"127.0.0.1:27018"},
{"_id":2,"host":"127.0.0.1:27019"}]}

#成功后出现下面的信息
> rs.initiate(cfg)
{ "ok" : 1 }
amber:OTHER>
amber:PRIMARY>

rs.status()

    "health" : 1,  //1 为健康,0 为宕机 
    "state" : 1,  //1 为主,2 为从



#添加一个节点
amber:PRIMARY> rs.add("127.0.0.1:27020")

#删除一个节点
rs.remove("127.0.0.1:27020") 

tips:当我们kill掉主的时候,他会自动跳转到从的其中一个,就算恢复主也不会再回到从前,从就变成了主。

#手动切换主实例
amber:PRIMARY> rs.help()
amber:PRIMARY> rs.freeze(30)  // 暂停 30 秒不参加选举
amber:PRIMARY> rs.stepDown(60,30)

#查看从状态
rs.printSlaveReplicationInfo()

#查看从信息
rs.printReplicationInfo()

#更改 oplog  大小
oplog 大小远远不能满足频繁的更新业务需求时,在配置复制集启动时,就应该 对 oplog 有大小预计,旧版本修改 oplog 大小必须重启主数据库


db.oplog.rs.stats()
db.runCommand({"convertToCapped":"oplog.rs","size":102400000})
db.oplog.rs.stats()
rs.printReplicationInfo()

部署认证集群

以密钥文件认证方式:
clusterAuthMode=keyFile
keyFile=/usr/local/mongodb/data/hxfkey
复制集群以密钥认证,其他登录需要密码认证

amber:PRIMARY> use admin
switched to db admin
amber:PRIMARY> db.createUser({"user":"root","pwd":"123","roles":["root"]})

[root@mongodb ~]# cd /usr/local/mongodb/conf/
[root@mongodb conf]# vim mongodb1.conf
[root@mongodb conf]# vim mongodb2.conf
[root@mongodb conf]# vim mongodb3.conf
[root@mongodb conf]# vim mongodb4.conf
[root@mongodb conf]# cat mongodb1.conf

port=27017
dbpath=/data/mongodb1
logpath=/data/logs/mongodb/mongodb1.log
logappend=true
fork=true
maxConns=5000
storageEngine=mmapv1
slowms=1
profile=1
#bind_ip=192.168.1.52
#auth=true
#httpinterface=true
#rest=true
replSet=amber
clusterAuthMode=keyFile
keyFile=/usr/local/mongodb/conf/amberkey1

[root@mongodb conf]# echo "123 key" > amberkey1
[root@mongodb conf]# echo "123 key" > amberkey2
[root@mongodb conf]# echo "123 key" > amberkey3
[root@mongodb conf]# echo "123 key" > amberkey4
[root@mongodb conf]# chmod 600 amberkey*
[root@mongodb conf]# /etc/init.d/mongodb mongodb{1,2,3,4} restart

mongo
rs.status()
use admin
db.auth("root","123")
rs.status()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值