MongoDB系列~常用命令

2024-01-23  本文已影响0人  开心的蛋黄派

一、活跃会话查看

要查询运行时间超过3秒的活跃会话,可以使用以下命令:

db.currentOp({ "active" : true, "secs_running" : { "$gt" : 3 }}).inprog.forEach(function(item){
  print(item.client, item.opid, item.ns, JSON.stringify(item.query));
});

这个命令将打印出所有活跃会话的客户端地址、操作ID、命名空间以及查询内容。

二、终止会话

如果要批量终止运行时间超过3秒的活跃会话,可以使用以下命令:

db.currentOp().inprog.forEach(function(item){
  if(item.secs_running > 3) {
    db.killOp(item.opid);
  }
});

另外,要终止指定活跃会话,可以使用以下命令:

db.killOp(item.opid);

请将item.opid替换为要终止的会话的实际操作ID。

三、回收磁盘空间 - Drop

要删除数据库或集合文件并立即释放空间,可以使用以下命令:

// 删除数据库
db.dropDatabase();

// 删除集合
db.collection.drop();

请注意,这些操作将永久删除数据库或集合及其所有数据,请谨慎使用。

四、回收磁盘空间 - Compact

要回收磁盘空间,可以先删除不需要的数据,然后使用compact命令对集合进行压缩。以下是示例步骤:

// 删除表中的数据
db.collection.remove({});

// 切换到目标数据库
use test_database;

// 查看磁盘空间占用
db.stats();

// 执行回收
db.runCommand({ compact: "<collection_name>", force: true });

// 再次查看磁盘占用
db.stats();

请将<collection_name>替换为要压缩的集合的实际名称。

五、Mongostat

mongostat是一个用于监视MongoDB实例性能的实用程序。以下是一些关键指标的解释:

要运行mongostat并连接到特定的MongoDB实例,可以使用以下命令:

./mongostat --host ip:port --username root --password xx --authenticationDatabase admin

请将ip:port替换为MongoDB实例的实际IP地址和端口号,并提供正确的用户名、密码和认证数据库。

六、Mongotop

mongotop是一个用于监视MongoDB实例中各个集合的读写操作的实用程序。它可以帮助您定位热点库表。以下是mongotop的输出示例:

read  write
collection1   10ms   5ms
collection2    0ms  10ms

要运行mongotop并连接到特定的MongoDB实例,可以使用以下命令:

./mongotop --host ip:port --username root --password xx --authenticationDatabase admin

同样,请将ip:port替换为MongoDB实例的实际IP地址和端口号,并提供正确的用户名、密码和认证数据库。

七、导入导出

要使用mongodump导出MongoDB数据,可以使用以下命令:

/usr/local/mongo_tools/bin/mongodump --host xxx --port 27017 --username xxx --password xxxx --authenticationDatabase admin --db xxx --out dump
=

要使用mongorestore导入MongoDB数据,可以使用以下命令:

/usr/local/mongo_tools/bin/mongorestore --host xxx --port 27017 --username xxx --password xxxx --authenticationDatabase admin  --db xxx dump/

请将xxxxxxx替换为实际的IP地址、端口号、用户名、密码和数据库名称。

八、创建用户

要在MongoDB中创建用户,可以使用以下命令:

use xx;
db.createUser({ user: "xxx", pwd: "xx", roles: [{ role: "readWrite", db: "dxxx" }] });

请将xxxxxdxxx替换为实际的数据库名称、用户名、密码和角色信息。

上一篇 下一篇

猜你喜欢

热点阅读