ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

管理MongoDB相关操作命令

2022-05-16 02:03:13  阅读:172  来源: 互联网

标签:mongod 操作命令 log -- MongoDB db admin role 相关


1. 管理查看语句
show dbs
show collections;
show users;
use db
获取当前库名
db.getName()
当前数据库状态
db.stats()
查看当前版本
db.version()

1.1 创建用户
use bg_base
db.createUser(
{
user:"devtymongo",
pwd:"#############",
roles:[{role:"readWrite",db:"bg_base"},{role:"dbAdmin",db:"bg_base"},{role:"userAdmin",db:"bg_base"},
{role:"clusterAdmin",db:"admin"},{role:"clusterManager",db:"admin"},{role:"clusterMonitor",db:"admin"},
{ role: "dbOwner", db: "bg_base" }]
})

1.2.1 修改密码
db.changeUserPassword('test','123')
1.2.2 创建管理员账户
db.createUser({user:'admin',pwd:'123',roles:[{role:'root',db:'admin'}]})
1.2.3 创建普通管理员 可以连接多个库
use admin
db.createUser(
{
user: "admin",
pwd: "#############",
roles: [{role:"clusterAdmin",db:"admin"},{role:"clusterManager",db:"admin"},
{role:"clusterMonitor",db:"admin"}, { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)

1.2.4 创建只读账户: 可以连接多个库
use admin
db.createUser(
{
user:"jsread",
pwd:"###########",
roles:[{role:"readAnyDatabase",db:"admin"}]
})

1.2.5 验证用户
db.auth('user','pwd')
1.2.6 显示当前所有用户
show users()
1.2.7 删除用户
db.dropUser('test_user')

2. 数据库导入和导出
2.1 mongo导出:
mongodump -h 127.0.0.1:26060 -d bc -u admin -p '########' --authenticationDatabase=admin -o /data/mongobak
2.2 mongo导入:
mongorestore -u yctymongo -p '###########' --host 127.0.0.1 --port 26060 --authenticationDatabase=admin -d bc /data/mongobak/bc


3. 慢日志分析
mloginfo mongod_20200619.log --queries --sort count

2. 副本集管理
2.1 配置副本集
use admin
config = {_id: 'my_repl', members: [ {_id: 0, host: '10.5.22.40:26060'}, {_id: 1, host: '10.5.22.41:26060'}, {_id: 2, host: '10.5.22.42:26060'}] }
rs.initiate(config)
rs.status
rs.slaveOk()

2.2 管理节点
rs.remove("ip:port")
rs.add("ip:port")
rs.add({host: "10.5.11.17:26060", priority: 0, hidden: true})
cfg=rs.conf() /*找到需要改为延迟性同步的数组号*/;
设置优先级,0为不参加选举
cfg.members[1].priority=0
设置同步延时
cfg.members[1].slaveDelay=120
对外隐藏节点
cfg.members[1].hidden=false
重写配置文件
rs.reconfig(cfg)

2.3 查看副本节点,可以监控主从延时
ty88:PRIMARY> rs.printSlaveReplicationInfo()
source: 10.5.11.19:26060
syncedTo: Thu Jul 16 2020 14:09:51 GMT+0800 (CST)
0 secs (0 hrs) behind the primary
source: 10.5.11.20:26060
syncedTo: Thu Jul 16 2020 14:09:51 GMT+0800 (CST)
0 secs (0 hrs) behind the primary
source: 10.5.22.40:26060
syncedTo: Thu Jan 01 1970 08:00:00 GMT+0800 (CST)
1594879791 secs (443022.16 hrs) behind the primary

 

2.4 查看副本集状态
rs.status()

2.5 查看副本集的oplog的状态
ty88:PRIMARY> rs.printReplicationInfo()
configured oplog size: 51200MB
log length start to end: 302285secs (83.97hrs)
oplog first event time: Mon Jul 13 2020 02:10:54 GMT+0800 (CST)
oplog last event time: Thu Jul 16 2020 14:08:59 GMT+0800 (CST)
now: Thu Jul 16 2020 14:08:59 GMT+0800 (CST)

2.5 对集合进行压缩,主要是解决删除数据不释放的问题
db.runCommand({ compact : 'sr_live_eventStatisticsInfo_uof',force: true});

2.6 mtools
mloginfo
mloginfo令是一个用于做日志信息统计的工具。

连接数
# mloginfo mongod.log-20180531-2.211-gbk --connections

事件统计

# mloginfo mongod.log-20180531-2.211-gbk --distinct

重启信息

# mloginfo mongod.log-20180531-2.211-gbk --restart

副本集切换

# mloginfo mongod.log-20180531-2.211-gbk --rsstate

查询次数

# mloginfo mongod.log-20180531-2.211-gbk --queries --sort count

查看超过10s的慢操作

# mlogfilter mongod.log-20180531-2.211-gbk --slow 10000 --shorten 200

查看超过10s的慢操作

# mlogfilter mongod.log-20180531-2.211-gbk --slow 10000 --shorten 200

查看慢扫描操作
慢扫描是指该操作需要扫描过多的记录(超过1w行),且返回数量不足扫描数量的1/100,这样的操作通常对CPU消耗很高,也比较低效

# mlogfilter mongod.log-20180531-2.211-gbk --scan --shorten 200

根据名称空间过滤

# mlogfilter mongod.log-20180531-2.211-gbk --namespace dmspace.DeviceInfo

根据操作类型过滤

# mlogfilter mongod.log-20180531-2.211-gbk --operation update


2.7 更改oplog大小
2.7.1 查看当前oplog大小
use local
db.oplog.rs.stats().maxSize
2.7.2 更改oplog大小设置,更改即生效。单位为M
db.adminCommand({replSetResizeOplog:1, size: 100000})

标签:mongod,操作命令,log,--,MongoDB,db,admin,role,相关
来源: https://www.cnblogs.com/abner123/p/16275476.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有