MongoDB Shard部署及Tag的使用

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: Shard部署 准备测试环境 为准备数据文件夹 Cd  /home/tiansign/fanr/mongodb/Shard mkdir configdb1 configdb2 configdb3 mkdir shard1 shard2 shard3 mkdir mongos 准备配置文...

Shard部署

准备测试环境

为准备数据文件夹

Cd  /home/tiansign/fanr/mongodb/Shard

mkdir configdb1 configdb2 configdb3

mkdir shard1 shard2 shard3

mkdir mongos

准备配置文件

为Config准备配置文件

dbpath=/home/tiansign/fanr/mongodb/Shard/configdb1

fork = true

logpath=/home/tiansign/fanr/mongodb/Shard/configdb1/config.log

为Shard准备配置文件

dbpath=/home/tiansign/fanr/mongodb/Shard/shard1

fork = true

logpath=/home/tiansign/fanr/mongodb/Shard/shard1/shard.log

port=27018

 

dbpath=/home/tiansign/fanr/mongodb/Shard/shard2

fork = true

logpath=/home/tiansign/fanr/mongodb/Shard/shard2/shard.log

port=27021

 

dbpath=/home/tiansign/fanr/mongodb/Shard/shard3

fork = true

logpath=/home/tiansign/fanr/mongodb/Shard/shard3/shard.log

port=27020

 

启动Config服务

mongod --config /home/tiansign/fanr/mongodb/Shard/configdb1/config.cfg --configsvr

启动Mongos服务

#mongos -f /home/tiansign/fanr/mongodb/Shard/mongos/mongos.cfg

mongos –configdb 127.0.0.1:27019

启动Shard的Mongod

mongod --config /home/tiansign/fanr/mongodb/Shard/shard1/shard.cfg

mongod --config /home/tiansign/fanr/mongodb/Shard/shard2/shard.cfg

mongod --config /home/tiansign/fanr/mongodb/Shard/shard3/shard.cfg

加入Shard服务

Mongo

sh.addShard("127.0.0.1:27018")

sh.addShard("127.0.0.1:27021")

sh.addShard("127.0.0.1:27020")

 

db.settings.save( { _id:"chunksize", value: 1} )

 

配置Shard Database

sh.enableSharding("test")

配置Shard Collection

sh.shardCollection("test.joker", {jokes:1});

 

插入测试数据

for (var i=0; i<100000; i++) { db.joker.insert({jokes: Math.random(), count: i, time: new Date()}); }

查看Chunk分布情况

use config

db.chunks.find({ns: "test.joker"}, {shard:1, _id:0}).sort({shard:1})

 

{ "shard" : "shard0000" }

{ "shard" : "shard0000" }

{ "shard" : "shard0000" }

{ "shard" : "shard0000" }

{ "shard" : "shard0001" }

{ "shard" : "shard0001" }

{ "shard" : "shard0001" }

{ "shard" : "shard0002" }

{ "shard" : "shard0002" }

{ "shard" : "shard0002" }

Shard Tag的使用

先把Tag和Shard关联

sh.addShardTag("shard0000", "mr. j")

为Tag分配shard key

sh.addTagRange("test.joker", {jokes:MinKey}, {jokes:MaxKey}, "mr. j")

 

查看均衡器状态

db.locks.find( { _id : "balancer" } ).pretty()

 

查看Chunk分布情况

use config

db.chunks.find({ns: "test.joker"}, {shard:1, _id:0}).sort({shard:1})

 

{ "shard" : "shard0000" }

{ "shard" : "shard0000" }

{ "shard" : "shard0000" }

{ "shard" : "shard0000" }

{ "shard" : "shard0000" }

{ "shard" : "shard0000" }

{ "shard" : "shard0000" }

{ "shard" : "shard0000" }

{ "shard" : "shard0000" }

{ "shard" : "shard0000" }

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
缓存 NoSQL Shell
MongoDB系列-在复制集(replication)以及分片(Shard)中创建索引
在使用MongoDB时,在创建索引会涉及到在复制集(replication)以及分片(Shard)中创建,为了最大限度地减少构建索引的影响,在副本和分片中创建索引,使用滚动索引构建过程。
436 0
|
NoSQL
云Mongodb Sharding如何在指定的Shard上执行Profile等命令
阿里云mongodb sharding集群处于安全的考虑用户所有的请求都是都是通过mongos来完成,而不能直连其中节点。而mongos官方目前支持的命令有限,这种情况下,用户想在某一个节点上执行一些命令,例如开启某个shard的primary节点的profile,或者某个shard的primary节点空间比较紧张执行compact命令释放空间,都无法支持;为此云mongo团队开发了一个新的命令runCommandOnShard来满足这部分需求。
3310 0
|
1月前
|
存储 NoSQL MongoDB
MongoDB如何创建数据库
MongoDB如何创建数据库
|
1天前
|
存储 NoSQL 关系型数据库
【MongoDB 专栏】MongoDB 与传统关系型数据库的比较
【5月更文挑战第10天】本文对比了MongoDB与传统关系型数据库在数据模型、存储结构、扩展性、性能、事务支持、数据一致性和适用场景等方面的差异。MongoDB以其灵活的文档模型、优秀的扩展性和高性能在处理非结构化数据和高并发场景中脱颖而出,而关系型数据库则在事务处理和强一致性上更具优势。两者各有适用场景,选择应根据实际需求来定。随着技术发展,两者正相互融合,共同构建更丰富的数据库生态。
【MongoDB 专栏】MongoDB 与传统关系型数据库的比较
|
5天前
|
存储 NoSQL 关系型数据库
MongoDB非关系型数据库实战
【5月更文挑战第6天】MongoDB,流行的NoSQL数据库,以其灵活的数据模型和高性能备受青睐。本文介绍了MongoDB的基础,包括文档型数据库特性、安装配置、数据操作。通过电商订单管理的实战案例,展示了MongoDB在处理复杂数据结构和大规模数据时的优势,适用于电商、游戏、视频直播等场景。MongoDB的索引、全文搜索和地理空间功能进一步增强了其实用性。注意性能优化和扩展性以确保系统稳定性和可靠性。
|
12天前
|
弹性计算 NoSQL Shell
一键安装 MongoDB 数据库脚本
【4月更文挑战第29天】
16 4
|
18天前
|
NoSQL MongoDB 数据库
MongoDB数据恢复—MongoDB数据库文件被破坏的数据恢复案例
服务器数据恢复环境: 一台Windows Server操作系统服务器,服务器上部署MongoDB数据库。 MongoDB数据库故障&检测: 工作人员在未关闭MongoDB数据库服务的情况下,将数据库文件拷贝到其他分区。拷贝完成后将原MongoDB数据库所在分区进行了格式化操作,然后将数据库文件拷回原分区,重新启动MongoDB服务,服务无法启动。
|
22天前
|
NoSQL MongoDB Redis
Python与NoSQL数据库(MongoDB、Redis等)面试问答
【4月更文挑战第16天】本文探讨了Python与NoSQL数据库(如MongoDB、Redis)在面试中的常见问题,包括连接与操作数据库、错误处理、高级特性和缓存策略。重点介绍了使用`pymongo`和`redis`库进行CRUD操作、异常捕获以及数据一致性管理。通过理解这些问题、易错点及避免策略,并结合代码示例,开发者能在面试中展现其技术实力和实践经验。
311 8
Python与NoSQL数据库(MongoDB、Redis等)面试问答