linux cpu占用率如何看
258
2022-10-12
MongoDB-------安装+操作命令+备份的恢复、管理、监控
文章目录
一、MongoDB :
二、Linux 系统安装MongoDB :
第一步:配置 YUM 源仓库 第二步:安装 MongoDB 三、MongoDB 基础操作 1、基本命令: 2、备份、恢复: 3、安全管理: 4、进程管理: 5、MongoDB 监控: 一、MongoDB : (1)MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
(2)MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
(3)特点:
面向集合存储,易存储对象类型的数据; 模式自由、支持查询、支持动态查询; 支持完全索引,包含内部对象; 支持复制和故障恢复; 使用高效的二进制数据存储,包括大型对象(如视频等); 自动处理碎片,以支持云计算层次的扩展性; 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言; 文件存储格式为BSON(一种JSON的扩展); 可通过网络访问。
二、Linux 系统安装MongoDB :
1、配置 YUM 源仓库
[mongodb-org] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=MongoDB
yum install mongodb-org -y
修改配置文件:
vim /etc/mongod.conf bindIp: 0.0.0.0 //监听地址 port: 27017 //监听端口
开启服务:
systemctl start mongod.service #查看服务启动情况 netstat -natp | grep 27017
启动MongoDB 多实例:
cp -p /etc/mongod.conf /etc/mongod2.conf vim /etc/mongod2.conf //修改以下代码: path: /data/mongodb/mongod2.log //日志文件目录 dbPath: /data/mongodb/mongo //数据存储目录 port: 27018 //服务器端口
创建实例的目录和日志文件:
mkdir -p /data/mongodb/ cd /data/mongodb/ mkdir mongo #创建日志文件 touch mongod2.log #给于权限 chmod 777 mongod2.log
启动实例:
mongod -f /etc/mongod2.conf mongo --port 27018 //指定实例的端口 netstat -ntap
三、MongoDB 基础操作
1、基本命令:
(1)文档 : 相当于关系数据库的 行 (多个文档组成集合)
(2)集合 : 相当于关系数据库的 表 (多个集合组成数据库)
(3)数据库名特殊作用:
admin: 将用户添加到这个库,这个用户继承数据库所有权限; local : 这个库永远不被复制,可以存储限于本地单台服务器的任意集合; config : 当Mongo用于分片设置时,这个库在内部使用,保存分片的相关信息。
mongo //进入数据库 > db.version() //查看版本 > show dbs; // 查看数据库 > db.getMongo() //查看当前数据库机器的连接地址 > db.集合名.help //显示集合操作命令 > show users //显示用户
(4)具体操作:
> use school; //打开school数据库, 不存在会创建,不建立集合又会删除 > db.createCollection('info') //创建集合 > db.info.insert({"id":1,"name":"zhangsan","hobby":["game","talk"]}) //添加数据 > db.info.find() //查看info集合中所有文档 > show collections //查看数据库中所有集合 > db.info.update({"id":10},{$set:{"name":"tom"}}) //更改数据 > db.info.remove({"id":2}) //移除info集合中的id2的数据 > db.info.drop() //删除info集合 > db.dropDatabase() //删除数据库 先use到要删的数据库里在删 > db.info.count() //统计有多少条数据
(5)MongoDB 数据类型:
String: 字符串,最常用,必须是utf-8 Boolean:布尔值,true 或者false Integer:整数 Double:浮点数 Arrays:数组或者列表,多个值存储到一个键 Object:用于嵌入文档,即一个值为一个文档 Null:存储null值 Binary Data : 二进制数据,用于存储二进制数据 Date:存储当前日期或时间unix时间格式
(6)查看数据类型:
> a=db.info.findOne({"id":1}) //查找指定记录并赋予别名a > typeof(a.id) //查看属性类型
2、备份、恢复:
(1)导入导出:
导出:mongoexport 导入:mongoimport 常见选项:-d 数据库-c 集合-o 目录文件.json结尾-q 导出数据过滤条件-f 导出哪些列
for(var i=1;i<=100;i++)db.info.insert({"id":i,"name":"jack"+i}) //循环写入100条数据 mongoexport -d school -c info -o /opt/info.json //导出 mongoimport -d school -c info1 --file /opt/info.json //导入到info1集合 mongoexport -d school -c info1 -q '{"id":{"$eq":10}}' -o /opt/top10.json //条件导出指定第10行
(2)备份与恢复:
备份:mongodump 恢复:mongorestore 选项:-h 指定Mongodb所在服务器的地址也可以指定端口(例:-h 127.0.0.1:27017)-d :需要备份的数据库;-o :备份数据存放的目录 该目录需提前创建
mkdir /backup //创建存放目录 mongodump -d school -o /backup/ //备份school数据库 mongorestore -d school1 --dir=/backup/school //恢复到school1数据库
④ 复制数据库:
db.copyDatabase("school","school2") //复制数据库school 到school2中
⑤ 克隆数据库:
把数据库school的info集合 克隆到实例2 先进入实例2的MongoDB mongo --port 27018 db.runCommand({"cloneCollection":"school.info","from":"192.168.126.130:27017"})
3、安全管理:
创建管理用户; 启动是必须指定 auth=true; 可以将用户分配角色; 内置数据库用户角色: read 、 readWrite; 数据库管理员角色: dbAmin 、 dbOwner 、 userAdmin; 超级用户角色 :rootvim /etc/mongod.conf
auth=true //添加 mongo > use admin > db.createUser({"zkc":"root","pwd":"123","roles":["root"]}) //创建用户zkc 密码123 分配到root角色 > db.auth("root","123") //验证用户
4、进程管理:
终止正在运行的进程: db.killOp(opid值)、 查看当前正在运行的进程: db.currentOp()
> db.currentOp() //查看 > db.killOp(4872) //终止4872进程
5、MongoDB 监控:
MongoDB提供一些内置工具可以监测数据库的状态信息 查看数据库实例的状态信息: db.serverStatus() 查看数据库的统计信息: db.stats() 此外也可以通过web界面查看系统监控信息需要在配置文件中加入
vim /etc/mongod.conf httpinterface=true
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~