=== mongod 本地创建副本集
mongod --port 27017 --dbpath /srv/mongodb/db0 --replSet rs0 --bind_ip localhost,<hostname(s)|ip address(es)>
–dbpath 指向数据存放地址
–replSet 后面为 副本集的名。
rs.initiate() 启动新的副本集
rs.conf() 查看副本集的配置
rs.status() 查看副本集的状态
rs.add() 将成员添加到副本集
rs.add( { host: “mongodb3.example.net:27017” } )
删除副本集成员
1、先停止要删除成员的实例
使用 mongosh , 并执行 db.shutdownServer()
, 关闭实例
2、进入当前副本集的 primary。 即 主节点。
3、
rs.remove("mongod3.example.net:27017")
也可以通过 rs.reconfig()
的方式来删除一个成员。即重新配置。
通过 rs.conf() 找到要删除成员的 index 位置。
docker 创建 mongo 副本集
docker run --network mongo-net --name mongo -d -v E:\dockerMongoDb\data\db -p 27021:27017 mongo:latest --replSet mongo-set
docker run --network mongo-net --name mongo-slaver -d -v E:\dockerMongoDb\data\db -p 27022:27017 mongo:latest --replSet mongo-set
docker run --network mongo-net --name mongo-arbiter -d -v E:\dockerMongoDb\data\db -p 27023:27017 mongo:latest --replSet mongo-set
参数说明
–network 将容器加入创建的网桥
-v 将容器内部的文件挂载在宿主机指定的目录
–replSet 命名副本集名
进入主 mongodb 容器并打开mongosh
docker exec -it mongo bash
// 打开 mongosh
mongosh
初始化副本集
rs.initiate()
添加副节点 ,priority 值越大,越有可能当选主节点
rs.add('mongo-slaver:27017')
rs.add({host:'mongo-arbiter:27017',priority:0})
查看副本集状态
rs.status()
=== docker 常见命令
docker ps
docker ps -a
docker rm
docker run
docker stop
调整副本集优先级
获取副本集配置
重新配置副本集