mongo数据库工具

mongo数据库工具

mongo提供的方法

mongostat实时检测mongod的当前运行状态

  • 命令: mongostat -h 127.0.0.1:27017 -u liebao -p liebao
  • dirty脏数据 used使用率
  • flushes异步写入的次数
  • vsize虚拟内存使用 res物理内存使用
  • qrw等待读写队列 arw激活读写操作数量
  • net_in数据库收到的网络请求 net_out数据库发送的网络请求 conn打开的连接数 time 时间

mongotop 提供实时跟踪每个集合的统计数据

  • 命令:mongotop -h 127.0.0.1:27017 -u liebao -p liebao
  • ns数据库集合的命名空间
  • total在这个命令空间所以操作花费总时间、
  • read在这个命令空间上mongod执行读操作花费的时间
  • write在这个命令空间上mongod执行读操作花费的时间
  • 当前时间

指令方法

profile设置步骤

  • (1)db.setProfilingLevel(n) 0:默认关闭 1:设置间隔时间 2:设置全部,在全部的情况下,systemprofile会比较大有一定的性能消 耗,所以需要设置慢请求:只显示>1000ms的操作,即:db.setProfilingLevel(1,1000)
  • (2)在system.profile库查找,比如说最近3条:db.system.profile.find().sort({“ts”:-1}).limit(3)
  • (3)查看keysExamined:所扫描的索引键记录数、docsExamined、nreturned:返回的文档数、responseLength:返回结果集的大小

检测数据库和字段大小

  • 检测数据库的大小、某文档的所有字段大小:python cal_db_size.py 方法和下面这个类似len(bson.BSON.encode(db.col.findOne({id:xxxx})))
  • 或者直接mongo客户端输入:Object.bsonsize(db.col.findOne({_id: x1}))

db.stats()获取当前数据库的信息

  • db名字
  • collections文档数量
  • indexSize索引大小
  • indexNum索引数量
  • dataSize数据大小
  • storageSize占用磁盘大小。

db.serverStatus() 针对全库级别的命令

  • host:名字、version:版本、pid:进程id、mem:内存信息、locks:锁信息、storage磁盘信息
  • totalIndexSize:索引总大小
  • opcounters:操作计数器(insert query update delete getmore command索引操作总数)
  • conntections:连接数(当前数、可连接数、创建数)
  • network网络具体:“bytesIn”: 3745554, “bytesOut”: 6255104等
  • wireTiger:存储引擎具体信息包括cache、conntection、cursor、log、lock、session等
  • metircs里面包括commands 显示了每条命令的使用总次数和失败次数
  • document文档数:(insert数 update数 delete数 return数)
  • indexCounters索引计数器:访问次数 miss次数 命中次数 重置次数 miss率

db.col.stats() 针对当前col集合的状态命令

  • ns:集合的命名空间、size:大小、
  • count:文档数量、avgObjSize:平均每个文档的大小、totalIndexSize:索引总大小
  • wireTiger:存储引擎具体信息包括cache、conntection、cursor、btree、session等
    (wiredTiger[“block-manager”][“file bytes available for reuse”] 能隔预估compact能回收多少空间)
  • nindexes:几个索引
  • indexSizes: {…} 索引具体内容
  • 如果只看某个文档的某个参数可以用:db.col.dataSize()数据大小 totalSize()总大小 totalIndexSize()索引总大小 storageSize()存盘大小

查看当前执行操作

  • 如果当前数据库被某指令(如查找)卡住了,需要运行db.currentOp():查看数据库当前执行什么操作,用于查看长时间运行进程。

kill操作

  • 如果当前操作太长需要丢弃的话,则db.killOp(id)杀掉
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,你可以使用MongoDB的Java驱动程序来连接和操作MongoDB数据库。以下是一个简单的示例代码,展示了如何连接MongoDB数据库: 首先,你需要在你的Java项目中添加MongoDB的Java驱动程序依赖。你可以在你的构建工具(如Maven或Gradle)的配置文件中添加以下依赖: Maven: ```xml <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.12.7</version> </dependency> ``` Gradle: ```groovy implementation 'org.mongodb:mongo-java-driver:3.12.7' ``` 接下来,你可以使用以下代码来连接MongoDB数据库: ```java import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.client.MongoDatabase; public class MongoDBConnector { public static void main(String[] args) { // 设置MongoDB连接信息 String host = "localhost"; // MongoDB主机名或IP地址 int port = 27017; // MongoDB端口 String database = "mydb"; // 数据库名称 String username = "myuser"; // 用户名 String password = "mypassword"; // 密码 // 创建MongoCredential实例 MongoCredential credential = MongoCredential.createCredential(username, database, password.toCharArray()); // 创建MongoClient实例 MongoClient mongoClient = new MongoClient(host, port); // 获取MongoDatabase实例 MongoDatabase mongoDatabase = mongoClient.getDatabase(database); // 打印数据库连接成功信息 System.out.println("成功连接到MongoDB数据库"); // 关闭MongoClient连接 mongoClient.close(); } } ``` 在这个示例中,我们使用MongoClient类来连接MongoDB数据库。我们提供了MongoDB的主机名和端口号,以及数据库的名称、用户名和密码。然后,我们使用这些信息创建一个MongoCredential实例,并使用它来验证连接。接下来,我们使用MongoClient实例来获取MongoDatabase实例,可以使用该实例来进行数据库操作。最后,我们打印出连接成功的信息,并关闭MongoClient连接。 请注意,这只是一个简单的示例,实际情况可能会更复杂。你可能需要处理异常、使用连接池等。另外,MongoDB还提供了更高级的功能和API,如集合操作、查询和更新等。你可以查阅MongoDB的官方文档以了解更多详细信息:https://docs.mongodb.com/drivers/java/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值