mongodb副本集实践
2016-09-21 21:56
218 查看
**MongoDB副本集(replica set):**
MongoDB不推荐使用主从复制模式,最为显著的区别在于,副本集没有固定的主数据库,它是整个集群中选举出一个当主节点,当其不工作的时候变更其他节点,因此具有自动故障恢复功能。主从复制模式没有类似于只有一个副本的情况,区别是主从模式不能够在主服务器宕机的时候进行自动切换,而副本集可以进行自动切换,保证数据的完整性。
副本集结构图:
创建数据文件存储路径:
mkdir -p /mongodb/data/A
mkdir -p /mongodb/data/B
mkdir -p /mongodb/data/C
创建日志文件路径:
mkdir -p /mongodb/log
创建配置文件:
3.1 >vim /etc/A.conf
dbpath = /mongodb/data/A
logpath=/mongodb/log/dblogA
port = 1111 #端口
bind_ip = 127.0.0.1 #服务地址
replSet = rp01/127.0.0.1:2222 #设定同伴 rp01为集群名称
fork=true #后台运行
3.2 >vim /etc/B.conf
dbpath = /mongodb/data/B
logpath=/mongodb/log/dblogB
port = 2222
bind_ip = 127.0.0.1
replSet = rp01/127.0.0.1:3333
fork=true #后台运行
3.3 >vim /etc/C.conf
dbpath = /mongodb/data/C
logpath=/mongodb/log/dblogC
port = 3333
bind_ip = 127.0.0.1
replSet = rp01/127.0.0.1:1111
fork=true #后台运行
启动三台服务器:
mongod –config /etc/A.conf
mongod –config /etc/B.conf
mongod –config /etc/C.conf
shell下链接三台副本集合:
mongo 127.0.0.1:1111
mongo 127.0.0.1:2222
mongo 127.0.0.1:3333
在其中任何一个副本及中配置初始化:
config = {_id: ‘rp01’, members: [{ #rp01为本副本集名
“_id”:1,
“host”:”127.0.0.1:1111”
},{
“_id”:2,
“host”:”127.0.0.1:2222”
},{
“_id”:3,
“host”:”127.0.0.1:3333”
}]
}
rs.initiate(config);
节点和初始化高级参数:
standard 常规节点:参与投票有可能成为活跃节点
passive 副本节点:参与投票,但是不能成为活跃节点
arbiter 仲裁节点:只是参与投票不复制节点也不能成为活跃节点
高级参数
Priority 0到1000之间 ,0代表是副本节点 ,1到1000是常规节点
arbiterOnly : true 仲裁节点
用法
members”:[{
“_id”:1,
“host”:”127.0.0.1:1111“,
arbiterOnly : true
}]”
三个客户端前缀变化:
rp01:PRIMARY>
rp01:SECONDARY>
rp01:SECONDARY>
可以在主副本集中查看副本集合的状态(本例只用了两个副本集1111,2222):rs.status()
搭建完毕,来进行验证
主从服务器数据是否同步,从服务器没有读写权限
a:向主服务器写入数据 ok 后台自动同步到从服务器,从服务器有数据
b:向从服务器写入数据 false 从服务器不能写
c:主服务器读取数据 ok
d:从服务器读取数据 false 从服务器不能读
主服务器操作插入数据:
从服务器默认没有查看数据库信息操作:
需要在从服务器中进行设定:rp01:SECONDARY> db.getMongo().setSlaveOk();或者rs.slaveOk();之后才能查看数据库信息:
关闭主服务器,从服务器是否能顶替
此时你关掉活跃节点的服务。此时你会发现剩余的两台机器有一台变为活跃节点了。
相关文章推荐
- 小心服务器内存居高不下的元凶--WebAPI服务
- 分享微信开发Html5轻游戏中的几个坑
- Android之获取手机上的图片和视频缩略图thumbnails
- 如何在 Fedora 上安装 MongoDB 服务器
- 运维入门
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- 数据库链接字符串查询网站
- 我是运营,我没有假期
- 如何在 Ubuntu 上安装 MongoDB
- DB2实例管理
- DB2实例管理
- 利用开源软件打造自己的全功能远程工具
- Linux5.9无人值守安装
- 数据中心和云未来的十二大趋势
- 保障MySQL数据安全的14个最佳方法
- 虚拟化基础架构Windows 2008篇之11-WSUS服务器的安装与配置