zoukankan      html  css  js  c++  java
  • Mongodb 学习笔记6:管理以管理员角度来看mongodb

    启动和停止MongoDB

    1、从命令行启动:从mongod启动。前面已经介绍过了。通过mongod --help可以查看其它的配置。

    2、配置文件:通过-f 或者--config 指定配置文件。

    >mongod  --config ~/.mongodb.conf

    配置文件:

    #Start MongoDB as a daemon on port 5586

    port=5586

    fork=true

    logpath=mongodb.log

    3、停止mongodb:

    • 服务器作为前台进程运行早终端——ctrl-c
    • kill -2 10014(PID)、kill 10014
    • db.shutdownServer();

    监控

    • http监视器:其端口号比主端口号大1000;可以看到断言、锁、索引和复杂等相关信息。
    • serverStatus:

    输入以下命令:

    >db.serverStatus()

      这个函数可以获取到mongodb的服务器统计信息,其中包括 :全局锁,索引,用户操作行为等等这些统计信息,对管理员来说非常重要。

    • mongostat——输出一些serverStatus提供的重要信息。每秒钟输出新的一行。


    安全和认证——用户认证

    采用addUser添加用户,其中在admin数据库下添加的用户视为超级用户(即管理员)。

    在开启安全检查之前,一定要至少有一个管理员账号。没有开启安全检查之前,可以对所有数据库调用addUser。

    addUser不仅可以添加用户,还能修改用户口令和读写状态。

    重启服务器,加入--auth命令,开启安全检查。

    如下图:第一次连接的时候,不能对test数据库执行任何操作。

    test_user 不能使用show dbs ,只有管理员root认证之后,才能对所有数据库执行任意操作。

    认证原理:

    数据库的用户账号以文档的形式存在system.users集合中。文档结构如下:

    删除用户:


    备份和恢复

    • 直接复制

    在服务器运行的情况下直接copy是很有风险的,可能copy出来时,数据已经遭到破坏,唯一能保证的就是要暂时关闭下服务器,copy完后重开。

    •  mongodump和mongoretore

     这个是mongo给我们提供的内置工具,很好用,能保证在不关闭服务器的情况下copy数据。

    D盘建立一个backup文件夹用于存放test数据库。 

     

     

     mongorestore 恢复,它是不用关闭机器的。 drop选项,将test数据恢复之前先删除原有数据库里面的数据,可以通过help查看。

     

    •  主从复制(以后介绍)
    • fsync 和锁

    fsync命令强制服务器将所有缓存区写人磁盘,还可以通过上锁阻止对数据库的进一步写人,直到释放锁为止。

    fsync+ lock首先会把缓冲区数据暴力刷入硬盘,然后给数据库一个写入锁,其他实例的写入操作全部被阻塞,直到fsync

    +lock释放锁为止。

     加锁:    db.runCommand({"fsync":1,"lock":1})

     释放锁: db.$cmd.unlock.findOne()

    • 修复

    当机器出故障,又恰巧没有备份时,mongodb内置的数据修复功能会试着恢复损坏的数据文件。

    未能正常停止mongodb应修复数据库。

    >mongod --repair

    其过程很简单:将所有文档导出然后马上导入,忽略无效文档。完成之后,重建新的索引。

    修复运行中的服务器上的数据库,要在shell中用repairDatabase。

    >db.repairDatabase()

     

                       

  • 相关阅读:
    UITableViewCell分隔线
    Swift:Debug和Release状态下错误输出
    开发中遇到的那些坑
    code sign error 1
    Xcode头文件加锁
    UIPageControl显示图片
    关于RTKLIB资料整理和学习
    I2C中24C02从地址设置
    从库函数操作RCC的流程来理解偏移变量
    对于STM32别名区的理解 (转载)
  • 原文地址:https://www.cnblogs.com/lucyawei/p/3054979.html
Copyright © 2011-2022 走看看