mongo 构建副本集



sudo mongod --dbpath /data/mongo/ReplicaSetData/data1 --logpath /data/mongo/logs/mg1.log --port 27018 --oplogSize 100 --replSet bermuda --fork

sudo mongod --dbpath /data/mongo/ReplicaSetData/data2 --logpath /data/mongo/logs/mg2.log --port 27019 --oplogSize 100 --replSet bermuda --fork

sudo mongod --dbpath /data/mongo/ReplicaSetData/data3 --logpath /data/mongo/logs/mg3.log --port 27020 --oplogSize 100 --replSet bermuda --fork

sudo mongod --dbpath /data/mongo/ReplicaSetData/data4 --logpath /data/mongo/logs/mg4.log --port 27021 --oplogSize 100 --replSet bermuda --fork


sudo mongod --dbpath /data/mongo/ReplicaSetData/data5 --logpath /data/mongo/logs/mg5.log --port 27022 --oplogSize 100 --replSet bermuda --fork




config = {_id:"bermuda",members:[
{_id:0,host:'127.0.0.1:27018'},
{_id:1,host:'127.0.0.1:27019'},
{_id:2,host:'127.0.0.1:27020'}]
}


rs.initiate(config)


rs.add({"_id" : 3,host : "localhost:27021"});

rs.add({"_id" : 4,host : "127.0.0.1:27022",arbiterOnly:true});

#切换主从副本
rs.stepDown(30)


### 如何在 Docker 中配置 MongoDB 主从复制 #### 创建并启动主节点容器 为了建立MongoDB主从复制环境,首先需要创建一个作为主服务器运行的Docker容器。通过指定端口映射、容器名称以及使用的镜像来完成此操作[^1]。 ```bash docker run -d -p 27017:27017 --name mongo-master bitnami/mongodb:latest ``` 这里`-d`参数表示以后台模式运行容器;`-p`用于定义主机与容器之间的端口转发关系;`--name`给定新创建的服务实例命名以便于管理;最后是指定要拉取的基础镜像版本。 #### 设置从节点容器 接着按照相同的方式启动至少一个以上的从属节点服务,并确保它们能够访问到之前部署好的主节点。对于每一个额外加入群中的成员都需要单独执行一次类似的命令[^3]。 ```bash docker run -d -p 27018:27017 --name mongo-slave \ --link mongo-master:mongo-master \ bitnami/mongodb:latest mongod --source mongo-master:27017 ``` 上述指令中增加了`--link`选项用来连接两个不同的容器之间通信路径,同时设置了副本的名字(`rs0`)并通过`--source`指定了数据同步的目标地址即为主节点所在位置。 #### 初始化副本配置 当所有的参与方都已经成功上线之后,则可以进入任意一台机器内部利用mongo shell来进行初始化工作了。这一步骤主要是向系统告知哪些成员应该被纳入当前组内共同维护同一份数据库副本[^2]。 ```javascript // 进入mongodb shell docker exec -it mongo-master bash mongosh // 开始配置副本 use admin; config = { _id : "rs0", members : [ { _id : 0, host : "mongo-master:27017" }, { _id : 1, host : "mongo-slave:27017" } ] }; rs.initiate(config); ``` 以上脚本先切换到了管理员库下再构建了一个包含所有预期参与者信息的对象结构体,随后调用了`rs.initiate()`方法正式开启了整个过程。 #### 测试验证 一旦完成了前面几步的操作就可以尝试往合里写入一些测试文档看看能否正常传播至其他地方去了。如果一切顺利的话那么恭喜您已经掌握了如何借助Docker搭建起一套简单的MongoDB主从架构方案!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值