MongoDB复制集RS(主从)and分片集群

RS集群

1、基本原理
基本构成是1主2从的结构,自带互相监控投票机制(Raft(MongoDB) Paxos(mysql MGR 用的是变种))
如果发生主库宕机,复制集内部会进行投票选举,选择一个新的主库替代原有主库对外提供服务。同时复制集会自动通知
客户端程序,主库已经发生切换了。应用就会连接到新的主库。
2、 Replication Set配置过程详解
(1) 规划
三个以上的mongodb节点(或多实例)
(2)环境准备
多个端口:28017、28018、28019、28020

	#创建并切换到mongod用户
	su - mongod 
	#为每个实例创建一个目录
	mkdir -p /mongodb/28017/conf /mongodb/28017/data /mongodb/28017/log
	mkdir -p /mongodb/28018/conf /mongodb/28018/data /mongodb/28018/log
	mkdir -p /mongodb/28019/conf /mongodb/28019/data /mongodb/28019/log
	mkdir -p /mongodb/28020/conf /mongodb/28020/data /mongodb/28020/log
	#查看目录是否创建成功
	tree /mongodb

查看到下图代表目录创建成功
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200719133730912.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc5Mzcx,size_16,color_FFFFFF,t_70

#在28017上增加配置文件内容(注意代码块中的bindIp根据自己实际情况而定)
cat > /mongodb/28017/conf/mongod.conf <<EOF
systemLog:
  destination: file
  path: /mongodb/28017/log/mongodb.log
  logAppend: true
storage:
  journal:
    enabled: true
  dbPath: /mongodb/28017/data
  directoryPerDB: true
  #engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 1
      directoryForIndexes: true
    collectionConfig:
      blockCompressor: zlib
    indexConfig:
      prefixCompression: true
processManagement:
  fork: true
net:
  bindIp: 192.168.220.21,127.0.0.1
  port: 28017
replication:
  oplogSizeMB: 2048
  replSetName: my_repl
EOF
#将刚配置的28017上的配置文件拷贝到另外三实例中
\cp  /mongodb/28017/conf/mongod.conf  /mongodb/28018/conf/
\cp  /mongodb/28017/conf/mongod.conf  /mongodb/28019/conf/
\cp  /mongodb/28017/conf/mongod.conf  /mongodb/28020/conf/
#将20817替换为28018、28019、28020
sed 's#28017#28018#g' /mongodb/28018/conf/mongod.conf -i
sed 's#28017#28019#g' /mongodb/28019/conf/mongod.conf -i
sed 's#28017#28020#g' /mongodb/28020/conf/mongod.conf -i
#启动多个实例备用
mongod -f /mongodb/28017/conf/mongod.conf
mongod -f /mongodb/28018/conf/mongod.conf
mongod -f /mongodb/28019/conf/mongod.conf
mongod -f /mongodb/28020/conf/mongod.conf

输入,查看端口是否开启成功

ps -ef|grep mongod

在这里插入图片描述3、配置普通复制集
1主2从,从库普通从库

#登入28017
mongo --port 28017 admin
#配置主从复制
config = {
   _id: 'my_repl', members: [
                          {
   _id: 0, host: '192.168.220.21:28017'},
                          {
   _id: 1, host: '192.168.220.21:28018'},
                          {
   _id: 2, host: '192.168.220.21:28019'}]
          }
#初始化      
rs.initiate(config) 
#查询复制集状态
rs.status();

4、复制集管理操作

#查看复制集状态 
rs.status();    //查看整体复制集状态
rs.isMaster(); // 查看当前是否是主节点
rs.conf();   //查看复制集配置信息
#添加删除节点
rs.remove("ip:port"); // 删除一个节点
rs.add("ip:port"); // 新增从节点
rs.add
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值