Mongodb学习总结-7(运维技术)

这一篇我们以管理员的视角来看mongodb,作为一名管理员,我们经常接触到的主要有4个方面:

1.  安装部署

2.  状态监控

3.  安全认证

4.  备份和恢复,

下面我们就一点一点的讲解。

一:安装部署

我之前的文章都是采用console程序来承载,不过在生产环境中这并不是最佳实践,谁也不愿意在机器重启后满地找牙似找mongodb,

在mongodb里面提供了一个叫做“服务寄宿”的模式,我想如果大家对wcf比较熟悉的话很容易听懂。好了,我们实践一下,这里我开一下D盘

里面的mongodb。

这里要注意的有两点:

<1> logpath: 当我们使用服务寄宿的时候,用眼睛都能想明白肯定不会用console来承载日志信息了。

<2> install:   开启安装服务寄宿,很happy啊,把管理员的手工操作降低到最小,感谢mongodb。

好了,console程序叫我看log日志,那我就看看,发现mongodb已经提示我们如何开启mongodb,接着我照做就是了。

还要提醒大家一点的就是,这些命令参数很多很复杂也就很容易忘,不过没关系,数据库给我们提供了一个help方法,我们可以

拿mongod和mongo说事。

mongod:

mongo:

二:状态监控

监控可以让我们实时的了解数据库的健康状况以及性能调优,在mongodb里面给我们提供了三种方式。

1:http监视器

这个我在先前的文章中也提到了,这里就不赘述了。

2:serverStatus()

这个函数可以获取到mongodb的服务器统计信息,其中包括 :全局锁,索引,用户操作行为等等这些统计信息,对管理员来说非常

重要,具体的参数含义可以参考园友:http://www.cnblogs.com/xuegang/archive/2011/10/13/2210339.html

这里还是截个图混个眼熟。

3:mongostat

前面那些统计信息再牛X,那也是静态统计,不能让我观看实时数据变化,还好,mongodb里面提供了这里要说的mongodstat

监视器,这玩意会每秒刷新,在实际生产环境中大有用处,还是截张图,很有意思,是不是感觉大军压境了。

三: 安全认证

作为数据库软件,我们肯定不想谁都可以访问,为了确保数据的安全,mongodb也会像其他的数据库软件一样可以采用用户

验证的方法,那么该怎么做呢?其实很简单,mongodb提供了addUser方法,还有一个注意点就是如果在admin数据库中添加

将会被视为“超级管理员”。

上面的admin用户将会被视为超级管理员,“jack”用户追加的第三个参数表示是否是“只读用户”,好了,该添加的我们都添加了,

我们第一次登录时不是采用验证模式,现在我们使用--reinstall重启服务并以--auth验证模式登录。

好了,我们进入test集合翻翻数据看看情况,我们发现jack用户始终都是没有写入的权限,不管是授权或者未授权。

四:备份和恢复

这玩意的重要性我想都不需要我来说了吧,这玩意要是搞不好会死人的,mongodb里面常用的手段有3种。

1: 直接copy

这个算是最简单的了,不过要注意一点,在服务器运行的情况下直接copy是很有风险的,可能copy出来时,数据已经遭到

破坏,唯一能保证的就是要暂时关闭下服务器,copy完后重开。

2:mongodump和mongorestore

这个是mongo给我们提供的内置工具,很好用,能保证在不关闭服务器的情况下copy数据。

为了操作方便,我们先删除授权用户。

好了,我们转入正题,这里我先在D盘建立一个backup文件夹用于存放test数据库。

快看,数据已经备份过来了,太爽了,现在我们用mongorestore恢复过去,记住啊,它是不用关闭机器的。

提一点的就是 drop选项,这里是说我将test数据恢复之前先删除原有数据库里面的数据,同样大家可以通过help查看。

3:主从复制

这个我在上上篇有所介绍,这里也不赘述了。

其实上面的1,2两点都不能保证获取数据的实时性,因为我们在备份的时候可能还有数据灌在内存中不出来,那么我们

想说能不能把数据暴力的刷到硬盘上,当然是可以的,mongodb给我们提供了fsync+lock机制就能满足我们提的需求。

fsync+lock首先会把缓冲区数据暴力刷入硬盘,然后给数据库一个写入锁,其他实例的写入操作全部被阻塞,直到fsync

+lock释放锁为止。

这里就不测试了。

加锁:    db.runCommand({"fsync":1,"lock":1})

释放锁: db.$cmd.unlock.findOne()

时间: 2024-10-28 06:06:11

Mongodb学习总结-7(运维技术)的相关文章

8天学通MongoDB——第七天 运维技术

这一篇我们以管理员的视角来看mongodb,作为一名管理员,我们经常接触到的主要有4个方面: 1.  安装部署 2.  状态监控 3.  安全认证 4.  备份和恢复, 下面我们就一点一点的讲解. 一:安装部署 我之前的文章都是采用console程序来承载,不过在生产环境中这并不是最佳实践,谁也不愿意在机器重启后满地找牙似找mongodb, 在mongodb里面提供了一个叫做“服务寄宿”的模式,我想如果大家对wcf比较熟悉的话很容易听懂.好了,我们实践一下,这里我开一下D盘 里面的mongodb

心情笔记——从一次黑客攻击事件浅谈运维技术学习

昨天分享了一篇文章,是关于如何搭建Openvpn服务器实现免流上网,由于文章中的内容使用的是自己真实的服务器环境,文章分享出去以后得到了很多的浏览与搭建细节的咨询,但同时IP地址也遭到了泄露.随后就迎来了一轮又一轮的DDOS攻击,还好使用的并不是特大流量攻击,而且每次的攻击都是很短的时间,直到DDOS封堵后还继续有DDOS的攻击. 以前只接触过网络安全类问题,但并没有真正遇到过.这次的攻击事故给我提了个醒.如今的网络安全环境形式很复杂.身在学校的我们还没有真正接触到真实的生产环境,平时自己搭建的

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程 第一课 Linux运维经验分享与思路 1.一般把主机名,写到hosts下    127.0.0.1    hostname,因为很多应用要解析到本地.oracle没有这个解析可能启动不了. 2.注释掉UUID以及MAC地址,需要绑定网卡的时候,这个可能会有影响. 3.磁盘满了无法启动,  var下木有空间,无法创创建PID等文件,导致文件无法启动,按e   进入single  然后b  重启进入单用户模式. 4.ssh登陆系

运维技术规划

运维中关键技术点解剖:1 大量高并发网站的设计方案 :2 高可靠.高可伸缩性网络架构设计:3 网站安全问题,如何避免被黑?4 南北互联问题,动态CDN解决方案:5 海量数据存储架构 一.什么是大型网站运维? 首先明确一下,全文所讲的”运维“是指:大型网站运维,与其它运维的区别还是蛮大的:然后我们再对大型网站与小型网站进行范围定义,此定义主要从运维复杂性角度考虑,如网站规范.知名度.服务器 量级.pv量等考虑,其它因素不是重点:因此,我们先定义服务器规模大于1000台,pv每天至少上亿(至少国内排

IT计算机运维技术课程汇总

计算机运维技术课程汇总资料 原文地址:http://blog.51cto.com/13172026/2283299

linux运维技术(查看linux服务器状态常用命令)

最近发现大数据技术的一些部署,高可用,集群等和网站的负载均衡,自动化运维,灾备等其实有很多知识都是重合的,要学好linux运维相关,在大数据的研究上也会有所提高.既然工作需要去系统的去学习linux运维的技术,那就去好好的去学习它~~,况且我还很喜欢捣鼓这个. :) 先总结了解一台服务器状态的常用命令的总结:(以下是两台服务器测试的结果) (1)查看linux版本: [[email protected] home]# lsb_release -a LSB Version: :core-4.1-a

决心书之学习linux高级运维

我叫振鹏,我是一名在国企工作运维工程师,其实我不是一名合格运维工程师. 为什么我选择一条运维工程师的道路,当时候入门运维工程师比开发好玩,好入门,入门条件也不需要太苛刻,所以就选择了一条运维工程师的道路. 今年6月中旬,因为国企内部结构与业务发生重要的改变,我所在的整个团队都T了.所以现在可以说失业中,在6月中旬左右开始重新找工作.因为以前也是接触linux运维,所以再找一间linux的工作,但是在找工作当中才知道,我在国企内的几年时间里都是白费了.因为民营企业招linux运维,必须是找一名技术

学习老男孩linux运维-自我介绍-决心书

大家好,我叫吴德义. 我来自于福建省宁德市一个小山村,家境平平,毕业后一直在深圳工作,目前在深圳福田O2O公司工作,工作岗位:项目实施工程师,工资水平一般,工作内容:经常出差客户现场,现场安装部署公司的软件产品,并给客户培训产品的使用,在工作中linux使用的不多,由于对linux系统情有独钟,平常自己也喜欢琢磨linux技术,遇到不懂的常常也要查百度,缺少一个导师,所以我来到了老男孩培训linux,想在将来从事linux运维相关工作, 我的目标,在经过老男孩四个月学习后,我要达到的薪水目标为:

公开运维技术分享的一些经验

技术分享三条实战经验: ● 良好的逻辑性 ● 自己真实经验总结 ● 多练习 首先,说明下,我不是技术分享高手,分享了次数比较多,有点心得:另外,听的分享多了,对好坏也有一些感受. 还有,在此特别感谢下西山居的运维开发架构师,<Puppet实战>的作者刘宇,我的许多分享经验来自于宇哥,并且得到了宇哥多次的,一对一贴身的,手把手的指点. 一 什么是成功的技术分享 判断分享是否成功,关键是看自己要传递的想法,有没有被听众理解和接受,技术分享不是川普竞选,不追求热闹的效果,也不追求所有人都能听懂,一次