




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MongoDB集群帮助手册2016年5月修订记录版本修订说明作者审核审核日期V1.0MongoDB集群帮助手册一、Mongodb集群架构简介这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monodb系统。要构建一个 MongoDB Sharding Cluster,需要三种角色:l Shard Server: mongod 实例,用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个relica set承担,防止主机单点故障l Config Server: mongod 实例,存储了整个 Cluster Metadata,其中包括 chunk 信息。l Route Server: mongos 实例,前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。本例架构示例图:1. 分别在3台机器运行一个mongod实例(称为mongod shard11,mongod shard12,mongod shard13)组织replica set1,作为cluster的shard1 2. 分别在3台机器运行一个mongod实例(称为mongod shard21,mongod shard22,mongod shard23)组织replica set2,作为cluster的shard2 3. 每台机器运行一个mongod实例,作为3个config server 4. 每台机器运行一个mongs进程,用于客户端连接 主机IP端口信息Server110.1.1.1mongod shard11:27017mongod shard12:27018mongod config1:20000mongs1:30000Server210.1.1.2mongod shard12:27017mongod shard22:27018mongod config2:20000mongs2:30000Server310.1.1.3mongod shard13:27017mongod shard23:27018mongod config3:20000mongs3:30000二、集群配置2.1软件准备1. 安装monodb软件 su mongodbtar zxvf mongodb-linux-x86_64-1.6.2.tar创建数据目录根据本例sharding架构图所示,在各台sever上创建shard数据文件目录Server1:su monodbcd /monodbmkdir -p data/shard11mkdir -p data/shard21Server2:su monodbcd /monodbmkdir -p data/shard11mkdir -p data/shard22Server3:su monodbcd /monodbmkdir -p data/shard13mkdir -p data/shard232.2配置relica sets(复制集)1. 配置shard1所用到的replica sets:Server1:cd /mongodb/mongodb-linux-x86_64-1.6.2/bin./mongod shardsvr replSet shard1 port 27017 dbpath /mongodb/data/shard11 oplogSize 100 logpath /mongodb/data/shard11.log logappend forkServer2:cd /mongodb/mongodb-linux-x86_64-1.6.2/bin./mongod shardsvr replSet shard1 port 27017 dbpath /mongodb/data/shard12 oplogSize 100 logpath /mongodb/data/shard12.log logappend forkServer3:cd /mongodb/mongodb-linux-x86_64-1.6.2/bin./mongod shardsvr replSet shard1 port 27017 dbpath /mongodb/data/shard13 oplogSize 100 logpath /mongodb/data/shard13.log logappend fork初始化replica set用mongo连接其中一个mongod,执行: config = _id: shard1, members: _id: 0, host: 10.1.1.1:27017, _id: 1, host: 10.1.1.2:27017, _id: 2, host: 10.1.1.3:27017 rs.initiate(config);同样方法,配置shard2用到的replica sets:server1:cd /mongodb/mongodb-linux-x86_64-1.6.2/bin./mongod shardsvr replSet shard2 port 27018 dbpath /mongodb/data/shard21 oplogSize 100 logpath /mongodb/data/shard21.log logappend forkserver2:cd /mongodb/mongodb-linux-x86_64-1.6.2/bin./mongod shardsvr replSet shard2 port 27018 dbpath /mongodb/data/shard22 oplogSize 100 logpath /mongodb/data/shard22.log logappend forkserver3:cd /mongodb/mongodb-linux-x86_64-1.6.2/bin./mongod shardsvr replSet shard2 port 27018 dbpath /mongodb/data/shard23 oplogSize 100 logpath /mongodb/data/shard23.log logappend fork初始化replica set用mongo连接其中一个mongod,执行: config = _id: shard2, members: _id: 0, host: 10.1.1.1:27018, _id: 1, host: 10.1.1.2:27018, _id: 2, host: 10.1.1.3:27018 rs.initiate(config);到此就配置好了二个replica sets,也就是准备好了二个shards2.3配置三台config serverServer1:mkdir -p /mongodb/data/config./mongod configsvr dbpath /mongodb/data/config port 20000 logpath /mongodb/data/config.log logappend fork #config server也需要dbpathServer2:mkdir -p /mongodb/data/config./mongod configsvr dbpath /mongodb/data/config port 20000 logpath /mongodb/data/config.log logappend forkServer3:mkdir -p /mongodb/data/config./mongod configsvr dbpath /mongodb/data/config port 20000 logpath /mongodb/data/config.log logappend fork2.4配置mongs在server1,server2,server3上分别执行:./mongos configdb 10.1.1.1:20000,10.1.1.2:20000,10.1.1.3:20000 port 30000 chunkSize 5 logpath /mongodb/data/mongos.log logappend fork#mongs不需要dbpath2.5添加复制集连接到其中一个mongos进程,并切换到admin数据库做以下配置1.连接到mongs,并切换到admin./mongo 10.1.1.1:30000/admindbAdmin2.加入shards如里shard是单台服务器,用db.runCommand( addshard : “:” )这样的命令加入,如果shard是replica sets,用replicaSetName/:port,serverhostname2:port,这样的格式表示,例如本例执行:db.runCommand( addshard : “shard1/10.1.1.1:27017,10.1.1.2:27017,10.1.1.3:27017,name:”s1,maxsize:20480 );db.runCommand( addshard : “shard2/10.1.1.1:27018,10.1.1.2:27018,10.1.1.3:27018,name:”s2,maxsize:20480 );注意:在添加第二个shard时,出现error:test database 已经存在的错误,这里用mongo命令连接到第二个replica set,用db.dropDatabase()命令把test数据库给删除然后就可加入3.可选参数Name:用于指定每个shard的名字,不指定的话系统将自动分配maxSize:指定各个shard可使用的最大磁盘空间,单位megabytes4.Listing shardsdb.runCommand( listshards : 1 )如果列出了以上二个你加的shards,表示shards已经配置成功5.2.6数据库分片以及Collecton分片1、激活数据库分片命令: db.runCommand( enablesharding : “” );通过执行以上命令,可以让数据库跨shard,如果不执行这步,数据库只会存放在一个shard,一旦激活数据库分片,数据库中不同的collection将被存放在不同的shard上,但一个collection仍旧存放在同一个shard上,要使单个collection也分片,还需单独对collection作些操作2、Collection分片要使单个collection也分片存储,需要给collection指定一个分片key,通过以下命令操作: db.runCommand( shardcollection : “”,key : );注:a.分片的collection系统会自动创建一个索引(也可用户提前创建好)b. 分片的collection只能有一个在分片key上的唯一索引,其它唯一索引不被允许One note: a sharded collection can have only one unique index, which must exist on the shard key. No other unique indexes can exist on the collection.2.7分片collection例子db.runCommand( shardcollection : “test.c1,key : id: 1 )for (var i = 1; i db.c1.stats()(该命令可以查看表的存储状态)2.8 Mongodb运行时添加节点1、查看复制集节点配置./mongo 192.168.1.207:27017rs0:PRIMARY rs.conf(); _id : rs0, version : 3, members : _id : 0, host : 192.168.1.207:27017 , _id : 1, host : 192.168.1.207:27018 , 2、添加节点添加新的数据目录 mkdir p /mongodb/data/shard4启动节点./mongod shardsvr replSet shard1 port 27019 dbpath /mongodb/data/shard4 oplogSize 100 logpath /mongodb/data/shard4.log logappend fork 连接主节点mongo 192.168.1.207:27017 rs0:PRIMARYrs.isMaster(); setName : rs0,ismaster : true, secondary : false, hosts : 192.168.1.207:27017, 192.168.1.207:27018 , primary : 192.168.1.207:27017, me : 192.168.1.207:27018, maxBsonObjectSize : 16777216, localTime : ISODate(2013-05-22T13:04:36.501Z), ok : 1添加节点rs0:PRIMARYrs.add(192.168.1.207:27019); ok : 1 3、再次查看状态rs0:PRIMARY rs.conf(); _id : rs0, version : 3, members : _id : 0, host : 192.168.1.207:27017 , _id : 1, host : 192.168.1.207:27018 , _id : 1, host : 192.168.1.207:27019 , 添加成功2.9 Mongodb运行时移除节点其他步骤同上,其中只是将添加命令改为移除命令rs0:PRIMARYrs.remove(192.168.1.207:27019);最后还需要关掉192.168.1.207:27019 该服务Ps ef | grep mongo 查找该服务然后通过kill -9 pid 关闭服务。2.10 Mongodb运行时移除分片1、连接mongos节点 ./mongo 192.168.1.20
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业名称企业公民报告2024下半年绩效报告医疗器械行业
- 企业名称企业公民报告2024-2025年发展报告医用影像设备
- 5G赋能下的2025年研发速度加快可行性分析报告
- 新能源汽车整车安全性能提升2025年技术创新报告
- 租赁土地使用权合同6篇
- 光缆线路维护服务合同协议书范本5篇
- 2025年云计算行业边缘计算与云端服务研究报告
- 2025年城市规划行业城市智慧化规划研究报告
- 2025年老年医学综合评估知识检测模拟考试卷答案及解析
- 2025年普外科常见急腹症诊治规范模拟测试卷答案及解析
- 火锅店引流截流回流方案
- 国庆中秋双节安全培训课件
- 2025年全国青少年全国禁毒知识竞赛试题及答案
- 云南学法减分题库及答案
- GJB3243A-2021电子元器件表面安装要求
- TCCEAS001-2022建设项目工程总承包计价规范
- 空调负荷计算-空调负荷的计算(空调工程)
- 计算机视觉之图像分类课件
- 输电线路工程安全风险识别、评估、预控措施
- 大学英语三级词汇表(新版)
- GB/T 18380.22-2008电缆和光缆在火焰条件下的燃烧试验第22部分:单根绝缘细电线电缆火焰垂直蔓延试验扩散型火焰试验方法
评论
0/150
提交评论