安装前先同步服务器时间:
a.yum install ntp
b.ntpdate 210.72.145.44
同步时间方式2:
yum install rdate
rdate -t 60 -s stdtime.gov.hk
hwclock -w
rdate的命令使用方法介绍
功能说明:显示其他主机的日期与时间。
语法:rdate [-ps][主机名称或IP地址...]
补充说明:执行rdate指令,向其他主机询问系统时间并显示出来。
参数:
-p显示远端主机的日期与时间。
-s把从远端主机收到的日期和时间,回存到本地主机的系统时间。
配置总览:
3个分片sharding
每一个分片由3个节点构成1主2备的Replica Sets
3个配置节点Configsever
1个路由节点Mongos
步骤:
1. 创建分片:
server A:
mkdir -p /data/a/r0
mkdir -p /data/b/r0
mkdir -p /data/c/r0
mkdir -p /data/logs/a
mkdir -p /data/logs/b
mkdir -p /data/logs/c
mkdir -p /data/configServer/r0
mkdir -p /data/logs/configServer
mkdir -p /data/logs/serverlogs
./mongod --logpath /data/logs/a/r0.log --logappend --dbpath /data/a/r0 --port 10000 --shardsvr --replSet setA --rest --oplogSize 64 --fork
serverB serverC 执行同上命令。
2.初始化复制集setA:
./mongo 192.168.1.115:10000/admin
config={_id: 'setA', members:[{_id: 0,host:'192.168.1.115:10000'},{_id:1,host:'192.168.1.116:10000'},{_id:2,host:'192.168.1.117:10000'}]}
rs.initiate(config);
3.初始化复制集setB:
./mongod --logpath /data/logs/b/r0.log --logappend --dbpath /data/b/r0 --port 20000 --shardsvr --replSet setB --rest --oplogSize 64 --fork
./mongo 192.168.1.116:20000/admin
config={_id: 'setB', members:[{_id: 0,host:'192.168.1.115:20000'},{_id:1,host:'192.168.1.116:20000'},{_id:2,host:'192.168.1.117:20000'}]}
rs.initiate(config);
4.初始化复制集setC:
./mongod --logpath /data/logs/c/r0.log --logappend --dbpath /data/c/r0 --port 30000 --shardsvr --replSet setC --rest --oplogSize 64 --fork
./mongo 192.168.1.117:30000/admin
config={_id: 'setC', members:[{_id: 0,host:'192.168.1.115:30000'},{_id:1,host:'192.168.1.116:30000'},{_id:2,host:'192.168.1.117:30000'}]}
rs.initiate(config);
5.配置config Server:
115 116 117上执行
./mongod --configsvr --logpath /data/logs/configServer/r0.log --logappend --dbpath /data/configServer/r0 --port 40000 --shardsvr --fork
6.启动路由节点:
115 116 117上执行
./mongos --configdb 192.168.1.115:40000,192.168.1.116:40000,192.168.1.117:40000 --logpath /data/logs/serverlogs/mongos.log --logappend --port 50000 --fork
7.配置分片
115 上执行:
./mongo 127.0.0.1:50000
use admin
db.runCommand({addshard:"setA/192.168.1.115:10000,192.168.1.116:10000,192.168.1.117:10000",name:"ShardSetA"})
db.runCommand({addshard:"setB/192.168.1.115:20000,192.168.1.116:20000,192.168.1.117:20000",name:"ShardSetB"})
db.runCommand({addshard:"setC/192.168.1.115:30000,192.168.1.116:30000,192.168.1.117:30000",name:"ShardSetC"})
printShardingStatus();
数据库连接时通过192.168.1.115 端口连接50000
ES连接river配置时,不能通过路由端口。 可通过10000或者20000
1.设置分片存储的DB,如设置test库分片存储。
db.runCommand({ enablesharding:"test" })
2.db.runCommand({ shardcollection: "test.users", key: { _id:1 }}) --设置分片的集合名称,且必须指定Shard Key,系统会自动创建索引
3.查看存储状态
db.users.stats()