linux安装mongodb并做分片集群
安装mongodb
我们先去官网下载对应的版本,我这里选择的是4.0.0 tgz版本
在linux下解压打开
sudo tar -zxvf mongodb-linux-x86_64-4.0.0.tgz -C /usr/local/ # 解压至指定文件目录
sudo mv /usr/local/mongodb-linux-x86_64-4.0.0 /usr/local/mongodb # 改名字
编写环境变量
打开自己prfile文件(我这里是zsh,所以我这里直接对.zshrc修改)
vim .zshrc
# 在后面添加变量
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
source .zshrc # 这里看你的profile文件是什么
mongodb设置
我这里设置了三个分片服务器(没有集群)
两个config服务器(官方要求必须是集群模式)
一个router服务器
具体信息如下
名字 | port | 集群 |
---|---|---|
shard0 | 27100 | Nan |
shard1 | 27101 | Nan |
shard2 | 27102 | Nan |
config1 | 27200 | config |
config2 | 27201 | config |
r2 | 8848 | Nan |
新建db和log文件夹
# 创建响应的db
mkdir -p ~/db/s0
mkdir -p ~/db/s1
mkdir -p ~/db/s2
mkdir -p ~/db/c0
mkdir -p ~/db/c1
# 创建log 文件夹
mkdir ~/log
创建log日志
touch ~/log/s0.log
touch ~/log/s1.log
touch ~/log/s2.log
touch ~/log/c0.log
touch ~/log/c1.log
touch ~/log/r.log
编写conf文件
shard config文件编写
# 这边三个分片服务器仅仅是 这三个配置看着改
port= 27100
logpath= /home/kali/log/s0.log
dbpath=/home/kali/db/s0/
logappend=true
maxConns=100
storageEngine=wiredTiger
bind_ip = 0.0.0.0
shardsvr=true # 这个是标记它为分片服务器
config 文件编写
port= 27200
logpath= /home/kali/log/c1.log
dbpath=/home/kali/db/c1/
logappend=true
# fork=true
maxConns=100
# auth=true
storageEngine=wiredTiger
bind_ip = 0.0.0.0
replSet = config # 标记它为复制集
# keyFile = /home/kali/mongodb/keyfile
configsvr = true # 这个是标记它为配置服务器
配置路由服务器
# shard 1
port= 8848
logpath= /home/kali/log/r.log
logappend=true
configdb =config/192.168.17.17:27200,192.168.17.17:27201
maxConns=100
# auth=true
bind_ip = 0.0.0.0
mongodb 启动
启动三个分片服务器
mongod -f ./mongdb_s{0/1/2}.conf --fork
启动两个配置服务器
mongod -f ./mongdb_c{0/1}.conf --fork # 启动服务
mongo --port 27200 # 进入某一个线程内部
use admin # 准备配置服务器集群设置
rs.initiate({_id:"config",members:[{_id:0,host:"192.168.17.17:27200"},{_id:1,host:"192.168.17.17:27201"}]})
# 看到mongo>界面编程子节点表示初始化成功
rs.status() # 查看复制群是否成功
启动路由服务器
mongos -f ./mongdb_r.conf --fork
#进入该线程内部
mongo --port 8848
use admin
sh.addShard("192.168.17.17:27100")
sh.addShard("192.168.17.17:27101")
sh.addShard("192.168.17.17:27102")
实现分片功能
还在路由服务器内部
设置chunk
use config
db.setting.save({"_id":"chunksize","value":1}) # 设置块大小为1M是方便实验,不然需要插入海量数据
- 这里我们设置test数据库里面的user表来分片
use test
sh.enableSharding("test")
db.user.createIndex({"id":1}) # 以"id"作为索引
sh.shardCollection("test.user",{"id":"hashed"}) # hash分片
往数据库中插数据 测试50k条
for(i=1;i<=50000;i++){db.user.insert({"id":i,"name":"jack"+i})} #模拟往calon数据库的user表写入5万数据
标签:log,mongodb,linux,db,分片,服务器,config
From: https://www.cnblogs.com/adroitwolf/p/16985376.html