docker添加mongo4.0.3并配置复制集

1、创建docker 具体略过 自行百度

2、创建数据持久化目录文件(/data/mongo0是个例子 命名随意) 拉取mongo docker pull mongo:4.0.3

3、启动容器
docker run --name mongo0 -p 27017:27017 --restart=alway -v /data/mongo:/data/db -d mongo:4.0.3 --replSet "rs0"
--name 指定容器名称
-p 映射容器端口
-v 将服务器文件挂载到容器
-d 后台运行
--replSet "rs0" 设置集群的名称为rs0 这个名字可以随便起 但是需要保证参与集群的数据库名字一直

如果希望容器随docker启动而启动 可添加 --restart=always
如果要设置已经启动的容器可以使用一下命令
docker container update --restart=alway 容器名

4、产看mongoDB的在docker中的ip
docker inspect mongo0 | grep IPAddress
moogo0 为容器的名字


特别提醒:在数据库使用复制集之前 请先备份好数据 以免造成不必要的损失
./mongodump -o /data/export/ 备份所有数据库
./mongorestore -h 192.168.1.96 -d zz_spiders /data/export/zz_spiders/
-h 为需要恢复的服务器 -d为指定数据库 /data/export/zz_spiders/ 为备份文件所在地址

 

5、进入容器
docker exec -it mongo0 bash

6、登录mongoDB
执行命令
rs.initiate( {_id : "rs0",members: [{ _id: 0, host: "172.17.0.2:27017" },{ _id: 1, host: "172.17.0.3:27017" },{ _id: 2, host: "172.17.0.4:27017" }]})
可以使用 {_id:0,host:'127.0.0.1:10002',priority:1} 指定主节点

_id:复制集的名称。必须与启动 mongod 的 --replSet 一致
members:成员配置文件的列表。
members[n]._id:用来识别成员的 id 不可以重复
members[n].host:成员对应的 host:port 第四步中得到的ip

7、使用rs.status();查看集群状态

8、从库默认没有读写权限
需要进入从库的mongoDB执行rs.slaveOk();或者db.getMongo().setSlaveOk();
但是但是但是!!!
只有当次生效!只有当次生效!只有当次生效!
如果需要永久生效 可以依次执如下命令
find / -name .mongorc.js
vim /home/shengyang/.mongorc.js
添加内容
rs.slaveOk();


强制更换主节点办法
http://www.mongoing.com/docs/tutorial/force-member-to-be-primary.html

 

常用命令

设置从节点可用
mongo --port 27018(填写实际的从节点地址)
rs.slaveOk()

查看集群状态
mongo --port 27018
rs.status()

查看是否primary节点
mongo --port 27018
rs.isMaster()

查看集群配置
mongo --port 27018
rs.conf()

添加节点
mongo 主节点地址
rs.add({} | host地址) 例如rs.add('192.168.1.96:27017')

删除节点
mongo 主节点地址
删除前,建议先停止这个节点的服务
rs.remove(hostname) 例如rs.remove('192.168.1.96:27017')

更改集群配置
mongo 主节点地址
rs.reconfig({},{})

转载于:https://www.cnblogs.com/phpk/p/11121412.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值