博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mongodb 数据库管理
阅读量:4207 次
发布时间:2019-05-26

本文共 3534 字,大约阅读时间需要 11 分钟。

1.监控

1.serverStatus获取运行中的MongoDB服务器统计信息

db.runCommand({
"serverStatus":1})

2.mongostat 每秒更新一次

mongostat -u "username" -p "password" --authenticationDatabase dbname

输出

insert query update delete getmore command dirty used flushes vsize   res qrw arw net_in net_out conn                time    *0    *0     *0     *0       0     2|0  0.0% 0.0%       0  258M 10.0M 0|0 0|0   178b   51.7k    2 May  6 11:26:10.924    *0    *0     *0     *0       0     1|0  0.0% 0.0%       0  258M 10.0M 0|0 0|0   149b   43.5k    2 May  6 11:26:11.979    *0    *0     *0     *0       0     1|0  0.0% 0.0%       0  258M 10.0M 0|0 0|0   155b   45.3k    2 May  6 11:26:12.992    *0    *0     *0     *0       0     2|0  0.0% 0.0%       0  258M 10.0M 0|0 0|0   169b   49.1k    2 May  6 11:26:13.925

2. 安全和认证

创建用户

db.createUser({     user: "
", pwd: "
", customData: {
}, roles: [ { role: "
", db: "
" } | "
", ... ]},writeConcern)

user字段,为新用户的名字

pwd字段,用户的密码
cusomData字段,为任意内容,例如可以为用户全名介绍
roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色
在roles字段,可以指定内置角色用户定义的角色

Built-In Roles(内置角色):

1. 数据库用户角色:read、readWrite;        2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;        3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;        4. 备份恢复角色:backup、restore;        5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase        6. 超级用户角色:root          // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)        7. 内部角色:__system

角色权限介绍

Read:允许用户读取指定数据库        readWrite:允许用户读写指定数据库        dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile        userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户        clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。        readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限        readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限        userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限        dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。        root:只在admin数据库中可用。超级账号,超级权限

writeConcern文档(官方说明)

w选项:允许的值分别是 1、0、大于1的值、"majority"、
; j选项:确保mongod实例写数据到磁盘上的journal(日志),这可以确保mongd以外关闭不会丢失数据。设置true启用。 wtimeout:指定一个时间限制,以毫秒为单位。wtimeout只适用于w值大于1。

exp:

db.createUser({    user:"root",    pwd:"root",    roles:[{role:"root",db:"admin"}]})db.createUser({    user:"hqq",    pwd:"hqq",    roles:[{role:"readWrite",db:"hqq"}]})

创建好后开启auth重启启动服务即可

3.备份和修复

mongodump 可以在运行时备份

mongodump -h dbhost -d dbname -o dbdirectory

-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017

-d:需要备份的数据库实例,例如:test
-o:备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

mongodump -u "hqq" -p "hqq" -d hqq -o F:\Mongodb\backup

mongorestore 从备份中恢复数据

mongorestore -h dbhost -d dbname --directoryperdb dbdirectory

-h:MongoDB所在服务器地址

-d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
–directoryperdb:备份数据所在位置,例如:c:\data\dump\test,这里为什么要多加一个test,而不是备份时候的dump,读者自己查看提示吧!
–drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!

mongorestore -u "root" -p "root" -d admin --drop F:\Mongodb\backup\hqq\

fsync 可以在运行时备份数据且不损坏数据

//加锁> db.runCommand({
"fsync":1,"lock":1}){ "info" : "now locked against writes, use db.fsyncUnlock() to unlock", "lockCount" : NumberLong(1), "seeAlso" : "http://dochub.mongodb.org/core/fsynccommand", "ok" : 1}//备份..//解锁> db.$cmd.sys.unlock.findOne(){ "info" : "fsyncUnlock completed", "lockCount" : NumberLong(0), "ok" : 1 }

修复数据库

db.repairDatabase()

转载地址:http://qaqli.baihongyu.com/

你可能感兴趣的文章
【一天一道LeetCode】#114. Flatten Binary Tree to Linked List
查看>>
【unix网络编程第三版】阅读笔记(二):套接字编程简介
查看>>
【一天一道LeetCode】#115. Distinct Subsequences
查看>>
【一天一道LeetCode】#116. Populating Next Right Pointers in Each Node
查看>>
【一天一道LeetCode】#117. Populating Next Right Pointers in Each Node II
查看>>
【一天一道LeetCode】#118. Pascal's Triangle
查看>>
【一天一道LeetCode】#119. Pascal's Triangle II
查看>>
【unix网络编程第三版】ubuntu端口占用问题
查看>>
【一天一道LeetCode】#120. Triangle
查看>>
【unix网络编程第三版】阅读笔记(三):基本套接字编程
查看>>
同步与异步的区别
查看>>
IT行业--简历模板及就业秘籍
查看>>
JNI简介及实例
查看>>
DOM4J使用教程
查看>>
JAVA实现文件树
查看>>
linux -8 Linux磁盘与文件系统的管理
查看>>
linux 9 -文件系统的压缩与打包 -dump
查看>>
PHP在变量前面加&是什么意思?
查看>>
ebay api - GetUserDisputes 函数
查看>>
ebay api GetMyMessages 函数
查看>>