加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 服务器 > 系统 > 正文

MongoDB复制集搭建&主服务器模拟更换

发布时间:2023-09-25 15:51:00 所属栏目:系统 来源:
导读:Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数
Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。
 
复制集优势如下
 
让数据更安全;
 
高数据可用性(7*24);
 
灾难恢复;
 
无停机维护(如备份、索引重建、故障转移);
 
读缩放(额外的副本读取);
 
副本集对应用程序是透明的。
 
一、实验环境
 
MongoDB复制结构图:
 
MongoDB复制集搭建&主服务器模拟切换
 
二、实验步骤
 
1.yum安装mongodb-org
 
2.创建mongodb多实例
 
3.配置复制集
 
4.增加和删除节点
 
5.主服务器模拟切换
 
三、实验内容
 
---------------------------------yum安装monggodb-org------------------
 
vim /etc/yum.repos.d/mongodb.repo
 
[mongodb-org]
 
name=MongoDB Repository
 
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
 
gpgcheck=1
 
enabled=1
 
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
 
 
 
yum install mongodb-org -y
 
修改配置文件中的监听地址
 
vim /etc/mongod.conf
 
net:
 
  port: 27017
 
  bindIp: 0.0.0.0         #监听地址改为监听所有
 
systemctl start mongod.service
 
----------------------------------创建mongodb多实例---------------------
 
创建数据文件路径和日志文件
 
mkdir -p /data/mongodb/mongodb{2,3,4}
 
mkdir -p /data/mongodb/logs
 
touch /data/mongodb/logs/mongodb2.log
 
touch /data/mongodb/logs/mongodb3.log
 
touch /data/mongodb/logs/mongodb4.log
 
chmod 777 /data/mongodb/logs/*.log
 
修改多实例的配置文件
 
vim /etc/mongod.conf
 
replication:
 
    replSetName: yandada                  #复制集名称在多实例中为同一名称
 
cp -p /etc/mongod.conf /etc/mongod2.conf
 
cp -p /etc/mongod.conf /etc/mongod3.conf
 
cp -p /etc/mongod.conf /etc/mongod4.conf
 
vim /etc/mongod2.conf
 
MongoDB复制集搭建&主服务器模拟切换
 
MongoDB复制集搭建&主服务器模拟切换
 
启动服务
 
mongod -f /etc/mongod.conf --shutdown
 
mongod -f /etc/mongod.conf
 
mongod -f /etc/mongod2.conf
 
mongod -f /etc/mongod3.conf
 
mongod -f /etc/mongod4.conf
 
MongoDB复制集搭建&主服务器模拟切换
 
------------------------------------------配置复制集-------------------------
 
[root@yandada3 mongodb2]#mongo
 
>cfg={"_id":"yandada","members": [{"_id":0,"host":"192.168.218.149:27017"},{"_id":1,"host":"192.168.218.149:27018"},{"_id":2,"host":"192.168.218.149:27019"}]}
 
>rs.initiate(cfg)        #初始化数据库
 
yandada:PRIMARY> rs.status()  #查看复制集状态
 
注:
 
初始化数据库前数据库中若存在内容则会丢失
 
-------------------------------------增加和删除节点--------------------------
 
yandada:PRIMARY>rs.add("192.168.218.149:27020")        #增加节点
 
yandada:PRIMARY>rs.remove("192.168.218.149:27020")          #删除节点
 
--------------------------------主服务器模拟切换------------------------------
 
模拟自动切换
 
mongod -f /etc/mongod.conf –shutdown
 
mongo --port 27018
 
rs.status()
 
"_id" : 1,
 
             "name" : "192.168.218.149:27018",
 
             "health" : 1,
 
             "state" : 1,
 
             "stateStr" : "PRIMARY",              #27018选举成主服务器
 
模拟手动切换
 
yandada:PRIMARY>rs.freeze(30)        30s不参加选举
 
yandada:PRIMARY>rs.stepdown(60,30)       60s维持从服务器身份,30s进行同步
 
yandada:SECONDARY>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章