第一点:进程管理
查看当前的mongo进程
ps -ax | grep mongod
高可用,可以通过起多个连接
#这个会起一个前台的服务,当在控制台取消后会关闭连接
sudo mongod --dbpath /srv/data --port 27018
#这个会起一个后台的服务,会返回一个进程ID
sudo mongod --fork --logpath /var/log/mongodb.log --dbpath /srv/data --port 27018
#关闭进程,加入进程ID,可以杀掉进程 sudo kill 进程ID
连接新加入的进程
mongo --port 28018
连接mongo后,可以通过命令查看当前的连接信息
db.serverCmdLineOpts()
连接到mongo后,想关闭mongo服务
#切换到admin数据库
use admin
#关闭服务
db.shutdownServer()
也可以在命令行中关闭mongodb服务
sudo mongod --shutdown --dbpath /srv/data
第二点:mongodb监控
进入至mongod命令中
#返回JSON数据,包括所有的数据(包括pid/内存/网络/连接数据等)
db.runCommand({serverStatus:1})
#返回pid
db.runCommand({serverStatus:1}).pid
#查看内存
db.runCommand({serverStatus:1}).mem
#查看extra,其中"page_faults"越小越好,值大说明更慢
db.runCommand({serverStatus:1}).extra_info
#查看网络
db.rumCommand({serverStatus:1}).network
#查看连接数
db.runCommand({serverStatus:1}).connections
mongodb 性能
打开profile
#全部记录 db.runCommand({profile:-1}) #慢于多少毫秒的查询才记录 db.runCommand({profile:1}) # db.runCommand({profile:2}) #关闭profile db.runCommand({profile:0})
查看profile
#找出所有profile
db.system.profile.find()
#找出查询时间大于1毫秒
db.system.profile.find({millis:{$gt:1}},{millis:1,opt:1,query:1,ns:1})
第三点:Replication
启动服务
sudo mongod --fork --logpath:/var/log/mongodb1.log --dbpath /srv/data1 --port 27018 --replSet "wes" sudo mongod --fork --logpath:/var/log/mongodb2.log --dbpath /srv/data2 --port 27019 --replSet "wes" sudo mongod --fork --logpath:/var/log/mongodb3.log --dbpath /srv/data3 --port 27020 --replSet "wes"
连接其中一个进程
mongo --port 27018
初始化复制集
rs.initiate()
查看状态
rs.status()
可以在某个结点,使用db.shutdownServer()来模拟服务器down掉的情况,再连接其他的节点,发现可以正常连接到,且会生成一个新的主节点
再新加一个节点,先启动一个节点
sudo mongod --fork --logpath:/var/log/mongodb4.log --dbpath /srv/data4 --port 27021 --replSet "wes"
连接一个现有集群中的节点
#此时还没有加入到集群中 rs.status() #加入新节点 rs.add("rs.mongoserver:27021")
第四点:Sharding技术
创建sharding服务器
启动一个服务,与普通的服务一致,只是加多一个参数--configsvr,指定它是一个配置服务器
sudo mongod --fork --configsvr --logpath:/var/log/configsvr1.log --dbpath /srv/configsvr1 --port 27022
启动一个mongos服务,请注意是mongos,指定configdb是本机,指定mongos的端口,并指定config Server地址,启动后,就类似于一个普通的mongodb服务,也可以连接的
sudo mongos --fork --configdb 127.0.0.1:27022 --port 27023 --logpath /var/log/mongos.log
#直接连接上面的mongos,指示符会是mongos
mongo --port 27023
关于mongos的服务器,我们还需要加入普通的数据库(作为节点)
sudo mongod --fork --logpath:/var/log/shard1.log --dbpath /srv/shard1 --port 27024 sudo mongod --fork --logpath:/var/log/shard2.log --dbpath /srv/shard2 --port 27025
连接至router server,然后,加入
mongo --port 27021
第五点: