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 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