NoSql之Mongodb日常操作命令整理

1、db.serverStatus()  看看分片性能信息

db.serverStatus().connections;分片查看客户端连接数,mongod和mongos的连接属于长连接

"connections" : {
                "current" : 737, --当前活动连接量。连接到server的当前活跃连接数目
                "available" : 82 --剩余空闲连接量。剩余的可用连接数目
        },

db.serverStatus().mem  查看分片内存情况

"mem" : {
                "bits" : 64, --64位机器
                "resident" : 18363, --占用物理内存量。
                "virtual" : 478810, --占用的虚拟内存量
                "supported" : true, --是否支持扩展内存
                "mapped" : 233311, --映射到内存的数据文件大小,很接近于你的所有数据库大小。
                "mappedWithJournal" : 466622,
                "note" : "virtual minus mapped is large. could indicate a memory leak"
        },

2、mongod 和mongos 登录方式,注意管理数据库要用mongo客户端登录管理

/usr/local/bin/mongo localhost:port

/usr/local/bin/mongo 10.20.25.48:10001

/usr/local/bin/mongo  10.20.25.48:27017/admin -uroot -p123456

3、查看集群中,个分片平均分布情况

sh.status()

结果如下

dbname.tablename

shard key: { "_id" : "hashed" }

chunks:

s2      16

s1      13

s3      14

too many chunks to print, use verbose if you want to force print

4、查看分片mongo性能

mongostat -h 10.20.25.48 --port 27017 -uroot -p123456  -n 100  20

mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。

mongostat命令格式,当然也可以加参数:

在第一个例子中,mongostat将返回数据的每一秒,持续20秒。 mongostat收集数据的mongod实例上运行的本地主机接口端口27017。以下所有调用产生相同的行为:

mongostat -rowcount 20 1

mongostat -rowcount 20

mongostat -N 20 1

mongostat -N 20

在下面的例子中,mongostat返回的数据每5分钟(300秒),只要在程序运行。 mongostat收集数据的mongod实例上运行的本地主机接口端口27017。以下两种调用产生相同的行为。

mongostat - rowcount 0 300

mongostat -N 0 300

mongostat 300

在下面的例子中,mongostat返回的数据每5分钟一个小时(12次)。mongostat收集数据的mongod实例上运行的本地主机接口端口27017。以下两种调用产生相同的行为。

mongostat -rowcount 12 300

mongostat -N 12 300

在许多情况下,使用 -discover将帮助整组机器的状态,提供更完整的快照。如果Mongos的过程中,连接到一个片式集群上运行在本地机器上的端口27017,你可以使用下面的形式从群集中的所有成员返回统计:

mongostat -discover

以上参考文档:http://cn.docs.mongodb.org/manual/reference/mongostat/

主要详细说明一下各列的意义(也可以参考./mongostat --help)

insert:     一秒内的插入数

query :     一秒内的查询数

update:     一秒内的更新数

delete:     一秒内的删除数

10条简单的查询可能比一条复杂的查询速度还快, 所以数值的大小,意义并不大。

但至少可以知道,现在是否在处理查询,是否在插入。

如果是slave,数值前往往有一个*, 代表是replicate操作

getmore:    查询时游标(cursor)的getmore操作

用处不大

www.2cto.com

command:    一秒内执行的命令数

比如批量插入,只认为是一条命令。 意义不大。

如果是slave,会显示两个值, local|replicated,通过这两个数值的比较,或许可以看出点问题。

flushes:    一秒内flush的次数

一般都是0,或者1,通过计算两个1之间的间隔时间,可以大致了解多长时间flush一次。

flush开销是很大的,如果频繁的flush,可能就要找找原因了。

mapped:

vsize:

res:

这个和你用top看到的一样,mapped, vsize一般不会有大的变动, res会慢慢的上升,如果res经常突然下降,去查查是否有别的程序狂吃内存。

faults:

别被这个名字吓着,大压力下这个数值往往不为0。如果经常不为0,那就该加内存了。

locked:

MongoDB就一把读写锁,这里指的是写锁所住的时间百分比。这个数值过大(经常超过10%),那就是出状况了。

idx miss:

非常重要的参数, 正常情况下,所有的查询都应该通过索引,也就是idx miss为0。如果这里数值较大,是不是缺少索引。

qr|qw: queue lengths for clients waiting (read|write)

ar|aw: active clients (read|write)

如果这两个数值很大,那么就是DB被堵住了,DB的处理速度不及请求速度。

看看是否有开销很大的慢查询。如果查询一切正常,确实是负载很大,就需要加机器了。

netIn: network traffic in - bits

netOut: network traffic out - bits

网络带宽压力,一般MongoDB,网络不会成为瓶颈

conn: number of open connections

MongoDB为每一个连接创建一个线程,线程的创建和释放也是有开销的。尽量不要让这个数值很大。

repl: 服务器当前状态

M   - master

SEC - secondary

REC - recovering

UNK - unknown

SLV - slave

time: 当前时间

如果在windows下的cmd窗口中执行mongostat命令时,可能由于窗口太窄,监控数据排列较乱而阻碍视觉的情况,大家可以把结果输出到一个txt文件中,然后去查看这个文件,办法是曲折了一些哈哈。

E:\mongodb-win32-x86_64-2.2.1\bin\mongostat -n 2 > E:\test.txt

打印2行结果到E盘的跟目录下的test.txt中。

5、查看mongo  TCP连接IP 排序

netstat -ant|awk ‘{print $5}‘ |awk -F: ‘{print $1}‘|sort |uniq -c|sort -rn

6、mongo简单分片备份

/home/mongodb/bin/mongodump  -h192.168.0.15:50001  -u username  -p 123456 --authenticationDatabase admin   -d dbname -o  /home/data/dbbackup/

7、db.status() 查看分片集群状态

8、待续

时间: 2024-11-05 11:17:15

NoSql之Mongodb日常操作命令整理的相关文章

Mongodb日常运维操作命令

本文源链接地址:https:www.93bok.com 一.启动和终止 1.正常启动 systemctl start mongodb 2.以修复模式启动 mongod -f /etc/mongodb/mongodb.conf 3.停止修复模式 > use admin > db.shutdownServer() 4.关闭mongodb服务 systemctl stop mongodb 二.登录和退出 1.登录 mongo 命令直接加MongoDB服务器的IP地址就可以利用 Mongo 的默认端口

nosql数据库MongoDB的用法

MongoDB常用命令 1.启动命令 mongod 启动数据库进程 --dbpath 制定数据库的目录 --port 制定数据库的端口,默认是27017 --bind_ip 绑定IP --directoryperdb 为每个db创建一个独立子目录 --logpath 制定日志存放目录 --logappend 指定日志生成方式(追加/覆盖) 例如:mongod --dbpath db --port 27098 --directoryperdb --logpath db\logs\mongodb.l

shell日常使用整理

基本常识 1.变量命名规则: 首字符必须为字母 中间不能有空格,可以有下划线_ 不能使用标点符号 不能使用bash里的关键字 2.变量赋值: 变量名=值, (注意,= 两边不能有空格) var=1var=$var+1 echo $var+1输出为1+1,而不是2 可以用如下方法使其输出为2let "var+=1"#var=$[$var+1]#var=$(($var+1)) echo $var 或者var=1var= expr $var + 1 #(注意,+ 两边的空格,一定要有) le

Linux系统安装NoSQL(MongoDB和Redis)步骤及问题解决办法

?更多技术干货请戳:听云博客 如下是我工作中的记录,介绍的是linux系统下NoSQL:MongoDB和Redis的安装过程和遇到的问题以及解决办法: 需要的朋友可以按照如下步骤进行安装,可以快速安装MongoDB和Redis,希望可以帮助大家:)! 一.MongoDB 1.MongoDB安装 (1)将安装包mongodb-linux-i686-3.0.2.tgz拷贝到要安装的服务器中 这里我用的rz命令,如果不支持需要安装yum -y install lrzsz (2)解压安装程序 tar x

MongoDB基本操作命令大全

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.MongoDB的操作和mysql中的操作很相像,使用过mysql的人群也能很快的适应MongoDB中的操作. mongo进入数据库后show dbs; //查看当前存在的数据库 use school; //当school数据库存在时是使用该数据库,不存在则创建,但是不进行任何操作,不保存该数据库 show tables;show collections;两条都是查询所在数据库的集合 db.

MongoDB基本操作命令

由于工作需要,笔者这两天使用了一下MongoDB.真的很不习惯!但是确实好用,命令比mysql和sqlserver简单很多.在这里整理一些MongoDB的基本操作命令分享出来. 客户端的安装就不说了,笔者是shell通过服务器连接的MongoDB进行操作的,直接进入正题. show dbs:显示数据库列表 show collections:显示当前数据库中的集合(类似关系数据库中的表) show users:显示用户 use <db name>:切换当前数据库,这和MS-SQL里面的意思一样 

使用NOSQL的MongoDB时建立索引需要注意的几点建议和Explain优化分析

第一,MongoDB索引和MySQL索引非常相似并且对于MySQL的索引优化有很多也适用于MongoDB. 第二,更重要的是,这些索引的建立对你的应用提高也是有限的. 对于应用的最佳索引策略应该基于很多的重要因素.包含了你期望查询的类型, 数据读取与写入的比率,甚至于你服务器的空闲内存.意思就是, 需要对线上的产品做很多的测试剖析工作,才能调整出最佳的索引策略. 没有什么好的方法可以替代实际经验的. 索引策略 下面有些索引的基本法则 创建的索引要匹配查询. 如果你仅仅要查询单个字段.索引这个字段

MongoDB常用操作命令大全

成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作.输入help可以看到基本操作命令,只是MongoDB没有创建数据库的命令,但有类似的命令 如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库. 一.数据库常用命令1.Help查看命令提示 复制代码 代码如下: helpdb.help();db.yourCo

Nosql and Mongodb 介绍

Nosql兴起的背景: 1)web2.0兴起(高交互性),传统的关系型数据库为了保证"通用性"的设计而带来 了功能复杂,性能开销大,和价格昂贵的问题. 2)避免不必要的复杂性 3)更高的吞吐量和高并发 4)在商用硬件上的水平扩展能力 5)Nosql实现大表自动切割,更有利于支持分布式处理 6)在性能和安全方面做了折中(有时不需要sql的很高的安全性) 7)云计算的需求(从中心模式转到分布模式) 各种主流Nosql数据库:                 1)memcached数据库:m