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()

 

                   

原文地址:https://www.cnblogs.com/lucyawei/p/3054979.html