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

来源:互联网 发布:一起阅读软件下载 编辑:程序博客网 时间:2024/05/29 12:25
1、MongoDB在Linux下的安装配置
  • 应用shutdown kill -2/-4
  • use 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生态系统
  • 集群构成
    • mongod
    • mongos
    • config server
    • arbiter server
  • 主从复制模式(Master、Slave or Slaves),支持任意节点从节点,备份;人工故障转移、故障恢复困难;oplog仅存在主节点上
  • 副本集模式(Arbiter、Primary、Secondary);自动话管理(故障转移、活跃节点选举、读扩展、智能化);
  • 分片模式(数据拆分、分散存储到多台机器上、手工分片(自动分片));意义:单机性能瓶颈,内存
  • 部署方式(Master-Slave:不推荐、实验部署;Replica Set:推荐方式、数据量不大;ReplicatSet+Sharding方式:推荐部署方式、数据量大、需要分片);
  • MongoDB集群部署实践
    • 数据量大
    • 可靠性较高;
    • 并发读写;
    • Replica Set+Sharding
    • 动态增加ShardingServer
    • 读写分离
    • 故障转移
    • 库级sharding(move primary)
    • 表级是手动sharding
    • auto-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个进程)


分片情况:

0 0
原创粉丝点击