(关注“数据库架构师”公众号,提升数据库技能,助力职业发展)
MongoDB数据库启动和停止
–启动MongDB
mongod -f /etc/mongod.conf
–关闭MongDB
mongod -f /etc/mongod.conf --shutdown
本地连接登录
mongo
mongo 127.0.0.1:27017/mydb -uroot -p123456
Help查看命令提示
help
db.help();
db.yourColl.help();
db.youColl.find().help();
rs.help();
数据库管理
–查询所有数据库
show dbs;
切换数据库
use jm;
显示当前数据库名字
db;
db.getName()
显示当前数据库状态
db.stats()
查看当前数据库版本
db.version()
查看当前数据库的连接机器地址
db.getMongo()
查看数据库服务器的状态
db.serverStatus()
查询指定数据库统计信息
use fragment
db.stats()
删除当前使用数据库
db.dropDatabase();
安全管理
添加用户
db.createUser({ user: “admin”, pwd: “admin”, roles: [{ role: “userAdminAnyDatabase”, db: “admin” }] })
##验证登录,如果返回1,则证明密码生效
db.auth(“admin”, “admin”)
1
创建一个db库test,并分配账号和密码****
#登录管理员
use admin
db.auth(“admin”,“admin”)
#创建test库
use test
db.createUser({ user: “test”, pwd: “test”, roles: [{ role: “dbOwner”, db: “test” }] })
集合管理
查看当前数据库的所有集合(表的概念)
show collections;
db.getCollectionNames();
显示当前db所有聚集索引的状态
db.printCollectionStats();
查询当前聚集集合所有索引
db.userInfo.getIndexes();
查看集合存储信息
db.log.stats() # 查看数据状态
db.log.dataSize() # 集合中数据的原始大小
db.log.totalIndexSize() # 集合中索引数据的原始大小
db.log.totalSize() # 集合中索引+数据压缩存储之后的大小
db.log.storageSize() # 集合中数据压缩存储的大小
MongoDB备份恢复
数据备份
mongodump -h 192.168.70.21 -d jm -o /root/mongodbbak
参数说明:
-h:
MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:
需要备份的数据库实例,例如:test
-o:
备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
备份所有数据
mongodump --host 192.168.70.21 -u admin -p admin -o /root/mongodbbak
备份指定数据
mongodump --host 192.168.70.21 -d mydb -u admin -p admin -o /root/mongodbbak
备份指定集合
mongodump --host 192.168.70.21 -d mydb -c user -u admin -p admin -o /root/mongodbbak
数据恢复
恢复所有数据库
mongorestore --host 192.168.70.21 -u admin -p admin --dir /root/mongodbbak
恢复指定数据
mongorestore --host 192.168.70.21 -d mydb -u admin -p admin --dir /root/mongodbbak/mydb
恢复指定集合
mongorestore --host 192.168.70.21 -d mydb -c user -u admin -p admin --dir /root/mongodbbak/mydb/user.bson
MongoDB导出导入(针对集合)
mongoexport导出
mongoexport -d test -c students -o students.json
参数说明:
-h:指明数据库宿主机的IP
-u:指明数据库的用户名
-p:指明数据库的密码
-d:指明数据库的名字
-c:指明collection的名字
-f:指明要导出那些列
-o:指明到要导出的文件名
-q:指明导出数据的过滤条件
从上面的结果可以看出,我们在导出数据时没有显示指定导出样式 ,默认导出了JSON格式的数据。如果我们需要导出CSV格式的数据,则需要使用–csv参数,具体如下所示
mongoexport -d test -c students --csv -f classid,name,age -o students.csv
mongoimport导出
mongoimport -d test -c students students.json
参数说明:
-h:指明数据库宿主机的IP
-u:指明数据库的用户名
-p:指明数据库的密码
-d:指明数据库的名字
-c:指明collection的名字
-f:指明要导入那些列
先删除students中的数据 然后导入
导入JSON格式的文件中的内容,如果要导入CSV格式文件中的内容,则需要通过–type参数指定导入格式
mongoimport -d test -c students --type csv --headerline --file students.csv
MongoDB高可用集群
Mongodb一共有三种集群搭建的方式:
Replica Set(副本集)、
Sharding(切片)
Master-Slaver(主从)
其中,Sharding集群也是三种集群中最复杂的。
副本集比起主从可以实现故障转移!!非常实用!
mongoDB目前已不推荐使用主从模式,取而代之的是副本集模式。副本集其实一种互为主从的关系,可理解为主主。
副本集指将数据复制,多份保存,不同服务器保存同一份数据,在出现故障时自动切换。对应的是数据冗余、备份、镜像、读写分离、高可用性等关键词;
而分片则指为处理大量数据,将数据分开存储,不同服务器保存不同的数据,它们的数据总和即为整个数据集。追求的是高性能。
在生产环境中,通常是这两种技术结合使用,分片+副本集。
MongoDB 副本集架构(Replica Set)
MongoDB部署Replica Sets
数据分片架构(Sharding)
判断是否Shard集群
查看复制集状态:
rs.help();
rs.status(); # 查看整体复制集状态
rs.isMaster(); # 查看当前是否是主节点
参考文档:MongoDB中文手册|官方文档中文版 https://docs.mongoing.com
转自:墨天轮https://www.modb.pro/db/101600?utm_source=index_ai
如果这篇文章对你有帮助,还请帮忙点赞、转发 以下,你的支持会激励我们输出更多高质量的文章!
如果你还想看更多优质文章,欢迎关注我的公众号「数据库架构师」,提升数据库技能,助力职业发展。