今天学习了搭建 MongDB 复制环境,实验环境是在虚拟机上同一系统,并搭建三节点 Replica Set,根据文档上的描述,mongodb 复制配置简单,并能够自动 failover,这些高级特性以后再实验,这里仅 描述配置过程:
一 环境信息
虚拟机: Red Hat Enterprise Linux Server release 6.2
主机名: redhatB.example.com
MongoDB 版本:v2.2.1
节点 | 端口 | 数据目录 |
---|---|---|
主结点 | 27018 | /mongodb/data01 |
从节点一 | 27019 | /mongodb/data02 |
从节点二 | 27020 | /mongodb/data03 |
二 搭建步骤
2.1 创建数据目录
1 |
[mongo@redhatB mongodb]$ mkdir -p /mongodb/data01 |
备注:三个目录分别为三个节点数据目录,并设置好目录权限。
2.2 创建配置文件
2.2.1 主节点配置文件
1 |
touch /mongodb/data01/mongodb_27018.conf, 写入以下: |
2.2.2 从节点一配置
1 |
touch /mongodb/data02/mongodb_27019.conf, 写入以下: |
2.2.3 从节点二配置
1 |
touch /mongodb/data03/mongodb_27020.conf, 写入以下: |
2.3 启动主从节点
1 |
mongod -f /mongodb/data01/mongodb_27018.conf |
2.4 初始化 Replica Sets
2.4.1 登陆结点一初始化
1 |
[mongo@redhatB mongodb]$ mongo 127.0 :27018 |
备注:使用的是默认配置。
2.5 查看 Replica Sets 配置
1 |
> rs.conf(); |
备注:只能看到一个节点信息;
2.6 增加从节点
1 |
rs0:PRIMARY> rs.add("redhatB.example.com:27019"); |
2.7 再次查看 Replica Sets 配置
1 |
rs0:PRIMARY> rs.conf();{ |
备注:这时已经能看到三个节点信息。
2.8 查看 Replica Sets 状态
1 |
rs0:PRIMARY> rs.status(); |
备注:rs.status() 命令可以显示节点状态具体信息。
三 测试
3.1 登陆主节点
1 |
[mongo@redhatB mongodb]$ mongo 127.0 :27018 |
备注:主节点可以读写;
3.2 登陆从节点一
1 |
[mongo127.0.0.1:27019 mongodb]$ mongo |
备注:从节点不可读写,但能看到主库创建的集合,从库需要使用 rs.slaveOk() 命令开启只读。
3.3 开启从库只读模式
1 |
[mongo@redhatB mongodb]$ mongo 127.0 :27019 |
备注:这时从库可读了(不可写),同理设置从库二。 到了这里,三节点 Replica Sets 环境已经全部搭建好了,步骤比较简单。
四 参考
http://docs.mongodb.org/manual/core/replication/
http://docs.mongodb.org/manual/tutorial/deploy-replica-set/
http://docs.mongodb.org/manual/reference/javascript/#rs.initiate
原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/237921.html