• 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

    第五点:

  • 相关阅读:
    Path类
    C#集合
    阿里巴巴2013年实习生笔试题B
    阿里巴巴2013年实习生笔试题A
    腾讯2014年校园招聘笔试试题
    腾讯技术类校园招聘笔试试题
    腾讯2013年实习生笔试题
    腾讯2012年实习生笔试题
    hdu1505
    hdu1506
  • 原文地址:https://www.cnblogs.com/weschen/p/7395840.html
Copyright © 2020-2023  润新知