安装 MariaDB 集群至少需要 3 台服务器,我的机器配置:
操作系统版本:centos7
node0 192.168.1.14
node1 192.168.1.15
node2 192.168.1.16
准备工作
1.在三台机器修改 /etc/hosts文件,我的文件如下:
10.128.20.16 node0
10.128.20.17 node1
10.128.20.18 node2
2.初始化环境
- 为了保证节点间相互通信,需要禁用防火墙设置,selinux 设置成 disabled
- 开启27017端口
安装MongoDB
创建/etc/yum.repos.d/mongodb-enterprise.repo
[mongodb-enterprise]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.4/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
安装
# sudo yum install -y mongodb-enterprise
# yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-gssapi krb5-libs lm_sensors-libs net-snmp-agent-libs net-snmp openssl rpm-libs tcp_wrappers-libs libcurl
运行
三个节点分别以参数 –replSet + 副本集名字执行
# mongod --replSet "rs0" //副本集名字为rs0
选取一个节点复制SSH渠道新开窗口,开启mongo shell
# mongo
初始化副本集,三个节点中只能选中一个运行rs.initiate命令
> cfg={_id:"rs0", members:[ {_id:0,host:"192.168.1.14 :27017"}] }
> rs.initiate(cfg)
查看副本集配置
>rs.conf()
为副本集添加其普通节点和监控节点
>rs.add("192.168.1.15:27017")
>rs.addArb("192.168.1.16:27017")
查看副本集状态
> rs.status()
结果显示192.168.1.15为primary,192.168.1.14为secondary,192.168.1.16为arbiter
数据同步测试
查看数据库
>show dbs
在test库中插入数据
>db.testdb.insert({name:"mongodb",test:"1"});
查询结果
>db.testdb.find();
在从数据库中查询
主从切换测试
关闭主节点模拟主节点宕机
可以看见192.168.1.15不可达,192.168.1.14切换为primary