集团高端网站建设,h5网页制作素材,seo技术有哪些,网站icp备案需要多久文章目录 mongodb 分片部署二进制安装三台config 配置shard 分片安装shard1 安装shard2 安装shard3 安装mongos 安装数据库、集合启用分片创建集群认证文件创建集群用户部署常见问题 mongodb 分片部署
二进制安装
mkdir -p /data/mongodb
tar xvf mongodb-linux-x86_64-rhel7… 文章目录 mongodb 分片部署二进制安装三台config 配置shard 分片安装shard1 安装shard2 安装shard3 安装mongos 安装数据库、集合启用分片创建集群认证文件创建集群用户部署常见问题 mongodb 分片部署
二进制安装
mkdir -p /data/mongodb
tar xvf mongodb-linux-x86_64-rhel70-3.6.17.tgz
mv mongodb-linux-x86_64-rhel70-3.6.17/* /data/mongodb
#设置环境变量
echo export PATH$PATH:/data/mongodb/bin .bash_profile
source .bash_profile三台config 配置
#三台配置一致
mkdir -p /data/mongodb/config
mkdir -p /data/mongodb/config/logs/
mkdir -p /data/mongodb/config/pid/
mkdir -p /etc/mongodb/cat //etc/mongodb/config.conf EOF
dbpath/data/mongodb/config
logpath/data/mongodb/config/logs/config.log
pidfilepath/data/mongodb/config/pid/config.pid
logappendtrue
bind_ip0.0.0.0
port27100
forktrue
configsvrtrue
replSetconfigs
EOF#三台启动config
mongod -f /etc/mongodb/config.confconfig 初始化任意一台执行
mongo --port 27100
use admin
config {_id : configs,members : [{_id : 0, host : 192.168.221.173:27100 },{_id : 1, host : 192.168.221.174:27100 },{_id : 2, host : 192.168.221.175:27100 }]
}
rs.initiate(config)shard 分片安装
shard1 安装
3台服务器添加配置
configdb为config服务地址192.168.221.173、192.168.221.174、192.168.221.175分别替换为3台机器的IP地址/data根据实际情况修改为数据盘路径。3台服务器分别添加配置文件
#三台配置一致
mkdir -p /data/mongodb/shard1/data
mkdir -p /data/mongodb/shard1/logs/
mkdir -p /data/mongodb/shard1/pid/ cat /etc/mongodb/shard1.conf EOF
dbpath/data/mongodb/shard1/data
logpath/data/mongodb/shard1/logs/shard1.log
pidfilepath/data/mongodb/shard1/pid/shard1.pid
directoryperdbtrue
logappendtrue
replSetshard1
bind_ip0.0.0.0
port27001
forktrue
shardsvrtrue
EOF
#3台服务器分别启动服务
mongod -f /etc/mongodb/shard1.confshard1 初始化
连接任意一台非“arbiterOnly: true”节点shard1192.168.221.173、192.168.221.174、192.168.221.175分别替换为3台机器的IP地址建议节点1执行
mongo --port 27001
use admin
config {_id : shard1,members : [{_id : 0, host : 192.168.221.173:27001 },{_id : 1, host : 192.168.221.174:27001 },{_id : 2, host : 192.168.221.175:27001, arbiterOnly: true }]}
rs.initiate(config);shard2 安装
3台服务器分别添加配置文件
mkdir -p /data/mongodb/shard2/data
mkdir -p /data/mongodb/shard2/logs/
mkdir -p /data/mongodb/shard2/pid/
cat /etc/mongodb/shard2.conf EOF
dbpath/data/mongodb/shard2/data
logpath/data/mongodb/shard2/logs/shard2.log
pidfilepath/data/mongodb/shard2/pid/shard2.pid
directoryperdbtrue
logappendtrue
replSetshard2
bind_ip0.0.0.0
port27002
forktrue
shardsvrtrue
EOF
#3台服务器分别启动服务
mongod -f /etc/mongodb/shard2.confshard2初始化,
连接任意一台非“arbiterOnly: true”节点shard2192.168.221.173、192.168.221.174、192.168.221.175分别替换为3台机器的IP地址建议节点1执行
mongo --port 27002
use admin
config {_id : shard2,members : [{_id : 0, host : 192.168.221.173:27002 },{_id : 1, host : 192.168.221.174:27002, arbiterOnly: true },{_id : 2, host : 192.168.221.175:27002 }]}
rs.initiate(config);shard3 安装
3台服务器分别添加配置文件
mkdir -p /data/mongodb/shard3/data/
mkdir -p /data/mongodb/shard3/logs/
mkdir -p /data/mongodb/shard3/pid/cat /etc/mongodb/shard3.conf EOF
dbpath/data/mongodb/shard3/data
logpath/data/mongodb/shard3/logs/shard3.log
pidfilepath/data/mongodb/shard3/pid/shard3.pid
directoryperdbtrue
logappendtrue
replSetshard3
bind_ip0.0.0.0
port27003
forktrue
shardsvrtrue
EOF
#3台服务器分别启动服务
mongod -f /etc/mongodb/shard3.confshard3 初始化,
连接任意一台非“arbiterOnly: true”节点shard3192.168.221.173、192.168.221.174、192.168.221.175分别替换为3台机器的IP地址建议节点1执行
mongo --port 27003
use admin
config {_id : shard3,members : [{_id : 0, host : 192.168.221.173:27003 },{_id : 1, host : 192.168.221.174:27003 },{_id : 2, host : 192.168.221.175:27003, arbiterOnly: true }]}
rs.initiate(config);mongos 安装
3台服务器分别添加配置文件
mkdir -p /data/mongodb/mongos/pid/
mkdir -p /data/mongodb/mongos/logs/cat /etc/mongodb/mongos.conf EOF
#configdb为config服务地址
configdbconfigs/192.168.221.173:27100,192.168.221.174:27100,192.168.221.175:27100
pidfilepath/data/mongodb/mongos/pid/mongos.pid
logpath/data/mongodb/mongos/logs/mongos.log
bind_ip0.0.0.0
port30000
logappendtrue
forktrue
EOF#3台服务器启动mongos
mongos -f /etc/mongodb/mongos.conf配置分片
任意一台服务器连接192.168.221.173、192.168.221.174、192.168.221.175分别替换为3台机器的IP地址
mongo --port 30000
use admin
#添加shard
sh.addShard(shard1/192.168.221.173:27001,192.168.221.174:27001,192.168.221.175:27001)
sh.addShard(shard2/192.168.221.173:27002,192.168.221.174:27002,192.168.221.175:27002)
sh.addShard(shard3/192.168.221.173:27003,192.168.221.174:27003,192.168.221.175:27003)
#查看分片状态
sh.status() 这是一个MongoDB的分片状态信息。让我来解释一下每个部分的含义1. sharding version这是分片的版本信息。当前的版本是6最小兼容版本是5。
2. shards这里列出了所有的分片信息。每个分片有一个唯一的_id以及它的host主机和state状态。这些信息指示了每个分片所在的主机和它们的状态。
3. active mongoses这里显示了当前活动的mongos进程的数量和版本号。mongos是MongoDB的路由进程用于处理客户端请求并将它们路由到正确的分片。
4. autosplit这个字段指示是否启用了自动分片功能。在这个例子中自动分片是启用的。
5. balancer这个字段显示了均衡器balancer的状态。它指示均衡器是否启用以及它是否正在运行。还显示了最近5次均衡尝试中失败的次数。
6. databases这里列出了所有的数据库信息。每个数据库有一个_id和它的primary主节点还指示了该数据库是否进行了分片。
数据库、集合启用分片
mongo --port 30000
use admin
#这条命令表示启用分片功能针对的数据库为 rabbitpre_app。
db.runCommand({enablesharding:rabbitpre_app});#这条命令表示对 rabbitpre_app 数据库中的 t_page_component 集合进行分片使用 appId 作为散列键hashed实际数据分布会根据 appId 的散列值进行分片。
db.runCommand( {shardcollection : rabbitpre_app.t_page_component,key : { appId : hashed }} )
#
use rabbitpre_app
#这条命令表示获取 rabbitpre_app 数据库中 t_page_component 集合的统计信息例如集合的大小、索引大小、数据条数等。
db.t_page_component.stats();创建集群认证文件
创建集群认证文件(三台执行)
openssl rand -base64 512 keyfile.file
#将keyfile.file拷贝到3台服务的/etc/mongodb目录并设置权限
chmod 600 /etc/mongodb/keyfile.file
在shard、config添加如下配置(三台)
$ cat /etc/mongodb/shard1.conf EOF
authtrue
keyFile/etc/mongodb/keyfile.file
EOF$ cat /etc/mongodb/shard2.conf EOF
authtrue
keyFile/etc/mongodb/keyfile.file
EOF$ cat /etc/mongodb/shard3.conf EOF
authtrue
keyFile/etc/mongodb/keyfile.file
EOF$ cat /etc/mongodb/config.conf EOF
authtrue
keyFile/etc/mongodb/keyfile.file
EOF在mongos添加如下配置三台
echo keyFile/etc/mongodb/keyfile.file /etc/mongodb/mongos.conf创建集群用户
#创建用户更新用户密码设置为符合安全要求的密码
db.createUser({ user: admin, pwd:密码, roles:[{role:root,db:admin}]})
db.createUser({user:rwuser,pwd:密码, roles:[{role:readWriteAnyDatabase,db:admin}]})db.updateUser(rwuser,{pwd:密码,roles:[{role:readWrite,db:admin}]})
#Roles角色说明
read允许用户读取指定数据库
readWrite允许用户读写指定数据库
dbAdmin允许用户在指定数据库中执行管理函数如索引创建、删除查看统计或访问system.profile
userAdmin允许用户向system.users集合写入可以找指定数据库里创建、删除和管理用户
clusterAdmin只在admin数据库中可用赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase只在admin数据库中可用赋予用户所有数据库的读权限
readWriteAnyDatabase只在admin数据库中可用赋予用户所有数据库的读写权限
userAdminAnyDatabase只在admin数据库中可用赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase只在admin数据库中可用赋予用户所有数据库的dbAdmin权限。
root只在admin数据库中可用。超级账号超级权限部署常见问题
Error initializing sharding state, sleeping for 2 seconds and trying again :: caused by :: NetworkInterfaceExceededTimeLimit: Error loading clusterID :: caused by :: Operation timed out
查看防火墙是否关闭
关闭防火墙问题解决