首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

docker搭建mongodb单节点副本集

背景 在开发中,我们很容易通过docker启动一个普通的mongodb数据库服务。但是有时候为了保持与线上环境一致,或者为了利用mongodb副本集的某些特性,我们需要在本地部署mongodb副本集。...副本集往往需要启动多个mongodb服务作为副本集成员,而通常用于开发的笔记本资源比较有限。.../,本片文章的背景就是在golang中开发,操作mongo开启事务报错: (IllegalOperation) Transaction numbers are only allowed on a replica...--replSet rs0就是指明开启副本集 进入容器初始化副本集 docker exec -it mongo_test bash 进入终端输入 mongosh 在mongosh终端内输入 rs.initiate...注:一定要在终端内输入mongosh进入mongosh执行rs.initiate()和rs.status()

2.7K30
您找到你想要的搜索结果了吗?
是的
没有找到

部署MongoDB副本集

一主两备 默认设置下,主节点提供所有增删查改服务,备节点不提供任何服务。但是可以通过设置使备节点提供查询服务,这样就可以减少主节点的压力,当客户端进行数据查询时,请求自动转到备节点上。...环境配置 IP 端口 角色 主机名 192.168.1.163 27017 主节点 mongo01 192.168.1.126 27017 备节点 mongo02 192.168.1.41 27017...configuration-options/ # where to write logging data. systemLog: destination: file logAppend: true #启动或重启是否追加写入...indexConfig: # prefixCompression: true # how the process runs processManagement: fork: true #允许程序在后台运行...{_id:2,host:"192.168.1.41:27017"}] ... } > rs.initiate(config); # 如果结果返回1,说明初始化成功 常用命令 rs.status() #

1.4K40

docker-compose部署单机版本分片mongo

环境介绍 os: centos7 docker: 18.09.0 mongo: 4.0.5 执行步骤 1....# 第一次执行没有旧数据,不需要执行这步 docker-compose -f fates-mongo-compose.yaml down if [ -d "${DATA_PATH}" ]; then...配置分片信息 容器启动需要一定时间,执行这一步时要等上一步把容器都启动起来,才能执行执行不成功就多运行几遍 执行shard-config.sh docker-compose -f fates-mongo-compose.yaml...创建用户(授权模式) 执行add-user.sh 需要添加用户登录权限执行这一步,不需要登录的不用执行这一步 脚本中管理员用户名和密码都是root,可自行修改 docker-compose -f fates-mongo-compose.yaml...120s,但是经常还是有节点完全没有起来,可单独执行shard_config执行分片,否则无法连接到mongo 包括后面添加用户这一步,也是需要等容器完全起来执行才不会报错 这里为了方便一键执行,把所有步骤放到一起了

1.2K40

MongoDB 复制(副本集)

保障数据的安全性 数据高可用性 (24*7) 灾难恢复 无需停机维护(备份,重建索引,压缩) 分布式读取数据 MongoDB复制原理 mongodb的复制至少需要两个节点。...主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。...启动打开命令提示框并连接上mongoDB服务。 在Mongo客户端使用命令rs.initiate()来启动一个新的副本集。..., 判断当前运行Mongo服务是否为主节点可以使用命令db.isMaster() 。...MongoDB的副本集与我们常见的主从有所不同,主从在主机宕机所有服务将停止,而副本集在主机宕机,副本会接管主节点成为主节点,不会出现宕机的情况。

70810

docker-swarm部署mongo分片集群

,不需要授权登录可不用执行后面4个步骤 创建目录 部署服务(无授权模式) 配置分片信息 生成keyfile文件,并修改权限 拷贝keyfile到其他节点 添加用户信息 重启服务(授权模式) 1....生成密钥文件 执行前面三步,已经可用确保mongo分片集群启动成功可使用了,如果不需要加授权,后面的步骤不用看。 在主服务执行generate-keyfile.sh #!...拷贝密钥文件到其他服务器的script目录下 在刚才生成keyfile文件的服务器上执行拷贝(注意-p参数,保留前面修改的权限) sudo scp -p /data/fates/mongo/script...添加用户信息 在主服务器下执行add-user.sh 脚本给的用户名和密码都是root,权限为root权限。...文件必须修改所有者为999, 权限为600 addShard失败 必须等mongos启动完毕才能执行 根据服务器名称,自动修改脚本里面constraints的属性 分片全部完成发现数据只保存在一个分片上

1.3K62

MongoDB副本集搭建

下一小节我会和大家分享如何在真实的生产环境中创建副本集。 好了,开始吧。...首先我们在Linux根目录下创建/data/db目录作为我们的数据保存目录,然后执行如下命令启动一个mongo shell: mongo --nodb —nodb表示启动时不连接任何数据库,然后通过如下命令创建一个副本集...Linux命令窗口,执行如下命令: mongo 192.168.248.128:20000/sang_1 表示连接端口为20000的那个实例中的sang_1数据库,连接成功,我们可以执行如下命令查看当前实例的身份...mongo 192.168.248.128:20001/sang_1 mongo 192.168.248.128:20002/sang_1 连接成功之后,依然可以通过db.isMaster()命令来查看备份节点的身份...: rs.initiate(config) 初始化成功之后,我们就可以通过rs.status()来查看副本集的状态,也可以看到每个服务器的角色,部分日志内容如下: { "members" : [ {

1.2K60

MongoDB——Ubuntu安装及配置带认证的副本集(亲测)

重启 sudo service mongod restart 进行连接,直接运行命令就可以进入了mongo 三、设置 MongoDB 的密码 先进入 Mongodb ,然后使用 admin 库 use...重启 Mongo 服务 sudo service mongod restart 查看启动日志文件 cat /var/log/mongodb/mongod.log 将上面的操作在每个主机上执行。...接下来才开始主菜 重启需要进行账户验证, 即使用我们上面设置账号密码 # 选择为 admin use admin; # 进行认证 db.auth('xjf','123456'); 注意: 进来之后发现执行...# 初始化,此处为了方便演示增加服务,故初始化时只加了一台 rs.initiate({_id:'rs',members:[{_id:0, host:'192.168.204.102:27017'}]}...(如果是阿里云这样的服务器,记得开放端口)。查看状态 ? 此时去从服务器也是需要到 admin 进行认证。并且执行命令会出现下面的情况 ? 这是因为从服务器不允许读写。

90720

用这个方法,docker部署mongo集群只要3分钟

需要提前装好的工具:docker, docker-compose 使用docker-compose部署多服务 Docker-Compose 是用于定义和运行多容器 Docker 应用程序的工具。...mkdir conf cd conf openssl rand -base64 756 > mongodb.key chmod 400 mongodb.key 2 创建数据持久化目录以及挂载配置目录 为了在服务重启数据还没有丢失...前三步后文件夹结构如下 随后我们执行在目录下执行docker-compose up -d 看到集群已经完美运行起来了 4 进入容器建立副本集 这里有个细节,有的开发者会想直接通过外部引擎直接连接到数据库如下图...执行以下语句 #进入你想设置mongo为master节点的容器,我这里选择mongo0 docker exec -it mongo0 /bin/bash # 进入mongo mongo # 修改配置需要鉴权...运行,还需要进入容器改下自己的配置,参考【进入容器建立副本集】最后一个修改配置的内容将ip改为自己的即可。

2K20

史上最详细的 MongoDB4.0搭建分布式集群(亲测有效)

服务器的安装及配置(3台服务执行相同操作) 1、下载解压MongoDB 到MongoDB官网下载:https://fastdl.mongodb.org/linux/mongodb-linux-x86_...64-4.0.6.tgz 解压到/home/mongodb,设置环境变量: echo 'export PATH=$PATH:/home/mongodb/bin'  >> /etc/profile 保存执行...2、配置复制集 分别启动三台服务器的配置服务: mongod -f /home/mongodb/conf/config.conf 3:连接mongo,只需在任意一台机器执行即可: mongo --host...2、将分片配置为复制集 连接mongo,只需在任意一台机器执行即可: mongo --host 10.211.55.3 --port 27001 //这里以shard1为例,其他两个分片则再需对应连接到...,让3个分片各自形成1主2从的复制集,注意端口及仲裁节点的问题即可,操作完成3个分片都启动完成,并完成复制集模式。

6.1K80
领券