MongoDB常用命令

MongoDB常用命令

 

.基础操作命令

1.   !注意区分大小写 系统命令详细语法 --help查看  

2.   查看帮助命令:  

3.   server级别 >hlep  

4.   db级别 >db.help()   

5.   集合级别>db. collectionname .help()    

6.     

7.   /*db*/  

8.   启动:# mongod -f  /usr/local/mongodb/conf/mongod.conf     

9.   登入:# ./mongo --port 27017 

10.关闭:# mongod --shutdown -f 对应组件的conf文件路径  或者 >db.shutdownServer(),需要use admin执行  或者kill <mongod process ID> 但是注意不能加上-9否则下次无法正常启动  

11.切换到指定库:>use dbname  

12.查询当前用户: >show users   或者>db.system.users.find() >db.system.users.find().pretty()  

13.查看当前库:>db  

14.查看所有库:>show dbs  

15.查看数据库状态信息:>db.serverStatus()   

16.查看 db 的元数据信息:>db.stats()   

17.查看当前库所有集合:>show collections 或者show tables  

18.查看集合状态:> db.printCollectionStats()  

19.查看数据库版本信息:>db.version()   

20. /*replset*/  副本集

21.副本集启动:#mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"  

22.查看当前副本集状态:>rs.status()  

23.查看当前副本集配置:>rs.config()   

24.查看副本集复制状态:> db.printReplicationInfo()   

25.查看主备同步延时:>db.printSlaveReplicationInfo()  

26.添加副本集节点:>rs.add('ip:port')  

27.移除副本集节点:rs.remove()  # 需要primary节点执行  

28.添加仲裁节点:>rs.addArb('ip:port')  

29.实现secondary节点查询(读请求)>rs.slaveOk() 或者 db.getMongo().setSlaveOk() 或者 配置mongo的时候增加slave-ok="true"也支持直接从secondary中读  

30./*shading*/  分片集

31.启动config Servermongod --config /data/db/confsrv/mongod-cs.cnf   # 启动Shard Server同理  

32.启动router各节点:mongos --config /data/db/router/mongos.cnf   # 注意区别router组件和其他组件启动命令不同  

33.连接到指定组件:# mongo --port 29017   # 端口号指定对应组件的端口号  

34.查看shard分片信息:>db.printShardingStatus()  

35.Balancer:-连接到 config 库操作  

36.开启Balancer>sh.startBalancer()  

37.停止Balancer>sh.stopBalancer()  

38.查看Balancer状态:>sh.getBalancerState()  

 

.备份命令

1.   MongoDB目前为止还没有像xtrabackup这种好用的备份工具。所以一般来说,都是使用逻辑备份方式来进行操作  

2.   逻辑备份与恢复  

3.   备份:mongodump  # mongodump -h hostip:port -u username --authenticationDatabase admin -p password -d dbname -c collectionsname --dumpDbUserAndRoles -o  /path/filename.sql  

4.     

5.   利用oplog 实现point-in-time的恢复, 即恢复到误操作前的状态:  

6.   备份出oplog:  

7.   # mongodump -h 192.168.90.228:27017 -d local -c oplog.rs -o /tmp/  

8.   Bsondump可以让oplog 具备可读性:  

9.   # bsondump oplog.rs.bson >local.log  

10.log中可以找到误操作时间点  

11.  

12.恢复:mongorestore  

13.# mongorestore -h localhost -d users --dir /root/mongdbbak/users

14.oplog 的备份复制到备机上,进行恢复:  

15.# mongorestore - h 192.168.90.228:27017 --oplogReplay --oplogLimit 1560161074:1 /tmp/  

16.注意:在还原过程中 mongorestore默认不会删除数据,因此向现有数据库还原数据,务必带上--drop标志  

17.导出:mongoexport (可将集合数据导出到json\csv文件中)  

18.mongoexport -d dbname -c collectionsname -o filename.csv  

19.导入:mongoimport   mongoimport --help查看导入选项)  

20.mongoimport -d dbname -c collectionsname --type csv --headline filename.csv     /*headline:csv文件第一行包含字段名*/  

21.  

22.注:通过mongoshell执行以下命令以确保所有的写操作都flush到磁盘并禁止新的写入:

23.>db.fsyncLock();  

.监控与数据库诊断优化命令

1.   统计信息:>db.runCommand({"serverStatus":1})  

2.   统计信息包括以下:页错误、B树访问率、打开连接数、总的插入、更新、查询和删除等详细信息。  

3.   显示每个数据库的操作计数器:>db.runCommand({"top":1})   

4.   返回当前数据库正在运行的所有操作,以及正在等待运行的其他操作:>db.currentOp()  

5.   Mongo自带监测工具:# mongostat  --间隔固定时间获取mongodb的当前运行状态,并输出

6.   查看是否设置Profiling>db.getProfilingLevel()  ---类似mysql slowlog,收集到的所有都写入到system.profile集合中。注:0:关闭,不收集任何数据 1:收集慢查询数据,默认是100毫秒 2:收集所有数据

7.   设置开启慢查询监控:> db.setProfilingLevel(2,200) --200为时间阈值

8.   查看执行计划:>db.collection.find().explain(verbose) --参数verbose:可选参数。缺省值为queryPlanner,用于查看指定执行计划的特定部分。即给定不同的参数则输出信息的详细程度不同,常用的包括queryPlannerexecutionStats,以及allPlansExecution.

9.   查看更多explain支持的运算方法:> db.collectionname.explain().help()

 

 

posted @ 2019-07-16 18:32  白菜叶叶  阅读(682)  评论(0编辑  收藏  举报