8篇MongoDB教程快速学会入门 第7篇 运维技术

转自:http://www.eduyo.com/database/nosql/811.html

这一篇我们以管理员的视角来看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:

 

二:状态监控 站长教学网 eduyo.com

     监控可以让我们实时的了解数据库的健康状况以及性能调优,在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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一关于MongoDB入门技术博客。 MongoDB是一个流行的NoSQL数据库,它可以处理大量的非结构化和半结构化数据。MongoDB的设计目标是提供高性能、高可用性和可伸缩性的数据库解决方案。在本文中,我们将介绍MongoDB的基本概念和使用方法。 安装MongoDB 在开始使用MongoDB之前,您需要先安装它。MongoDB可在官方网站上下载。根据您的操作系统,选择适当的安装包进行下载。我们在这里以Linux为例进行安装。 1. 下载MongoDB 您可以在官方网站上下载MongoDB。选择适当的安装包并下载。 2. 安装MongoDB 在Linux上,您可以使用以下命令安装MongoDB: ``` sudo apt-get install mongodb ``` 3. 启动MongoDB 安装完成后,您可以使用以下命令启动MongoDB: ``` sudo service mongodb start ``` 4. 连接MongoDB 您可以使用以下命令连接MongoDB: ``` mongo ``` 现在您已经成功安装和启动了MongoDB。 基本概念 在开始使用MongoDB之前,您需要了解一些基本概念。 1. 数据库 MongoDB存储数据的主要单元是数据库。每个数据库都有自己的集合和文档。 2. 集合 集合是一组相关文档的容器。它类似于关系数据库中的表。集合不需要预定义架构,因此可以存储各种类型的文档。 3. 文档 文档是MongoDB的基本单元,类似于关系数据库中的行。文档是一个JSON对象,可以包含各种类型的数据。 4. 字段 字段是文档中的一个属性。它包含一个名称和一个值。MongoDB文档可以包含嵌套的字段。 使用MongoDB 现在,我们将介绍如何使用MongoDB。 1. 创建数据库 您可以使用以下命令创建一个新的数据库: ``` use mydatabase ``` 在这个例子中,我们创建了一个名为“mydatabase”的数据库。 2. 创建集合 您可以使用以下命令创建一个新的集合: ``` db.createCollection("mycollection") ``` 在这个例子中,我们创建了一个名为“mycollection”的集合。 3. 插入文档 您可以使用以下命令向集合中插入一个文档: ``` db.mycollection.insert({"name": "John", "age": 30}) ``` 在这个例子中,我们向“mycollection”集合中插入了一个名为“John”的文档,他的年龄为30。 4. 查询文档 您可以使用以下命令查询集合中的文档: ``` db.mycollection.find() ``` 在这个例子中,我们查询了“mycollection”集合中的所有文档。 5. 更新文档 您可以使用以下命令更新集合中的文档: ``` db.mycollection.update({"name": "John"}, {"$set": {"age": 35}}) ``` 在这个例子中,我们将名为“John”的文档的年龄更新为35岁。 6. 删除文档 您可以使用以下命令删除集合中的文档: ``` db.mycollection.remove({"name": "John"}) ``` 在这个例子中,我们删除了名为“John”的文档。 7. 删除集合 您可以使用以下命令删除集合: ``` db.mycollection.drop() ``` 在这个例子中,我们删除了名为“mycollection”的集合。 总结 本文介绍了MongoDB的基本概念和使用方法。MongoDB是一个流行的NoSQL数据库,它可以处理大量的非结构化和半结构化数据。通过学习本文,您可以开始使用MongoDB,并为自己的项目选择最合适的数据库解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值