【MongoDB 高可用篇】MongoDB 副本集环境搭建

目录

1 软件环境

2 副本集架构

3 搭建过程

3.1 创建Mongod实例

3.2 创建KeyFile文件

3.3 启动Mongod实例

3.4 初始化复本集

3.5 创建root用户

3.6 验证主从数据一致

3.7 模拟主库宕机

3.8 实例目录结构


副本集(replica set)是一组mongod进程维护的相同的数据集,提供了MongoDB的冗余和高可用,本篇将对MongoDB下副本集环境(PSA架构,即一主一从一仲裁)的搭建进行演示。

1 软件环境

使用的软件分别为:

  • VirtualBox 6.0
  • Oracle Linux 6.7
  • MongoDB 4.2.0

2 副本集架构

采用一主一从一仲裁的架构,即PSA架构:

3 搭建过程

3.1 创建Mongod实例

参考:安装MongoDB单实例

3.2 创建KeyFile文件

1)创建KeyFile

[mongod@pri data]$ openssl rand -base64 741 > /u01/data/conf/keyfile
[mongod@pri conf]$ chmod 400 /u01/data/conf/keyfile
[mongod@pri conf]$ ll
total 8
-r--------. 1 mongod mongod 1004 Oct 2 17:50 keyfile
-rw-r--r--. 1 mongod mongod 484 Oct 2 17:52 mongod.cnf

2)复制KeyFile至其它主机

[mongod@pri conf]$ scp * root@192.168.56.103:/u01/data/conf
The authenticity of host '192.168.56.103 (192.168.56.103)' can't be established.
RSA key fingerprint is c1:97:8c:3d:6e:c5:3e:90:f4:52:5b:77:8b:1a:94:d0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.103' (RSA) to the list of known hosts.
root@192.168.56.103's password:
keyfile 100% 1004 1.0KB/s 00:00
mongod.cnf 100% 484 0.5KB/s 00:00
[mongod@pri conf]$ scp * root@192.168.56.104:/u01/data/conf
The authenticity of host '192.168.56.104 (192.168.56.104)' can't be established.
RSA key fingerprint is c1:97:8c:3d:6e:c5:3e:90:f4:52:5b:77:8b:1a:94:d0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.104' (RSA) to the list of known hosts.
root@192.168.56.104's password:
keyfile 100% 1004 1.0KB/s 00:00
mongod.cnf 100% 484 0.5KB/s 00:00

3.3 启动Mongod实例

1)启动每个成员的mongod实例

[mongod@pri conf]$ mongod -f ./mongod.cnf
about to fork child process, waiting until server is ready for connections.
forked process: 3328
child process started successfully, parent exiting

3.4 初始化复本集

1)通过mongo连接副本集的一个成员,进行副本集的初始化

[mongod@pri data]$ mongo localhost:27017/admin
MongoDB shell version v4.2.0
connecting to: mongodb://localhost:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("7a223330-bc53-46c6-a194-31b28041fb67") }
MongoDB server version: 4.2.0
> cfg={
... _id:'rep1',
... members:[
... {_id:0,host:'192.168.56.102:27017'},
... {_id:1,host:'192.168.56.103:27017'},
... {_id:2,host:'192.168.56.104:27017',arbiterOnly:true}
... ]
... }
{
"_id" : "rep1",
"members" : [
{
"_id" : 0,
"host" : "192.168.56.102:27017"
},
{
"_id" : 1,
"host" : "192.168.56.103:27017"
},
{
"_id" : 2,
"host" : "192.168.56.104:27017",
"arbiterOnly" : true
}
]
}
> rs.initiate(cfg)
{ "ok" : 1 }
rep1:OTHER>

2)查看副本集状态

rep1:PRIMARY> rs.status()
{
"set" : "rep1",
"date" : ISODate("2019-10-02T12:51:11.466Z"),
"myState" : 1,
"term" : NumberLong(1),
"syncing
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值