一.Mongodb安装包:
安装路径:/data/joygames/
生成keyfile文件:openssl rand -base64 100 > keyfile
认证keyfile路径:/data/joygames/mongodb/keyfile
修改keyfile的文件属性:chmod 600 /data/joygames/mongodb/keyfile
修改服务器配置:
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled echo "never" > /sys/kernel/mm/transparent_hugepage/defrag echo “* soft nproc 33000”>> /etc/security/limits.conf echo “* hard nproc 33000”>> /etc/security/limits.conf
在/etc/profile中添加mongodb的环境变量:
PATH=$PATH:/data/joygames/mongodb/bin
export PATH
二.安装副本集:
1.解压安装包到安装路径下,重命名为mongodb
2.新建启动配置文件mongodb.conf,内容如下:
port = 21000 dbpath = /data/joygames/mongodb/repl_data #数据库路径 logpath = /data/joygames/mongodb/log/mongodb.log #日志文件路径 logappend = true oplogSize = 1024 fork = true replSet=gwlm #副本集名称,不同的副本集组名称不同 pidfilepath = /data/joygames/mongodb/mongodb.pid #进程pid
3.新建目录/data/joygames/mongodb/repl_data和log文件/data/joygames/mongodb/log/mongodb.log
4.启动mongod进程:
mongod --keyFile /data/joygames/mongodb/keyfile -f /data/joygames/mongodb/mongodb.conf
根据实际情况配置副本集的服务器数目,推荐3台以上
配置完副本集后初始化副本集,登陆到其中一台上:
mongo 127.0.0.1:21000/admin
db.runCommand(
{
"replSetInitiate":
{
"_id":"gwlm",
"members":
[
{
"_id":1,
"host":"10.165.94.244:21000"
},
{
"_id":2,
"host":"10.165.95.106:21000"
},
{
"_id":3,
"host":"10.25.31.230:21000"
}
]
}
})
依次配置完毕所有的副本集分片
5.查看副本集成员状态:
rs.status()
查看当前副本集的主节点和从节点
三.安装配置服务器:
1.解压安装包到安装路径下,重命名为mongodb
2.新建启动配置文件mongodb.conf,内容如下:
port = 21000 #进程端口 dbpath = /data/joygames/mongodb/config_server #数据库路径 logpath = /data/joygames/mongodb/log/mongodb.log #日志文件路径 logappend = true oplogSize = 1024 fork = true pidfilepath = /data/joygames/mongodb/mongodb.pid
启动配置服务器:
mongod --configsvr --keyFile /data/joygames/mongodb/keyfile -f /data/joygames/mongodb/mongodb.conf
根据实际情况配置服务器的数目
四.安装路由服务器:
1.解压安装包到安装路径下,重命名为mongodb
2.新建启动配置文件mongos.conf,内容如下:
port = 22000 #进程端口 logpath=/data/joygames/mongodb/log/mongos.log #进程的日志文件 logappend = true fork = true pidfilepath = /data/joygames/mongodb/mongos.pid configdb=10.165.94.154:21000,10.165.94.221:21000,10.165.94.131:21000 #所有配置服务器的IP和端口
3.开启mongos进程:
mongos --chunkSize 1 --keyFile /data/joygames/mongodb/keyfile -f /data/joygames/mongodb/mongos.conf
4.添加分片:
mongo 127.0.0.1:22000/admin
添加三个分片:
db.runCommand({"addShard":"gwlm/10.165.94.176:21000,10.25.31.212:21000,10.25.32.48:21000"})
db.runCommand({"addShard":"gwlm2/10.165.95.215:21000,10.25.44.219:21000,10.25.31.235:21000"})
db.runCommand({"addShard":"gwlm3/10.165.95.106:21000,10.25.31.230:21000,10.165.94.244:21000"})
查看分片情况:
db.runCommand({listshards:1})
对某个库开启分片功能:
use mydb
db.runCommand({"enablesharding":"mydb"})
db.runCommand({"shardcollection":"mydb.person","key":{_id:'hashed'}})
for(var i=0;i<100000;i++){db.person.insert({name:"bluejoe"+i});}
查看分片情况:
db.printShardingStatus()
五.认证
所有的mongodb服务都使用keyfile文件认证
建立管理账号
登陆到mongos:
mongos 127.0.0.1:22000
use admin
db.createUser( { user: "gwlm",
pwd: "gwlm_2016",
roles: [ "clusterAdmin","userAdminAnyDatabase","dbAdminAnyDatabase","readWriteAnyDatabase" ] } )
db.auth(“gwlm”,”gwlm_2016”)
重新登陆mongos:
mongo 127.0.0.1/admin -u gwlm -p gwlm_2016