MongoDB学习笔记(五)--复制集 && sharding分片
主从复制
- 主从节点开启
主节点的设置,只需要在某一个服务启动时加上 –master 参数 ,而从节点加上 –slave 和 –source 参数,即可实现同步。
所有的从节点都从主节点复制内容。目前还没有能从从节点复制的机制,原因是从节点没有保存自己的oplog。
- 添加及删除源
添加从节点可以在开启的时候不添加源,可以向source集合中添加主节点信息。
use local
db.sources.insert({"host":"192.168.126.148:10000"})
删除。
db.sources.remove({"host":"192.168.126.148:10000"})
复制集
- 部署复制集
使用 –replSet 是用来让服务器知道在这个replcopy复制集中还有别的伙伴,位置在 IP : PORT 。
- 初始化复制集
启动之后,日志就会告诉我们复制集还没有进行初始化,因为还差最后一步,在shell中初始化复制集。
- 复制集中的节点
节点(非仲裁节点)都有优先权。优先权为0则是被动节点,不能成为活跃节点。优先值不为0,则按照由大到小选出活跃节点,如果优先值一样的话,就看谁的数据比较新。如果有两个优先值为1,一个为0.5的节点,那么优先值为1的两个服务器就必须比较谁的数据比较新,数据新的成为活跃节点。而0.5的节点,只有在前两个节点都不能用时才能成为活跃节点。
>members.push({
..."_id":3,
..."host":"192.168.233.1:27017",
..."priority":50
...})
修改priority键来完成标准节点和被动节点。
>members.push({
..."_id":3,
..."host":"192.168.233.1:27017",
..."arbiterOnly":true
...})
arbiterOnly键可以指定仲裁节点。
备份节点会从活跃节点抽取oplog,并执行操作。活跃节点写操作到自己的本地oplog,这样就能成为活跃节点了。oplog中的操作包含严格递增的序号,通过这个序号来判断数据的时效性。
- 主从配置信息
- 读写分离
写数据
读数据
从从数据库中读取数据报错,只要执行db.getMongo().setSlaveOk()命令后,便可查询从数据库了。
- 增加节点
第一种方法是通过oplog来增加节点。
数据库系统自动进行初始化、数据同步。
第二种方法是通过数据库快照(—fastsync)和oplog增加节点
mongo --dbpath=../dbs/node3 --logpath=../logs/node3.log --port 27017 --replSet replcopy/192.168.126.143:27017 --fastsync
再将节点添加到复制集。
- 删除节点
- 主从操作日志oplog
- 阻塞复制
可以用getLastError的w参数来确保数据的同步性,运行getLastError会进入阻塞状态,直到N个服务器复制了最新的写入操作为止。
>db.runCommand({"getLastError":1,"w":N})
分片
- 片键
在设置分片时,需要从集合中选择一个键,用该键的值作为拆分数据的依据。加入选择人员的名字name作为片键,那么第一片可能就会存放名字以A~H开头的文档,第二片存名字以I~P开头的文档,依次下去。
- 建立分片
建立分片需要3个角色。
1、Shard Server
存储数据的分片
2、Config Server
存储所有Shard节点的配置信息。
3、mongos
客户端接入Shard的一个前端路由器。
服务器信息:
Shard Server 1:20000
Shard Server 2:20001
Config Server : 30000
Route Process : 40000
- 启动 Config Server 配置服务器
- 启动mongos路由
- 启动shard Server服务器
- 配置Sharding
首先是添加端口20000和20001的片,其次设置分片存储数据库,设置分片的集合名称,且必须指定shard key(这里是_id),系统会自动创建索引。
- 验证sharding正常工作
查看磁盘上的物理文件情况。
表名test.personalinfo已经被分片处理了,但是通过mongos路由并感觉不到数据存放在哪个shard的chunk上的。
- 列出所有的shard Server
- 查看Sharding信息
- 判断是否是Sharding
《MongoDB学习笔记(四)--索引 && 性能优化》 传送门 http://www.cnblogs.com/yydcdut/p/3563704.html
《MongoDB学习笔记(六)--复制集+sharding分片 && 总结》 传送门 http://www.cnblogs.com/yydcdut/p/3566489.html
转载请注明出处:http://www.cnblogs.com/yydcdut/p/3564470.html
MongoDB学习笔记(五)--复制集 && sharding分片的更多相关文章
- MongoDB学习笔记(六)--复制集+sharding分片 && 总结
复制集+sharding分片 背景 主机 IP 服务及端口 Server A ...
- Mongodb学习笔记五(C#操作mongodb)
mongodb c# driver(驱动)介绍 目前基于C#的mongodb驱动有两种,分别是官方驱动(下载地址)和samus驱动(下载地址). 本次我们只演示官方驱动的使用方法. 官方驱动文档查看 ...
- MongoDB学习笔记五:聚合
『count』count是最简单的聚合工具,返回集合中的文档数量:> db.foo.count()0> db.foo.insert({"x" : 1})> db. ...
- MongoDB学习笔记五—查询上
数据准备 { , "goods_name" : "KD876", "createTime" : ISODate("2016-12- ...
- MongoDB学习笔记(五) MongoDB文件存取操作
由于MongoDB的文档结构为BJSON格式(BJSON全称:Binary JSON),而BJSON格式本身就支持保存二进制格式的数据,因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结 ...
- MongoDB学习笔记(四)--索引 && 性能优化
索引 基础索引 ...
- MongoDB学习笔记(转)
MongoDB学习笔记(一) MongoDB介绍及安装MongoDB学习笔记(二) 通过samus驱动实现基本数据操作MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB ...
- MongoDB学习笔记:快速入门
MongoDB学习笔记:快速入门 一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
随机推荐
- cloudstack api调用python
通过python调用cloudstack接口,cloudstack 接口通过 admin key来判断是否有访问有权访问 #!/usr/bin/env python import urllib2 ...
- ubuntu18.04 安装Navicat 解决字体方框问题
前景 最近带着看一点数据库的知识,装一下navicat,就是这个玩意儿,在我编码毫无问题的情况下,这个软件上却显示各种乱码 环境 ubuntu 18.04 navicat 12(最新版) mysql ...
- android 不失真 显示 超高清 图片 长图
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 通过计算 位图工厂.选项 对象的 inSamleSize 值 等比压缩 图片. 使用 ...
- POJ2104 K-th Number 不带修改的主席树 线段树
http://poj.org/problem?id=2104 给定一个序列,求区间第k小 通过构建可持久化的点,得到线段树左儿子和右儿子的前缀和(前缀是这个序列从左到右意义上的),然后是一个二分的ge ...
- hihocoder 1526 序列的值
题面在这里! 好久没做题啦,养生一下qwq 推一推贡献就会发现这TM就是一个水题啊! #include<bits/stdc++.h> #define ll long long using ...
- java集合之二(collection架构)
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308513.html 首先,我们对Collection进行说明.下面先看看Collection的一些框架 ...
- PAT甲级1114. Family Property
PAT甲级1114. Family Property 题意: 这一次,你应该帮我们收集家族财产的数据.鉴于每个人的家庭成员和他/她自己的名字的房地产(房产)信息,我们需要知道每个家庭的规模,以及他们的 ...
- 批量替换url,指定内容不替换
如果需要批量替换url的某几部分,当然是用正则了比如在CI框架中要把 <img src="pc/baidu/aa.jpg"> 替换成 <img src=" ...
- jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密
前提: eclipse.JDK.Jmeter 说明: 本文分为两部分进行配置说明 第一部分:编写JavaMD5加密脚本 第二部分:使用Jmeter的BeanShell进行验证 ************ ...
- Bootstrap_表格
Bootstrap 表格 Bootstrap 提供了一个清晰的创建表格的布局.下表列出了 Bootstrap 支持的一些表格元素: 标签 描述 <table> 为表格添加基础样式. < ...