MongoDB -- 介绍、安装、库管理、备份以及恢复

Mongodb 介绍

文档型数据库

C++语言编写,分布式文件存储的开源数据库系统,属于NoSQL

在高负载的情况下,可以添加更多的节点,保证服务器的性能

为WEB应用提供可扩展的高性能数据存储解决方案。

将数据存储为一个文档,数据结构由键值对组成,MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组以及文档数组。

从3.2开始默认使用WiredTiger storage engine.

NoSQL MongoDB安装

vim /etc/yum.repos.d/mongodb-org-3.4.repo
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=
gpgcheck=1
enabled=1
gpgkey=

yum install -y mongodb-org
#sed -i "s%bindIp: 127.0.0.1%#bindIp: 127.0.0.1%g" /etc/mongod.conf  监听所有的IP,监听多个192.168.1.1,192.168.1.2 使用逗号隔开

卸载

yum erase $(rpm -qa | grep mongodb-org)
rm -r /var/log/mongodb
rm -r /var/lib/mongo

进入mongo shell时 提示

关于读写的认证部分(第一个警告),warning 暂时未解决,按照官方文档操作亦有此问题。

修改内核

echo never >/sys/kernel/mm/transparent_hugepage/enabled
echo never >/sys/kernel/mm/transparent_hugepage/defrag

systemctl start mongod.service
chkconfig mongod on   设置开机启动

无法启动时 可以使用 mongodb -f /etc/mongodb.conf 来启动 ,可以查看错误

Mongodb 连接和用户管理

mongo 进入到mongodb shell中 (--port 指定端口  默认的端口27017)

连接远程主机  mongo --host  127.0.0.1

mongo -uusername    -ppasswd

用户管理(针对库),建立用户时要先进入到对应的库里

use test   (切换库,没有自动创建)

db   //显示所在的数据库

db.createUser({user:"admin",pwd:"123456",roles:[{role:‘dbOwner‘,db:‘userdb‘}]})

use admin

db.system.users.find()   //必须在admin库里 才能找到所有用户,列出所有用户,需要切换到admin库

show users;  //查看当前库的所有用户

db.dropUser(‘admin‘)  //删除用户

MongoDB库管理

db.version()  //查看版本号

use test   (切换库,没有自动创建)

show dbs   //查看库,此时userdb并没有出现,这是因为该库是空的,还没有任何集合,只需要创建一个集合就能看到了

db.createCollection(‘clo1‘)  //创建集合clo1,在当前库下面创建

db.dropDatabase()       //删除当前库,必须切换到库下再删除

db.stats()   //查看当前库信息

db.serverStatus()

db.createCollection(‘clo1‘,{capped:true,autoIndexID:true,size:6142800,max:10000})

capped:true   启用封顶集合,固定大小的集合,到达最大值时,自动覆盖最早的条目。如果为true,需要指定尺寸大小。

,autoIndexID:true 自动创建索引 _id字段的默认是false

size 指定最大字节的封顶集合,单位 B

max  指定封顶集合允许在文件的最大数量。

show collections  //查看所有集合   可以用 show tables

db.clo1.insert({clo1ID:1,UserName:"123",password:"123456"})   //如果集合不存在,自动创建集合

db.Account.find()   //查看Account的所有文档

db.Account.find({AccountID:2})   //查看AccountID的内容

db.clo1.update({clo1ID:1},{"$set":{"Age":20}})

db.clo1.remove({clo1ID:1})    //根据条件删除

db.clo1.drop()   //删除所有文档,即删除组合

db.printCollectionStats()   //查看集合状态

MongoDB副本集(repl set)

副本集,这种模式下有一个主(primary),多个从(secondary),只读。支持给他们设置权重,当主宕掉后,权重最高的从切换为主(备用的权重需要比其他的高)。此架构中,可以建立一个仲裁的角色,只负责裁决,而不存储数据(也是一个Mongodb的数据库),读写数据都在主上,要实现负载均衡的目标需要手动指定读库目标server。

修改配置文件   /etc/mongod.conf

replication:

test01

mongod

use admin

>  config={_id:"test01",members:[{_id:0,host:"192.168.1.88:27017"},{_id:1,host:"192.168.1.89:27017"},{_id:2,host:"192.168.1.90:27017"}]}

>    rs.initiate(config)   //查看状态rs.status() 可能不需要执行下面步骤

>    rs.add("192.168.1.89")

>    rs.add("192.168.1.90")

>   rs.status() 查看状态

如果两个从上的状态 为  “stateStr”:"STARTUP",则需要如下操作:

> var config={_id:"test01",members:[{_id:0,host:"192.168.1.88:27017"},{_id:1,host:"192.168.1.89:27017"},{_id:2,host:"192.168.1.90:27017"}]}

> rs.reconfig(config)

再次查看rs.status()状态       SECONDARY

权重设置:默认三台权重都是1,如果任何一台的权重设置比其他的高,则该机器马上切换为primary角色,所以 88:3  89:2 90:1

在主上执行

cfg=rs.conf()

cfg.members[0].priority = 3

cfg.members[1].priority = 2

cfg.members[2].priority = 1

rs.reconfig(cfg)                   //89节点会成为候选主节点

MongoDB备份与恢复

备份库

mongodump -h ip -d dbname -o dir    //-h 后面跟服务ip  -p port  -d database 名字 ,不加则备份所有的数据库, -o 备份的目录

备份指定的集合

mongodump -d mydb -c testc -o /tmp/test     //-c 指定集合的名字

导出集合为json文件

mongoexport -d mydb -c testc -o /tmp/testc.json   //-o后面跟的是文件的名字

恢复所有的库

mongorestore --drop /tmp/123         //--drop 删除原库  然后在恢复  /tmp/123 备份所有库目录的名字

恢复指定的库

mongorestore  -d mydb dir/     //-d 要恢复库的名字  dir 该库备份时所在的目录

恢复集合

mongorestore  -d mydb -c test dir/mydb/testc.bson    //-c需要恢复的集合的名字  dir 备份时的路径 需要指定要恢复的bson文件

导入集合

mongoimport -d mydb -c testc --file /tmp/testc.json

时间: 2024-08-08 01:25:32

MongoDB -- 介绍、安装、库管理、备份以及恢复的相关文章

MongoDB备份和恢复

前面两篇文章介绍了mongodb的搭建与使用:http://msiyuetian.blog.51cto.com/8637744/1720559 以及mongodb的副本集部署:http://msiyuetian.blog.51cto.com/8637744/1722406 下面我们来介绍mongodb的备份和恢复 一.MongoDB备份 1.准备工作 1)创建库.集合 > use mydb                                                      

MongoDB导入、导出、备份、恢复、用户授权(四)

五:MongoDB导入.导出.备份.恢复.用户授权 一:数据导出,数据导入 作为DBA(管理员),经常会碰到导入导出数据的需求,下面介绍实用工具(自带的): 1:数据导入 mongoexport 导出csv格式的文件 ./mongoexport -d Test -c user1 -o /tmp/user1.out     --指定导出文件位置及文件名 数据库       集合(表) ./mongoexport -d my_mongodbTest -c user --csv -f uid,name

gitlab安装,使用,备份,恢复

gitlab安装,使用,备份,恢复 git是一个版本控制器在分布式版本控制系统里,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来. 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复.因为每一次的提取操作,实际上都是一次对代码仓库的完整备份. 1.gitlab介绍 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,操作起来特别方便. 2.Gitlab安装与配置 2.1yum安装软件

xtrabackup工具 进行备份和恢复介绍

一.环境准备: 系统CentOS Linux release 7.2.1511 (Core) X_86 64位最小化安装mysql版本是官方二进制版本5.7.22-22,mysql采用的是二进制安装,单机上开启2个mysql实例,mysql实例要开启定时器event_scheduler=ON. 而且2个mysql实例都要开启Gtidxtrabackup 采用的是rpm包安装,版本是version 2.4.13 1.创建测试数据: 创建一个定时器和存储过程来生成数据模拟演示xtrabackup 的

Linux系统中备份和恢复MongoDB数据的教程

版本:mongodb3.2.6 备份格式: /data/mongodb/bin/mongodump -h IP --port 端口号 -u 用户 -p 密码-d 数据库名-o 存储路径 恢复格式: /mnt/mongodb/bin/mongorestore -h IP --port 端口号 -u 用户名-p密码  -d 数据库名 备份的文件夹名/* 注意,如果mongodb开启了认证登录,那么需要加参数--authenticationDatabase=admin, 因为笔者使用的mongodb开

MongoDB学习笔记(一) MongoDB介绍及安装

这是MongoDB的系列学习笔记的第一篇,主要介绍什么是非关系型数据库MongoDB,如何下载,去哪儿下载,又该怎么正确的安装等一系列问题. 一.前言 最近开始学习非关系型数据库MongoDB,却在博客园上找不到比较系统的教程,很多资料都要去查阅英文网站,效率比较低下.本人不才,借着自学的 机会把心得体会都记录下来,方便感兴趣的童鞋分享讨论.部分资源出自其他博客,旨将零散知识点集中到一起,如果有侵犯您的权利,请联系li- [email protected].大部分内容均系原创,欢迎大家转载分享,

bitnami redmine安装、配置、备份、恢复(这篇文章靠谱)

bitnami redmine安装.配置.备份.恢复 2012-12-17 12:33 2596人阅读 评论(0) 收藏 举报 1. 安装时语言选择英文,不可以选择中文,否则不能正常运行,可以在账户里改为显示中文: 2. 安装完成后,最上面的标题栏字体太小,修改: D:\BitNami\redmine-2.1.4-0\apps\redmine\htdocs\public\themes\classic\stylesheets\application.css 中  #top-menu { font-

MongoDB介绍和安装

Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),以灵活的数据存储方式受到当前IT从业人员的青睐.现在就简单介绍下Mongo DB.Mongo DB的安装.以及与关系型数据库的区别. 简单介绍: Mongo DB的数据被分组存储在数据集中,称之为一个集合(Collenction).每个 集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档.集合的概念类似关系型数据库里的table,不同的是它不需要定义任何schema. MongoDB使用BSON(Binar

MongoDB整库备份与还原以及单个collection备份、恢复方法

mongodb数据库维护离不开必要的备份.恢复操作,而且一般不会出错,所以我们在使用的时候大部分时候使用备份和恢复操作就可以了 mongodump.exe备份的原理是通过一次查询获取当前服务器快照,并将快照写入磁盘中,因此这种方式保存的也不是实时的,因为在获取快照后,服务器还会有数据写入,为了保证备份的安全,同样我们还是可以利用fsync锁使服务器数据暂时写入缓存中. 高效开源数据库(mongodb)下载地址:http://www.jb51.net/softs/41751.html 备份前的检查