自学内容网 自学内容网

mongo开启慢日志及常用命令行操作、数据备份

1.常用命令行操作

连接命令行
格式:mongo -u用户名 -p密码 --host 主机地址 --port 端口号 库名

如:连接指定的主机的mongo库;
mongo -uroot -p123456 --host 127.0.0.1 --port 27017 admin

参数:
-u:指定用户名;
-p:指定密码;
–host:指定连接的主机地址;
–port:指定连接的端口;
库名:用于指定账号密码认证的库;

use db_Name:切换指定的数据库;
db.auth("user", "pwd"):进行账号认证;
show dbs:列出所有的数据库;
show collections:列出当前数据库所有的集合;
db.collection_Name.getIndexes(): 列出指定集合的所有索引;

创建用户

use admin
db.createUser({
 user: "用户名",  
 pwd: "密码", 
 roles:[{
  role: "角色",  
  db: "库名称"  
}]
})

更新用户信息

use admin
db.updateUser(
  "用户名", 
  {
    roles: [
      { role: "角色1", db: "数据库名1" }
    ]
  }
)

常用的角色如下:

角色类型角色名称对应权限
数据库用户角色read允许用户,读取指定数据库数据
- readWrite允许用户,读/写指定数据库数据
数据库管理角色dbAdmin允许用户,在当前的数据库中执行管理操作(不含用户管理、不含读写数据)
-dbOwner允许用户,在当前的数据库中执行任意操作(任何操作)
-userAdmin允许用户,在当前的数据库中管理User(管理用户操作),创建、删除和管理用户
跨库角色readAnyDatabase允许用户,读取所有数据库的数据,只能切到admin库中进行分配
-readWriteAnyDatabase允许用户,读写所有数据库的数据,只能切到admin库中进行分配
-userAdminAnyDatabase允许用户,管理所有的数据库的User,只能切到admin库中进行分配
-dbAdminAnyDatabase允许用户管理,所有数据库的权限(任何操作),只能切到admin库中进行分配

更新用户密码

use admin
db.changeUserPassword("用户名", "新密码")

删除用户

use admin
db.dropUser("用户名")

2.mongo备份

  • mongodump备份
    mongodump命令,用于创建 mongo 数据库的备份。它会将数据导出为bson文件,并可以包含索引和视图;

    备份整个数据库
    格式:
    mongodump --host 主机地址 --port 端口 -u用户名 -p密码 --authenticationDatabase 认证库名称 --out 导出文件存放路径

    备份特定数据库
    格式:
    mongodump --host 主机地址 --port 端口 -u用户名 -p密码 --authenticationDatabase 认证库名 --db 备份库名称 --out 导出文件存放路径

    备份特定集合
    格式:
    mongodump --host 主机地址 --port 端口 -u用户名 -p密码 --authenticationDatabase 认证库名 --db 备份库名称 --collection 备份集合名称 --out 导出文件存放路径

参数说明
--host:指定 mongo的主机地址;
--port :指定 mongo的端口号,默认是 27017;
-u :指定连接的用户名;
-p:指定连接的密码;
--authenticationDatabase:指定认证数据库;
--db:指定需要备份的数据库;
--collection:指定需要备份的集合;
--out:指定备份文件存放的目录;

  • mongorestore恢复

    恢复整个数据库实例
    mongorestore --host 主机地址 --port 端口 -u用户名 -p密码 --authenticationDatabase 认证库名 导出文件存放路径

    恢复特定数据库
    mongorestore --host 主机地址 --port 端口 -u用户名 -p密码 --authenticationDatabase 认证库名 --db 恢复库名称 导出文件存放路径/恢复库名称

    恢复特定集合
    mongorestore --host 主机地址 --port 端口 -u用户名 -p密码 --authenticationDatabase 认证库名 --db 恢复库名称 --collection 恢复集合名称 导出文件存放路径/恢复库名称/恢复集合名称.bson
  • mongoexport 备份
    将数据导出为JSONCSV格式的文本文件,适合用于备份小规模数据或进行数据迁移;

    导出特定集合的数据
    mongoexport --host 主机地址 --port 端口 -u用户名 -p密码 --authenticationDatabase 认证库名 --db 备份库名称 --collection 备份集合名称 --out 导出文件存放路径/文件名
  • mongoimport恢复
    导入 JSON 文件中的数据

    mongoimport --host 主机地址 --port 端口 -u用户名 -p密码 --authenticationDatabase 认证库名 --db 恢复库名称 --collection 恢复集合名称 --file 导出文件存放路径/文件名

3.通过命令临时开启慢日志记录

通过连接命令行后执行语句开启慢查询,好处是不需要重启服务,但服务只要重启后就会失效;

1.进入mongo命令行:

#进入命令行;
mongo
#切换到认证库;use 库名称
use admin
#进行账号权限认证,未启用认证可以跳过;db.auth("账号","密码")
db.auth("root","123456")

在这里插入图片描述

2.然后执行语句开启慢查询记录即可;

#开启慢查询记录,1表示日志级别,100表示阈值,100ms;
db.setProfilingLevel(1, 100)

#查询设置是否成功
db.getProfilingStatus()
#查询超过100ms的慢日志
db.system.profile.find({millis: {$gt: 100}})

注意:
1.setProfilingLevel是针对库进行设置的,需要use切换到指定库执行命令,只会对该库生效,其他库不会有任何影响;且重启服务后设置失效;
2.此方法开启的慢日志是存在对应的系统集合system.profile中;因此,需要通过查询语句来查看慢日志;

4.通过修改配置开启慢日志记录

修改配置开启慢日志,首次配置需要重启服务才能生效;

mongod.conf文件中添加以下内容,保存后重启服务器即可,慢日志会写入到mongo系统日志中;

operationProfiling:
  #设置模式,分为off/slowOp/all (关闭/仅记录慢操作/记录所有操作);
  mode: slowOp
  #设置慢日志阈值,默认100ms;
  slowOpThresholdMs: 100

重启mongo服务

systemctl restart mongod

在这里插入图片描述


原文地址:https://blog.csdn.net/gahsfjshf/article/details/144142659

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!