博客
关于我
mongodb 集群shard_MongoDB Sharding Cluster 分片集群搭建及使用
阅读量:799 次
发布时间:2023-02-09

本文共 3877 字,大约阅读时间需要 12 分钟。

MongoDB 分片集群搭建与使用指南

1.1 规划

本文将详细介绍MongoDB分片集群的搭建过程,包括shard节点、configserver节点以及mongos节点的配置及使用方法。

1.2 Shard节点配置过程

1.2.1 目录创建

创建以下目录结构:

mkdir -p /mongodb/38021/conf /mongodb/38021/log /mongodb/38021/data
mkdir -p /mongodb/38022/conf /mongodb/38022/log /mongodb/38022/data
mkdir -p /mongodb/38023/conf /mongodb/38023/log /mongodb/38023/data
mkdir -p /mongodb/38024/conf /mongodb/38024/log /mongodb/38024/data
mkdir -p /mongodb/38025/conf /mongodb/38025/log /mongodb/38025/data
mkdir -p /mongodb/38026/conf /mongodb/38026/log /mongodb/38026/data

1.2.2 修改配置文件

第一组复制集搭建:21-23(1主1从1Arb)
cp /mongodb/38021/conf/mongodb.conf /mongodb/38022/conf/
cp /mongodb/38021/conf/mongodb.conf /mongodb/38023/conf/
sed -n '#38021#38022#' /mongodb/38022/conf/mongodb.conf -i
sed -n '#38021#38023#' /mongodb/38023/conf/mongodb.conf -i
第二组节点:24-26(1主1从1Arb)
cp /mongodb/38024/conf/mongodb.conf /mongodb/38025/conf/
cp /mongodb/38024/conf/mongodb.conf /mongodb/38026/conf/
sed -n '#38024#38025#' /mongodb/38025/conf/mongodb.conf -i
sed -n '#38024#38026#' /mongodb/38026/conf/mongodb.conf -i

1.2.3 启动所有节点,并搭建复制集

启动各节点并使用rs.initiate命令初始化复制集:

mongod -f /mongodb/38021/conf/mongodb.conf
mongod -f /mongodb/38022/conf/mongodb.conf
mongod -f /mongodb/38023/conf/mongodb.conf
mongod -f /mongodb/38024/conf/mongodb.conf
mongod -f /mongodb/38025/conf/mongodb.conf
mongod -f /mongodb/38026/conf/mongodb.conf
ps -ef | grep mongod
configserver配置
mongo --port 38018 use admin
config = { _id: 'configReplSet', members: [
{_id:0, host: '10.0.0.51:38018'},
{_id:1, host: '10.0.0.51:38019'},
{_id:2, host: '10.0.0.51:38020'}
] }
rs.initiate(config)

1.3 config节点配置

1.3.1 目录创建

mkdir -p /mongodb/38018/conf /mongodb/38018/log /mongodb/38018/data
mkdir -p /mongodb/38019/conf /mongodb/38019/log /mongodb/38019/data
mkdir -p /mongodb/38020/conf /mongodb/38020/log /mongodb/38020/data

1.3.2 修改配置文件

cp /mongodb/38018/conf/mongodb.conf /mongodb/38019/conf/
cp /mongodb/38018/conf/mongodb.conf /mongodb/38020/conf/
sed -n '#38018#38019#' /mongodb/38019/conf/mongodb.conf -i
sed -n '#38018#38020#' /mongodb/38020/conf/mongodb.conf -i

1.3.3 启动节点,并配置复制集

mongod -f /mongodb/38018/conf/mongodb.conf
mongod -f /mongodb/38019/conf/mongodb.conf
mongod -f /mongodb/38020/conf/mongodb.conf
mongo --port 38018 use admin
config = { _id: 'configReplSet', members: [
{_id:0, host: '10.0.0.51:38018'},
{_id:1, host: '10.0.0.51:38019'},
{_id:2, host: '10.0.0.51:38020'}
] }
rs.initiate(config)

1.4 mongos节点配置

1.4.1 创建目录

mkdir -p /mongodb/38017/conf /mongodb/38017/log

1.4.2 配置文件

cat > /mongodb/38017/conf/mongos.conf < &

1.4.3 启动mongos

mongos -f /mongodb/38017/conf/mongos.conf

1.5 分片集群添加节点

1.5.1 连接到mongos并配置

mongo --port 38017 admin

执行以下命令添加分片:

db.runCommand({ addshard: "sh1/10.0.0.51:38021,10.0.0.51:38022,10.0.0.51:38023", name: "shard1" })
db.runCommand({ addshard: "sh2/10.0.0.51:38024,10.0.0.51:38025,10.0.0.51:38026", name: "shard2" })

1.5.2 列出分片

mongos> db.runCommand({ listshards: 1 })

1.5.3 查看整体状态

mongos> sh.status()

1.6 使用分片集群

1.6.1 RANGE分片配置及测试

1.6.1.1 激活分片功能

mongo --port 38017 admin
admin> db.runCommand({ enablesharding: "test" })

1.6.1.2 指定分片键

use test
db.vast.ensureIndex({ id: 1 })
admin> db.runCommand({ shardcollection: "test.vast", key: { id: 1 } })

1.6.1.3 数据插入与统计

use test
for (i=1; i<1000000; i++) {
db.vast.insert({ id: i, name: "shenzheng", age: 70, date: newDate() });
}
db.vast.stats()

1.6.2 Hash分片配置及测试

1.6.2.1 激活分片功能

mongo --port 38017 admin
admin> db.runCommand({ enablesharding: "oldboy" })

1.6.2.2 创建Hash索引

use oldboy
oldboy> db.vast.ensureIndex({ id: "hashed" })

1.6.2.3 开启分片

use admin
admin> sh.shardCollection("oldboy.vast", { id: "hashed" })

1.6.2.4 数据录入与统计

use oldboy
for (i=1; i<100000; i++) {
db.vast.insert({ id: i, name: "shenzheng", age: 70, date: newDate() });
}

1.6.3 分片结果测试

mongo --port 38021 use oldboy
db.vast.count()
mongo --port 38024 use oldboy
db.vast.count()

转载地址:http://zjffk.baihongyu.com/

你可能感兴趣的文章
Objective-C实现一分钟倒计时(附完整源码)
查看>>
Objective-C实现三次样条曲线(附完整源码)
查看>>
Objective-C实现上传文件到FTP服务器(附完整源码)
查看>>
Objective-C实现两数之和问题(附完整源码)
查看>>
Objective-C实现串口通讯(附完整源码)
查看>>
Objective-C实现串逐位和(附完整源码)
查看>>
Objective-C实现主存储器空间的分配和回收(附完整源码)
查看>>
Objective-C实现乘方运算---m的n次方(附完整源码)
查看>>
Objective-C实现二叉树遍历算法(附完整源码)
查看>>
Objective-C实现二进制和算法(附完整源码)
查看>>
Objective-C实现二进制补码算法(附完整源码)
查看>>
Objective-C实现互斥锁同步执行两个线程函数(附完整源码)
查看>>
Objective-C实现交易密码算法(附完整源码)
查看>>
Objective-C实现人工势场法(附完整源码)
查看>>
Objective-C实现代理服务器(附完整源码)
查看>>
Objective-C实现以递归的形式MatrixExponentiation矩阵求幂算法 (附完整源码)
查看>>
Objective-C实现优先队列算法(附完整源码)
查看>>
Objective-C实现伽玛Gamma函数(附完整源码)
查看>>
Objective-C实现位置型pid算法(附完整源码)
查看>>
Objective-C实现低通滤波器(附完整源码)
查看>>