本机IP:192.168.199.204 1、 安装 MongoDB社区所需的依赖项
yum install libcurl openssl xz-libs -y
2、 下载社区版5.0.2
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.2.tgz
3、 解压到/usr/local/下面
tar zxvf mongodb-linux-x86_64-rhel70-5.0.2.tgz -C /usr/local/
cd /usr/local/
mv mongodb-linux-x86_64-rhel70-5.0.2 mongodb-5.0.2
4、mongodump、mongorestore等工具需要单独下载
wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel70-x86_64-100.5.0.tgz
tar zxvf mongodb-database-tools-rhel70-x86_64-100.5.0.tgz
cd mongodb-database-tools-rhel70-x86_64-100.5.0/bin
cp * /usr/local/mongodb-5.0.2/bin/
5、设置软连接,方便调用命令
ln -s /usr/local/mongodb-5.0.2/bin/mongo /usr/local/bin/mongo
ln -s /usr/local/mongodb-5.0.2/bin/mongod /usr/local/bin/mongod
ln -s /usr/local/mongodb-5.0.2/bin/mongos /usr/local/bin/mongos
6、新建数据目录和日志目录,配置文件目录
mkdir -p /data/mongo{1,2,3}/{db_shard1,db_shard2,db_shard3,db_configsvr}
mkdir -p /data/mongo{1,2,3}/logs
mkdir -p /data/mongo{1,2,3}/conf
7、配置3个config,9个shard,3个mongos,一共15个文档 使用到的端口如下(不是很会这个CSDN的插入表格,只能截图): 下面列出mongo1的配置文件,单独列了出来
https://blog.csdn.net/qq_39677803/article/details/120358590?spm=1001.2014.3001.5502
下面列出mongo2的配置文件,单独列了出来
https://blog.csdn.net/qq_39677803/article/details/120358637?spm=1001.2014.3001.5502
下面列出mongo3的配置文件,单独列了出来
https://blog.csdn.net/qq_39677803/article/details/120358648?spm=1001.2014.3001.5502
8、启动config server
mongod -f /data/mongo1/conf/configsvr.conf
mongod -f /data/mongo2/conf/configsvr.conf
mongod -f /data/mongo3/conf/configsvr.conf
启动之后登录任意一个config server端口, 这里优先使用哪一个端口,哪一个就会优先变成主节点,这里用mongo1的27100端口
mongo --port 27100
下面开始配置副本集
>use admin
>cfg = {
_id:"csvr",
members:[
{_id:0,host:"192.168.199.204:27100",},
{_id:1,host:"192.168.199.204:27200"},
{_id:2,host:"192.168.199.204:27300"}
]
}
#csvr 是配置节点的配置文件configsvr.conf中replSetName的值 #27100 27200 27300 分别是3个configsvr.conf的端口 初始化
>rs.initiate(cfg)
可以查看状态
>rs.status()
9、配置分片 启动分------shard1
mongod -f /data/mongo1/conf/shard1.conf
mongod -f /data/mongo2/conf/shard1.conf
mongod -f /data/mongo3/conf/shard1.conf
mongo --port 27017
use admin
cfg = {
_id:"rs0",
members:[
{_id:0,host:" 192.168.199.204:27017",},
{_id:1,host:" 192.168.199.204:28017"},
{_id:2,host:" 192.168.199.204:29017",arbiterOnly:true}
]
}
rs.initiate(cfg)
可以查看状态
rs.status()
启动分片-----shard2
mongod -f /data/mongo1/conf/shard2.conf
mongod -f /data/mongo2/conf/shard2.conf
mongod -f /data/mongo3/conf/shard2.conf
mongo --port 27018
use admin
cfg = {
_id:"rs1",
members:[
{_id:0,host:" 192.168.199.204:27018",},
{_id:1,host:" 192.168.199.204:28018"},
{_id:2,host:" 192.168.199.204:29018",arbiterOnly:true}
]
}
rs.initiate(cfg)
rs.status()
启动分片-----shard3
mongod -f /data/mongo1/conf/shard3.conf
mongod -f /data/mongo2/conf/shard3.conf
mongod -f /data/mongo3/conf/shard3.conf
mongo --port 27019
use admin
cfg = {
_id:"rs2",
members:[
{_id:0,host:" 192.168.199.204:27019",},
{_id:1,host:" 192.168.199.204:28019"},
{_id:2,host:" 192.168.199.204:29019",arbiterOnly:true}
]
}
rs.initiate(cfg)
rs.status()
10、配置mongos路由服务器 启动mongos服务
mongos -f /data/mongo1/conf/mongos.conf
mongos -f /data/mongo2/conf/mongos.conf
mongos -f /data/mongo3/conf/mongos.conf
登录mongo1的28100
mongo --port 28100
启用分片(将分片和路由器串联)
mongos> sh.addShard("rs0/192.168.199.204:27017,192.168.199.204:28017,192.168.199.204:29017")
mongos> sh.addShard("rs1/192.168.199.204:27018,192.168.199.204:28018,192.168.199.204:29018")
mongos> sh.addShard("rs2/192.168.199.204:27019,192.168.199.204:28019,192.168.199.204:29019")
11、测试MongoDB分片 连接mongo的端口,这里连接28100、28200、28300的效果是一样的
mongo --port 28100
指定要分片的库db1
mongos> sh.enableSharding("db1")
#如果db1不存在会自动创建,指定分片的库的第二种方式:db.runCommand({ enablesharding : “db1”}) 在db1库中创建/指定分片的集合cl01
mongos> sh.shardCollection("db1.cl01",{"id":1} )
#第二种方式:db.runCommand( { shardcollection : “db1.cl01”,key : {id: 1} } ) 查看状态sh.status()中databases项即可看到db1库与cl01集合
参考: https://blog.csdn.net/Powerful_Fy/article/details/103615902 菜鸟教程
|