首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

[实验]MongoDB Replication ReplSet Shard小结

2013-08-29 
[实验]MongoDB Replication ReplSet Shard总结??简单点说是主从节点的复制存在一个master node和一些slave

[实验]MongoDB Replication ReplSet Shard总结

?

?

简单点说是主从节点的复制

存在一个master node和一些slave node

master node可以做增删改查的操作 而slave node只能做查找 实际应用的时候就可以用多个从节点做读的负载

?

主从节点建立:

?

1、建立启动主节点:

--master(表示主节点)

--port 端口(port可以记录在配置文件里)

?

2、建立启动从节点:

--port 确定个端口(在同一台机子上别弄重了)?

--slave(表示从节点)

--source 指向主节点(本机的话localhost:主节点端口)

查看复制情况:

db.printReplicationInfo()

?

?

?

ReplSet:


[实验]MongoDB Replication ReplSet Shard小结
?

副本集里 没有主从之分

由一个活动节点和N个备份节点组成

一旦活动节点挂了 备份节点中会选取一个接管活动节点(成为新的活动节点)

?

创建(还是一样 同机上多节点 --port 要不一样 可以在配置文件中指定):

1、建立节点并为副本集取名

? ? ?--replSet 名字(同一副本集的节点名要相同)

?

2、初始化

初始化命令只执行一次:

mongo 进入对应的节点(随便进入哪一个都行 地位是平等的)

参数={"_id":"副本集名称(和--replSet的名字相同)",members:[{_id:0,host:"127.0.0.1:1111"},{_id:1,host:"127.0.0.1:2222"},....]}

用rs.initiate(参数)

查看状态 rs.status()

?

备份节点无法查询和其他操作 因为不是活动节点 不提供服务

节点类型:

standard:常规节点 有数据副本 可以参与投票 可以成为活动节点

passive:有数据副本 参与投票 但不能成为活跃节点

arbiter:只参与投票 不接受复制数据 ?不能成为活跃节点

?

?

?

?

Shard:


[实验]MongoDB Replication ReplSet Shard小结
?(图中的node 取名叫s1纯粹是乱起 叫 node1 也行 s没有任何意思 请不要在意)

分片:将数据拆分,将其分散到不同机器上的过程

mongodb支持自动分片

片键的选择(该键值作为数据拆分的依据)

?

建立分片:

1、选片键

2、建立并启动分片节点(mongod)

3、创建并启动配置服务器(configdb 就是一个node 和普通node建立无差别)

4、启动mongos路由进程(用mongos)

5、添加分片(详见以下的)

(生产环境至少多个mongos 3个配置服务器 ?开发时各用一个就够了)

?

第4步过程:

mongos --port XXXX --configdb localhost:port(对应的configdb的ip和端口)

添加:登陆到mongos上添加(用mongo --port mongos的端口)

注意要先 use admin 不然命令执行也许会有错误

db.runCommand({addshard:"地址:端口",allowLocal:true})

启动分片功能:

db.runCommand({"enablesharding":"数据库名"})

启动片键:

db.runCommand({"shardcollection":"数据库名.集合名",key:{"userName":1}})?

使用时连接mongos所在端口

各个切片(Shard都可以读写数据 在mongos上都可以查到各个分片的数据)?

1 楼 shingo7 1 小时前   图画的有点不对劲,或者说有歧义

热点排行