mongodb管理

第一点:进程管理

查看当前的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

第五点:

猜你喜欢

转载自www.cnblogs.com/weschen/p/7395840.html