SlideShare uma empresa Scribd logo
1 de 22
1
MongoDB分享
部门: DBA
日期:2010.11
2
MongoDB 特性
• 有哪些好消息?
– 基于文档的存储引擎
– 读写分离以及高可用
– 自动分片
3
行存储 vs 文档存储
• 行存储与关系型数据库
– 元数据独立存储
• 先有表结构,后有数据
• 节省存储空间
– MySQL DDL
• 锁表时间长
• 磁盘IO消耗
4
行存储 vs 文档存储
• 文档存储与NoSQL
– 元数据绑定文档存储
• 先有数据,后有文档结构
• 存储空间消耗较大
– MongoDB
• 文档结构由client api调用决定
• 不消耗额外IO
5
行存储 vs 文档存储
• MongoDB文档存储的特点
– BSON (Binary JSON)
• string, integer, double, date, boolean, null
• array, BSON object
– 索引
• Multikeys
• 空间索引
6
行存储 vs 文档存储
• 文档示例
{
"_id" :ObjectId("4cd8b8286ba3f67def22d10f"),
"name" : "taofang",
"gender" : "male",
"age" : 18,
"birth" : null
}
7
MongoDB Replication
• Master Slave
– 主动落后
• Replica Sets
– 自动切换
• Replica Pairs(淘汰)
– 自动切换
8
MongoDB Replication
• Replica Set角色
– Primary节点
– Secondary节点(健康、恢复、虚弱)
– Arbiter节点
9
MongoDB Replication
• Replica Set数据同步(OpLog)
10
MongoDB Replication
• Replica Set数据同步(OpLog)
11
MongoDB Replication
• Replica Set的一致性
– 写入:可以强制同步到Secondary节点
– 读取:可以强制读取Primary节点
• 目前不支持W+R>N
12
MongoDB Auto-Sharding
• Sharding架构
13
MongoDB Auto-Sharding
• Sharding的复杂架构
14
MongoDB Auto-Sharding
• Sharding如何切分数据
– database, collection, document
– sharding key(路由字段)
– chunk(一个范围内的document)
15
MongoDB Auto-Sharding
• splitChunk(在Shard上分裂)
– (min, max)加锁
– 更新config server(原子性)
• 添加(min, R]
• 添加(R, max)
• 删除(min, max)
– 删除(min, max),解锁
– 同步(min, R]和(R, max)
16
MongoDB Auto-Sharding
• moveChunk(Shard A -> Shard B)
– 拷贝数据
• 将A上的chunk数据拷贝到B
• 记录拷贝过程中,chunk上的数据变化
– 修改chunk属主
• 锁住A上的chunk更新,在B上apply更新
• 删除chunk在A和B上的属主信息
• 更新config server上的属主信息,并解锁
– 删除A上的chunk
17
Others
• 监控
– Http Interface
• http://10.232.31.46:28015/
– Mongo shell command
• db.currentOp(), db.serverStatus()
• db.printReplicationInfo(), db.printShardingStatus()
– mongostat
• QPS, connection
• memory, lock
18
Others
• 备份和修复
– fsync写锁全备
– mongodump在线备份,不能保证一致性
– 只能在database级别进行修复
19
Others
• 安全性
– 单节点支持认证
– Replica Set支持认证
– Sharding不支持认证
20
Others
• Client api
– 获取整个集群的拓扑图
– 自动failure over
• Online Shell
– http://www.mongodb.org/
21
Q&A
?
???
?????
???????
?????????
MongoDB SHARE

Mais conteúdo relacionado

Mais procurados

1.4 go在数据存储上面的应用—毛剑
1.4 go在数据存储上面的应用—毛剑1.4 go在数据存储上面的应用—毛剑
1.4 go在数据存储上面的应用—毛剑
Leo Zhou
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面
Tianwei Liu
 
OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案
freezr
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事
freezr
 
Ocean base --千亿级海量数据库-lamper_日照
Ocean base --千亿级海量数据库-lamper_日照Ocean base --千亿级海量数据库-lamper_日照
Ocean base --千亿级海量数据库-lamper_日照
knuthocean
 
Mongo db 簡介
Mongo db 簡介Mongo db 簡介
Mongo db 簡介
昱劭 劉
 

Mais procurados (20)

MongoDB gridfs
MongoDB gridfsMongoDB gridfs
MongoDB gridfs
 
1.4 go在数据存储上面的应用—毛剑
1.4 go在数据存储上面的应用—毛剑1.4 go在数据存储上面的应用—毛剑
1.4 go在数据存储上面的应用—毛剑
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
 
MongoDB介绍
MongoDB介绍MongoDB介绍
MongoDB介绍
 
NoSQL-MongoDB
NoSQL-MongoDBNoSQL-MongoDB
NoSQL-MongoDB
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面
 
漫画背后的故事
漫画背后的故事漫画背后的故事
漫画背后的故事
 
Tair
TairTair
Tair
 
OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事
 
Redis 介绍 -田琪
Redis 介绍 -田琪Redis 介绍 -田琪
Redis 介绍 -田琪
 
Seqdb存储引擎
Seqdb存储引擎   Seqdb存储引擎
Seqdb存储引擎
 
Fdfs for cnblogs 1th
Fdfs for cnblogs 1thFdfs for cnblogs 1th
Fdfs for cnblogs 1th
 
Mesos intro
Mesos introMesos intro
Mesos intro
 
Mongo db 特性
Mongo db 特性Mongo db 特性
Mongo db 特性
 
Ceph bluestore-tiering-2018-11-15
Ceph bluestore-tiering-2018-11-15Ceph bluestore-tiering-2018-11-15
Ceph bluestore-tiering-2018-11-15
 
Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照
 
Hbase
HbaseHbase
Hbase
 
Ocean base --千亿级海量数据库-lamper_日照
Ocean base --千亿级海量数据库-lamper_日照Ocean base --千亿级海量数据库-lamper_日照
Ocean base --千亿级海量数据库-lamper_日照
 
Mongo db 簡介
Mongo db 簡介Mongo db 簡介
Mongo db 簡介
 

Destaque

Intro to NoSQL and MongoDB
Intro to NoSQL and MongoDBIntro to NoSQL and MongoDB
Intro to NoSQL and MongoDB
DATAVERSITY
 
The Aggregation Framework
The Aggregation FrameworkThe Aggregation Framework
The Aggregation Framework
MongoDB
 
MongoDB Analytics: Learn Aggregation by Example - Exploratory Analytics and V...
MongoDB Analytics: Learn Aggregation by Example - Exploratory Analytics and V...MongoDB Analytics: Learn Aggregation by Example - Exploratory Analytics and V...
MongoDB Analytics: Learn Aggregation by Example - Exploratory Analytics and V...
MongoDB
 

Destaque (8)

Exploring the replication in MongoDB
Exploring the replication in MongoDBExploring the replication in MongoDB
Exploring the replication in MongoDB
 
Intro to NoSQL and MongoDB
Intro to NoSQL and MongoDBIntro to NoSQL and MongoDB
Intro to NoSQL and MongoDB
 
Socialite, the Open Source Status Feed Part 2: Managing the Social Graph
Socialite, the Open Source Status Feed Part 2: Managing the Social GraphSocialite, the Open Source Status Feed Part 2: Managing the Social Graph
Socialite, the Open Source Status Feed Part 2: Managing the Social Graph
 
The Aggregation Framework
The Aggregation FrameworkThe Aggregation Framework
The Aggregation Framework
 
MongoDB Analytics: Learn Aggregation by Example - Exploratory Analytics and V...
MongoDB Analytics: Learn Aggregation by Example - Exploratory Analytics and V...MongoDB Analytics: Learn Aggregation by Example - Exploratory Analytics and V...
MongoDB Analytics: Learn Aggregation by Example - Exploratory Analytics and V...
 
Webinar: Back to Basics: Thinking in Documents
Webinar: Back to Basics: Thinking in DocumentsWebinar: Back to Basics: Thinking in Documents
Webinar: Back to Basics: Thinking in Documents
 
MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...
MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...
MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 

Semelhante a MongoDB SHARE

開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
My own sweet home!
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优
thinkinlamp
 
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
knuthocean
 
深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo db
Lucien Li
 
MySQL和IO(下)
MySQL和IO(下)MySQL和IO(下)
MySQL和IO(下)
Feng Yu
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结
Lixun Peng
 
亚马逊云计算Aws
亚马逊云计算Aws亚马逊云计算Aws
亚马逊云计算Aws
锐 张
 
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践基于My sql的分布式数据库实践
基于My sql的分布式数据库实践
锐 张
 

Semelhante a MongoDB SHARE (20)

開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践
 
浅谈数据库优化
浅谈数据库优化浅谈数据库优化
浅谈数据库优化
 
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
 
深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo db
 
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracleBuffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
 
MySQL和IO(下)
MySQL和IO(下)MySQL和IO(下)
MySQL和IO(下)
 
美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统
 
AWS_Educate_Team_SCU_Volunteer_Training_0923
AWS_Educate_Team_SCU_Volunteer_Training_0923AWS_Educate_Team_SCU_Volunteer_Training_0923
AWS_Educate_Team_SCU_Volunteer_Training_0923
 
数据库内核分享——第一期
数据库内核分享——第一期数据库内核分享——第一期
数据库内核分享——第一期
 
File api
File apiFile api
File api
 
File api
File apiFile api
File api
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结
 
InnoDB IO优化
InnoDB IO优化InnoDB IO优化
InnoDB IO优化
 
Comment System of 56.com
Comment System of 56.comComment System of 56.com
Comment System of 56.com
 
Hantuo openstack
Hantuo openstackHantuo openstack
Hantuo openstack
 
亚马逊云计算Aws
亚马逊云计算Aws亚马逊云计算Aws
亚马逊云计算Aws
 
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践基于My sql的分布式数据库实践
基于My sql的分布式数据库实践
 
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
 

MongoDB SHARE