MongoDB操作命令详解及备份恢复、管理、监控【详细】
2018-07-14 09:11
411 查看
MongDB简介
MongDB是一款跨平台,面向文档的数据库,可以实现高性能,高可用性,并且能够轻松扩展,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。不再有行的概念,其运行方式主要基于两个概念:集合(collection)、与文档(document)。
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
面向集合存储,易存储对象类型的数据。
模式自由、支持查询、支持动态查询。
支持完全索引,包含内部对象。
支持复制和故障恢复。
使用高效的二进制数据存储,包括大型对象(如视频等)。
自动处理碎片,以支持云计算层次的扩展性。
支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
文件存储格式为BSON(一种JSON的扩展)。
可通过网络访问。
安装配置
创建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=https://www.mongodb.org/static/pgp/server-3.6.asc
启动MongoDB多实例
创建实例的目录和日志文件
启动实例
Mongodb的基础操作
文档 : 相当于关系数据库的 行 (多个文档组成集合)
集合 : 相当于关系数据库的 表 (多个集合组成数据库)
有些数据库名是保留的具有特殊作用
1):admin: 将用户添加到这个库,这个用户继承数据库所有权限
2): local : 这个库永远不被复制,可以存储限于本地单台服务器的任意集合
3):config : 当Mongo用于分片设置时,这个库在内部使用,保存分片的相关信息
增删改查
MongoDB数据类型
String: 字符串,最常用,必须是utf-8
Boolean:布尔值,true 或者false
Integer:整数
Double:浮点数
Arrays:数组或者列表,多个值存储到一个键
Object:用于嵌入文档,即一个值为一个文档
Null:存储null值
Binary Data : 二进制数据,用于存储二进制数据
Date:存储当前日期或时间unix时间格式
查看数据类型
备份与恢复管理
导入导出
导出:mongoexport
导入:mongoimport
选项: -d 数据库 -c 集合 -o 目录文件.json结尾 -q 导出数据过滤条件 -f 导出哪些列
备份与恢复
备份:mongodump
恢复:mongorestore
选项:
1): -h 指定Mongodb所在服务器的地址也可以指定端口(例:-h 127.0.0.1:27017)
2): -d :需要备份的数据库
3): -o :备份数据存放的目录 该目录需提前创建
复制数据库
克隆数据库
把数据库school的info集合 克隆到实例2
先进入实例2的MongoDB
安全管理
创建管理用户
启动是必须指定 auth=true
可以将用户分配角色
内置数据库用户角色: read 、 readWrite
数据库管理员角色: dbAmin 、 dbOwner 、 userAdmin
超级用户角色 : root
进程管理
查看当前正在运行的进程: db.currentOp()
终止正在运行的进程: db.killOp(opid值)
......
"opid" : 4872,
db.killOp(4872) //终止4872进程
MongoDB监控
MongoDB提供一些内置工具可以监测数据库的状态信息
查看数据库实例的状态信息: db.serverStatus()
查看数据库的统计信息: db.stats()
此外也可以通过web界面查看系统监控信息需要在配置文件中加入
然后浏览器访问: http://localhost:28017
MongDB是一款跨平台,面向文档的数据库,可以实现高性能,高可用性,并且能够轻松扩展,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。不再有行的概念,其运行方式主要基于两个概念:集合(collection)、与文档(document)。
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
面向集合存储,易存储对象类型的数据。
模式自由、支持查询、支持动态查询。
支持完全索引,包含内部对象。
支持复制和故障恢复。
使用高效的二进制数据存储,包括大型对象(如视频等)。
自动处理碎片,以支持云计算层次的扩展性。
支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
文件存储格式为BSON(一种JSON的扩展)。
可通过网络访问。
安装配置
创建yum源
# vim /etc/yum.repos.d/mongodb-org.repo
[mongodb-org]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
# yum install -y mongodb-org //安装MongDB # vi /etc/mongod.conf bindIp: 0.0.0.0 #监听地址 port: 27017 #监听端口 # systemctl start mongod.service # netstat -anpt | 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):admin: 将用户添加到这个库,这个用户继承数据库所有权限
2): local : 这个库永远不被复制,可以存储限于本地单台服务器的任意集合
3):config : 当Mongo用于分片设置时,这个库在内部使用,保存分片的相关信息
# mongo //进入数据库 > db.version() //查看版本 > show dbs; // 查看数据库 > db.getMongo() //查看当前数据库机器的连接地址 > db.集合名.help //显示集合操作命令 > show users //显示用户
增删改查
> 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() //统计有多少条数据
MongoDB数据类型
String: 字符串,最常用,必须是utf-8
Boolean:布尔值,true 或者false
Integer:整数
Double:浮点数
Arrays:数组或者列表,多个值存储到一个键
Object:用于嵌入文档,即一个值为一个文档
Null:存储null值
Binary Data : 二进制数据,用于存储二进制数据
Date:存储当前日期或时间unix时间格式
查看数据类型
> a=db.info.findOne({"id":1}) //查找指定记录并赋予别名a > typeof(a.id) //查看属性类型
备份与恢复管理
导入导出
导出: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行
备份与恢复
备份:mongodump
恢复:mongorestore
选项:
1): -h 指定Mongodb所在服务器的地址也可以指定端口(例:-h 127.0.0.1:27017)
2): -d :需要备份的数据库
3): -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"})
安全管理
创建管理用户
启动是必须指定 auth=true
可以将用户分配角色
内置数据库用户角色: read 、 readWrite
数据库管理员角色: dbAmin 、 dbOwner 、 userAdmin
超级用户角色 : root
# vi /etc/mongod.conf auth=true //添加 # mongo > use admin > db.createUser({"zkc":"root","pwd":"123","roles":["root"]}) //创建用户zkc 密码123 分配到root角色 > db.auth("root","123") //验证用户
进程管理
查看当前正在运行的进程: db.currentOp()
终止正在运行的进程: db.killOp(opid值)
> db.currentOp() //查看
......
"opid" : 4872,
db.killOp(4872) //终止4872进程
MongoDB监控
MongoDB提供一些内置工具可以监测数据库的状态信息
查看数据库实例的状态信息: db.serverStatus()
查看数据库的统计信息: db.stats()
此外也可以通过web界面查看系统监控信息需要在配置文件中加入
vim /etc/mongod.conf
httpinterface=true
然后浏览器访问: http://localhost:28017
相关文章推荐
- mongodb的命令行操作命令详解(增删改查、高级查询)
- linux iostat命令详解和使用实例(磁盘操作监控工具)
- mongodb的命令行操作命令详解(增删改查、高级查询)
- Linux 文件的管理与目录之 ls 、 cp 命令操作详解
- linux iostat命令详解 磁盘操作监控工具
- MongoDB 关于索引操作命令实例详解
- MyCat 管理命令与监控 详解
- 【Linux命令详解】2、文件和目录操作管理―(pwd、cd、ls、mkdir、rmdir、tree)
- MongoDB常用的操作命令详解
- MongoDB基本管理命令操作
- mongodb监控工具mongostat的使用及命令详解
- MySQL5.5.22版本安装配置以及基本命令的使用和管理数据库备份与恢复操作详解
- MongoDB基础命令以及操作示例详解
- MongoDB常用命令汇总之插入、更新和删除操作详解。
- 关于MongoDB索引管理-索引的创建、查看、删除操作详解
- linux iostat命令详解和使用实例(磁盘操作监控工具)
- linux iostat命令详解和使用实例(磁盘操作监控工具)
- 【MongoDB】MongoDB入门(一)基本操作&常用命令
- Linux文件操作详解(十)--文件/文件夹的复制(cp命令)