MongoDB实践四(管理工具)
数据库监控工具
- mongostat 显示数据库服务器进程状态,使用mongostat 需要对操作数据库具备clusterMonitor角色的权限
- mongostat --host localhost --port 27017 -u monitorUser -p passwd --authenticationDatabase admin (默认每秒一次报告)
- mongostat ... 3 (3秒一次)
- mongostat ... --rowcount 5 1 (限制报告次数为5次)
- mongostat ... -o "command,dirty,used,vsize,res,conn,time" --rowcount 5 1 (选择部分字段进行报告输出)
- command - 每秒执行的命令数
- dirty ,used - 数据库引擎缓存的使用量百分比
- vsize 虚拟内存使用量(MB)
- res 常驻内存使用量(MB)
- conn 连接数
- mongotop 监控集合读写时间(长时间未操作的集合可能不会出现在内)
- mongotop --host localhost --port 27017 -u monitorUser -p passwd --authenticationDatabase admin(默认每秒一次报告)
- mongotop --host localhost --port 27017 -u monitorUser -p passwd --authenticationDatabase admin 5 (调整为5秒一次报告)
- mongostat ... --rowcount 5 1 (限制报告次数为5次)
MongoExport 导出
- 导出支持筛选导出
- mongoexport --db test --collection accounts --type=csv --fields name,balance --out /data/accouts.csv -u readUser -p passwd --authenticationDatabase admin
- mongoexport --db test --collection accounts --type=csv --fields name.firstName.lastName,balance --out /data/accounts.csv -u readUser -p passwd --authenticationDatabase admin
- 导出支持多种格式
- mongoexport --db test --collection accounts --type=json --fields name.firstName,name.lastName,balance --out /opt/backups/accounts.json -u readUser -p passwd --authenticationDatabase admin
- 导出支持指定IP端口
- mongoexport --db test --collection accounts --type=csv --fields name,balance --out /data/accouts.csv -u readUser -p passwd --authenticationDatabase admin --host 127.0.0.1 --port 27017
- 导出支持 --limit --skip --sort选项
- mongoexport --db test --collection accounts --type=json --fields name.firstName,name.lastName,balance--out /data/accounts.json -u readUser -p passwd --authenticationDatabase admin --sort '{balance:1}' --limit 3 --skip 1
mongo外执行mongo命令
- mongo -u readUser -p passwd --authenticationDatabase admin --quiet --eval 'db.importAccounts.find()'
MongoImport 导入
- --headerline 设置第一行为字段名称(表格类文件切记)
- mongoimport --db test --collection importAccounts --type csv --headerline --file /data/accounts.csv -u writeUser -p passwd --authenticationDatabase admin
- 导入JSON
- mongoimport --db test --collection importAccounts --type json --file /data/accounts.json -u writeUser -p passwd --authenticationDatabase admin --upsertFields name.firstName,balance
- 导入前删除原文档
- mongoimport --db test --collection importAccounts --type csv --headerline --file /data/accounts.csv --drop -u writeUser -p passwd --authenticationDatabase admin
- 自定义字段名称(与headerline相斥,如果使用自定义记得把表格类文件的首行处理掉)
- mongoimport --db test --collection importAccounts --type csv --fields firstName,lastName,balance --file /data/accounts.csv -u writeUser -p passwd --authenticationDatabase admin
- 更新旧文档(字段匹配则更新)
- mongoimport --db test --collection importAccounts --type csv --headerline --file /data/accounts.csv -u writeUser -p passwd --authenticationDatabase admin --upsertFields name.firstName,balance
- --stopOnError(遇到错误即停止),--maintainInsertionOrder(按照文件当中数据顺序导入)
- mongoimport --db test --collection importAccounts --type json --file /data/accounts.json -u writeUser -p passwd --authenticationDatabase admin --upsertFields name.firstName,balance --stopOnError --maintainInsertionOrder
Nice to see you all!