MongoDB环境配置及集群一键部署

3/7/2017来源:SQL技巧人气:2991

1、MongoDB在linux下的安装配置 应用shutdown kill -2/-4use admin; db.shutdownServer();kill -9 可能会导致数据丢失、文件损坏、之后需要进行修复; 2、MongoDB体系结构解读 跨平台数据库 Linux、Unix、Max、Windows整体架构相同 MongoDB Server 实例、数据库及对应关系 数据逻辑结构(面向用户的) 文档、集合、数据库 数据存储 元数据、实际数据数据库数据组成:db.ns、db.0、db.1.....数据存储预分配空间(2倍增加,最小64MB、最大文件2G)命名空间(集合、索引、*.ns、*.0、*.1存储表及索引)命名空间分配大小递增 3、MongoDB生态系统 集群构成 mongodmongosconfig serverarbiter server 主从复制模式(Master、Slave or Slaves),支持任意节点从节点,备份;人工故障转移、故障恢复困难;oplog仅存在主节点上副本集模式(Arbiter、PRimary、Secondary);自动话管理(故障转移、活跃节点选举、读扩展、智能化);分片模式(数据拆分、分散存储到多台机器上、手工分片(自动分片));意义:单机性能瓶颈,内存部署方式(Master-Slave:不推荐、实验部署;Replica Set:推荐方式、数据量不大;ReplicatSet+Sharding方式:推荐部署方式、数据量大、需要分片);MongoDB集群部署实践 数据量大可靠性较高;并发读写;Replica Set+Sharding动态增加ShardingServer读写分离故障转移库级sharding(move primary)表级是手动shardingauto-sharding(凌晨) _____________________________________________________________________________________ 1、创建配置文件及相关目录 环境简介:因为手头没有虚拟机,所以在windows下单机完成部署要求,并编写bat运行脚本 脚本如下: rem m1 start mongod.exe --config=../config/m1/s1_1 start mongod.exe --config=../config/m1/s1_2 start mongod.exe --config=../config/m1/c1_1 start mongod.exe --config=../config/m1/a1_1 start mongod.exe --config=../config/m1/a1_2 rem m2 start mongod.exe --config=../config/m2/s2_1 start mongod.exe --config=../config/m2/s2_2 start mongod.exe --config=../config/m2/c2_1 start mongod.exe --config=../config/m2/a2_1 start mongod.exe --config=../config/m2/a2_2 rem m3 start mongod.exe --config=../config/m3/s3_1 start mongod.exe --config=../config/m3/s3_2 start mongod.exe --config=../config/m3/c3_1 start mongod.exe --config=../config/m3/a3_1 start mongod.exe --config=../config/m3/a3_2 start mongos.exe --config=../config/m1/s1 start mongos.exe --config=../config/m2/s2 start mongos.exe --config=../config/m3/s3 2、进行分片相应设置 use admin config = {_id: 'shard1', members:[{_id:0, host: 'localhost:8442'},{_id:1, host:'localhost:8542'},{_id:2, host:'localhost:8642',slaveDelay:7200,priority:0},{_id:3, host:'localhost:8451',arbiterOnly:true},{_id:4, host:'localhost:8551',arbiterOnly:true},{_id:5, host:'localhost:8651',arbiterOnly:true}]}; rs.initiate(config); config = {_id: 'shard2', members:[{_id:0, host: 'localhost:8443'},{_id:1, host:'localhost:8543'},{_id:2, host:'localhost:8643',slaveDelay:7200,priority:0},{_id:3, host:'localhost:8452',arbiterOnly:true},{_id:4, host:'localhost:8552',arbiterOnly:true},{_id:5, host:'localhost:8652',arbiterOnly:true}]}; rs.initiate(config); use admin db.runCommand( { addshard:"shard1/localhost:8442,localhost:8542",name:"s1"} ); db.runCommand( { addshard:"shard2/localhost:8443,localhost:8543",name:"s2"} ); db.runCommand( { listshards : 1 } ) 3、目录结构及运行情况 配置文件目录(m1为例): 文件记录log db文件夹 运行程序(15+3个进程) 分片情况: