MongoDB-服务器管理

前言

本文主要涉及一下内容:数据库的备份和恢复,对于任一数据库来说备份至关重要;数据的导入和导出;数据库修复;数据库状态监控工具mongostat;在使用过程遇到其他命令会总结在此。

1.数据库的备份和恢复

1.1 复制数据文件

备份:使用此方法时必须保证数据文件不发生变化,可以使用fsynclock命令,> db.fsyncLock()

一旦运行该命令,就会锁定数据库,禁止任何写入,并进行同步,把数据刷到磁盘。当命令返回后,就可以复制数据文件了,如备份名为myDB的数据库,只需复制所有名为myDB.*的文件,如果使用了—directoryperdb选项,只需复制该数据库对应的整个数据目录。复制完成后,使用> db.fsyncUnlock()解锁数据库。

注意:如果启用了身份验证,那么,在调用fsyncLock和fsyncUnlock期间不要关闭shell否则只能重启mongod服务了。

恢复:保证mongod服务没启动,待恢复目录为空,将备份的数据文件拷贝到数据库目录,最后启动mongod服务即可。

1.2 使用mongodump

使用mongodump可以单独备份数据库,集合,只不过备份和恢复的比较慢。可以使用mongodump –help查看可用选项。

备份:

备份整个foo数据库

mongodump –h 127.0.0.1:30000 –d foo –o /data/dbback/foo

备份foo数据库中的bar集合

mongodump –h 127.0.0.1:30000 –d foo –c foo.bar –o /data/dbback/foo/bar

备份多个集合,foo中的bar,info集合,使用逗号隔开

mongodump –h 127.0.0.1:30000 –d foo –c foo.bar, foo.infi –o /data/dbback/foo/cols

恢复:

使用mongorestore命令,其中有两个选项值得一提:

--drop:在恢复前删除现有集合,否则直接插入现有集合中

--noobjcheck:忽略对象插入集合之前的验证步骤

恢复单个数据库

mongorestore –h 127.0.0.1:30000 –d foo –dir /data/dbback/foo

恢复单个集合

mongorestore –h 127.0.0.1:30000 –d foo –c foo.bar –dir /data/dbback/foo/bar

恢复多个集合

mongorestore –h 127.0.0.1:30000 –d foo –c foo.bar,foo.infi –dir /data/dbback/foo /cols

1.3 备份副本集

直接使用复制数据文件的方式备份,这种方式备份副本集时无需做任何修改。

1.4 备份分片集群

第一步:关闭均衡器,

第二步:连接mongos执行mongodump备份

第三步:启用均衡器,

恢复备份的话,使用mongorestore连接到一个mongos执行即可

备份单个分片和备份单个服务器一样。

2.数据的导入和导出

数据导入导出就是两个命令:mongoimport和mongoexport

mongoimport,可以把CSV, TSV或者JSON格式的数据导入mongodb,其中几个有用的选项:

--headerline:对于CSV,TSV格式文件,使用第一行作为字段名称

--drop:导入前删除集合,否则追加集合后面

--ignoreblanks:不导入空字段

mongoimport –h 127.0.0.1:30000 –d foo –c foo.bar –type csv –headerline < csvfile

mongoexport,可以把mongodb数据导出JSON,CSV格式的文件。其中几个有用的选项:

--q:指定查询条件导出数据,默认为{}

--f:指定导出的字段名称

mongoexport –h 127.0.0.1:30000 –d foo –c foo.bar –q {} –type=csv > bar.csv

3.数据库状态监控

使用mongostat默认每一秒输出服务当前状态,输出主要字段说明表,使用方法mongostat –port 30000。

使用db.currentOp()可以查看数据库当前执行的操作有哪些。

表1 mongostat字段说明


insert


每秒插入的次数


query


每秒查询的次数


update


每秒更新的次数


delete


每秒删除的次数


getmore


每秒查询游标getmore次数


command


每秒执行的命令树,除增删改查,还有其它统计命令


flushes


每秒执行fsync将数据写入磁盘的次数


mapped


所有被mmap映射进内存的数据量,单位M


vsize


虚拟内存使用量,单位M


res


物理内存使用量,单位M


faults


每秒访问失败的次数,当faults居高不下时,一般是以下几个原因:

1. 磁盘空间不足

2. 内存不足

3. 磁盘IO达到瓶颈


qr|qw


表示读,写队列,高并发时队列的值一般会升高


ar|aw


表示活跃的读,写客户端数


netIn


每秒通过网络输入的字节数


netOut


每秒通过网络输出的字节数


conn


服务器打开的连接数,包括输入和输出连接

时间: 2024-10-11 04:14:12

MongoDB-服务器管理的相关文章

MongoDB的客户端管理工具--nosqlbooster 连接MongoDB服务器

nosqlbooster的官网地址为https://nosqlbooster.com.大家如果想直接下载,可以登入下载网址https://nosqlbooster.com/downloads. 下载windows 64位 1 连接登入 1 点击上面工具栏的[Connect]按钮 2 在弹出的Connections 界面中 点击[Create]按钮.因为是第一次,连接信息要新建. 3 在弹出的Connection Editor 界面编辑登入信息. 主要有三类信息要求输入 1. Basic:2.Au

MongoDB Web管理界面Mongo-express介绍

Mongo-express mongo express 是一个基于Node.js和express的开源的MongoDB Web管理界面. Github地址:https://github.com/andzdroid/mongo-express 功能 当前功能: 连接多个数据库 分别连接和认证独立的数据库 认证为管理员查看所有数据库 数据库 黑名单/白名单 集合(collections)的增删查改 文档(documents)的增删查改 在文档中使用BSON数据类型 限制 被编辑的文档必须有docum

最佳的MongoDB客户端管理工具

<最佳的MongoDB客户端管理工具> 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 一个好的MongoDB客户端管理工具,可以大大提高MongoDB应用的开发效率.MongoDB自带的Shell是一个很好的工具,但是它在操纵大数据集时就没那么直观了.因此使用MongoDB客户端GUI管理工具就非常必要了,下面推荐四个主要的工具. 一.MongoVUE 主页: http://www.mongovue.com/ M

MongoDB基本管理命令

这篇MongoDB基本管理命令比较全面,转载保留,原文 目录 MongoDB命令帮助系统 基本命令及实例 一基本命令 二基本DDL和DML 三启动与终止 四安全管理 五数据备份恢复与迁移管理 六远程连接管理 MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表:而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行.下面通过熟悉MongoDB的基本管理命令,来了

搭建 MongoDB 服务器,MongoDB 基本使用,数据导入导出

MongoDB 1.1软件介绍 ? 介于关系数据库和非关系数据库之间的产品 – 一个基于分布式文件存储的数据库. – 由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. – MongoDB 将数据存储为一个文档,数据结构由键值(key=>value) 对组成. – MongoDB 文档类似于 JSON 对象.字段值可以包含其他文档,数组及文档数组. 1.2软件特点 – 安装简单 – 面向文档存储,操作比较简单容易 – 支持丰富的查询表达 – 可以设置任何属性的索引 –

搭建MongoDB服务器

1 案例1:搭建MongoDB服务器 1.1 问题 满足以下要求: 在主机192.168.4.51上部署MongoDB服务 1.2 步骤 实现此案例需要按照如下步骤进行. 步骤一:搭建MongoDB服务器 1)在主机192.168.4.51上部署MongoDB服务 MongoDB: 介于关系数据库和非关系数据库之间的产品 一款基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案 将数据存储为一个文档(类似于JSON对象),数据结构由键值(key=>value)对组成 支

Redis教程(十二):服务器管理命令总结

转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/140.html 一.概述: Redis在设计之初就被定义为长时间不间断运行的服务进程,因此大多数系统配置参数都可以在不重新启动进程的情况下立即生效.即便是将当前的持久化模式从AOF切换到RDB也无需重启.    在Redis中,提供了一组和服务器管理相关的 ,其中就包含和参数设置有关的CONFIG SET/GET command. 二.相关命令列表: 命令原型 时间复杂度

Web服务器管理系列:11、注意默认的隐含共享

安装完Windows Server 2008之后默认的c/d/e...磁盘是共享的. 我们可以通过取消"Microsoft网络的文件和打印机共享"服务来阻止别人访问我们的共享文件: Web服务器管理系列:11.注意默认的隐含共享,布布扣,bubuko.com

mongoDB介绍、安装、搭建简单的mongoDB服务器(一)

相关网站 1. http://www.mongodb.org/ 官网,可以下载安装程序,和doc,和驱动等. 2. http://www.mongoing.com/ 国内官方网站,博客,问题谈论等 3. http://docs.mongoing.com/manual-zh/  中文文档的翻译. 4. https://github.com/mongodb GitHub源码,程序源码,驱动源码.以及工具.(可以看到所有版本) 5. https://jira.mongodb.org MongoDB B

Web服务器管理系列:4、WinPE

WinPE可以识别NTFS分区,使用WinPE可以备份/还原系统,可以重置用户密码. 首先给大家看下如何用WinPE重置密码: 放入WinPE光盘-〉启动后-〉点开始菜单-〉程序-〉系统维护-〉Windows用户密码修复 这是软件的主界面: 选择目标路径: 点击修改现有用户的密码: 输入新密码然后点"应用"按钮,密码即可轻松更换. 下面给大家看下备份功能: 打开诺顿Ghost 32: 点击"OK": 选择Local->partition->ToImage