mongo 运维记录

mongodb的启动顺序是,先启动配置服务器,再启动分片,最后启动mongos.

mongod -f /usr/local/mongodb/conf/config.conf

mongod -f /usr/local/mongodb/conf/shard1.conf

mongod -f /usr/local/mongodb/conf/shard2.conf

mongod -f /usr/local/mongodb/conf/shard3.conf

mongos -f /usr/local/mongodb/conf/mongos.conf

 

关闭时,直接killall杀掉所有进程

killall mongod

killall mongos

mongod -f /usr/local/mongodb/conf/config.conf --shutdown

扫描二维码关注公众号,回复: 2377256 查看本文章

mongod -f /usr/local/mongodb/conf/shard1.conf --shutdown

mongod -f /usr/local/mongodb/conf/shard2.conf --shutdown

mongod -f /usr/local/mongodb/conf/shard3.conf --shutdown

 

用户登录

mongo 127.0.0.1:20000

有密码

mongo admin --port 20000 -u root -p password 

监控

mongostat --port 20000 -u root -p password --authenticationDatabase=admin

 

 

3.2常用运维命令

 test数据库、stu集合

#登录路由服务器 查看集群状态

sh.status()

#登录任意分片查看分区状态、配置

rs.status()   rs.config()

查看oplog状态: rs.printReplicationInfo()

查看复制延迟:  rs.printSlaveReplicationInfo()

状态:

可提供服务的状态:primary, secondary, arbiter

即将提供服务的状态:startup, startup2, recovering

不可提供服务状态:down,unknow,removed,rollback,fatal

db.serverStatus()  信息比较多

运维参考:https://www.cnblogs.com/kevingrace/p/8178549.html

###### 操作

db.serverStatus().mem  

 

db.stats()      // 查看数据库信息 storage代表数据库大小(单位字节)    

3.3 基本操作命令

 show dbs

use test;  //新建数据库 show dbs并不显示、至少要插入一条数据

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

db.stu.drop()    //删除集合

db.createCollection(name, options) // name: 要创建的集合名称 options选填

show collections

db.stu.find();   // 查询所有db.stu.count();

db.stu.count();

db.stu.remove({'sno':'100'})

db.stu.dataSize();   // 获取stu集合大小

db.stu.storageSize()    //为collection分配的空间大小,包括未使用的空间  db.stats 为分配大小

db.stu.totalIndexSize()   //collection中索引数据大小

db.stu.totalSize()   //collection中索引+data所占空间

db.serverStatus().connections


3.4 mongo释放内存或者磁盘

db.repairDatabase(); // 释放   不管用 ---> 针对remove  其实主要是修复

db.runCommand({closeAllDatabases:1});  // 命令不存在

 

删除集合的话磁盘空间可以释放,和网上的教程不一致(可能是版本不对或者人云亦云)

db.collections.drop()  

 

Remove集合中的记录磁盘空间不释放

释放方式:

① 亲测有效

在每一个分片/实例上执行,路由节点执行没用

使用db.runCommand({ compact : 'stu' }); 或者

db.runCommand({ compact : 'stu',force:true });

 

②未测试

secondary节点重同步

③ 未测试

db.copyDatabase()   觉得可行

参考:https://yq.aliyun.com/articles/606187

猜你喜欢

转载自blog.csdn.net/Zzhou1990/article/details/81204884