存档

文章标签 ‘运维手册’

mongodb运维手册:常用命令

2012年4月9日 2,108 views 没有评论
概述
如果插入数据,mongodb会自动创建集合和数据库.如果查询不存在的集合,mongodb认为是一个空集.
即use mydb(不存在),并不会创建mydb,也不会报错,但如果插入了数据,则自动创建相应的数据库和集合, show dbs可以显示mydb.
mongodb的collection(集合)可对应传统关系数据库的table, document 对应行(记录)
按照时间先后顺序更新,the last update will “win.”,所以冲突不会破坏数据.
在MongoDB 中,写操作默认是通过 fire-and-forget 的模式来进行的,也就是说写操作通常不关心是否成功,发完请求后客户端就认为成功了。
Mongodb,也是支持IP限制,用户权限限制等一些常用的数据库权限设定,但一般不做限制,官方默认也是无权限认证的.
管理员常用的命令
help                         show help
show dbs                     show database names
sho[......]

Read more

分类: 数据库 标签: ,

mongodb运维手册:优化

2012年4月8日 3,724 views 没有评论
mongodb使用了memory mapped files, top输出的
VIRT  virtual size   : the size of mapped data
RES   resident bytes : how much data is being cached in RAM.
注意: mongodb的机制是预分配数据文件,最大的一次可以分配2G的数据文件. ext3据说分配文件比较慢.
由于预分配的关系, 数据文件可能比实际数据大得多,可能分配了额外的内存. 因为momory mapped files的机制,RES也需要分配相应的内存.
mongodb的内存并不能释放,因为内存是交给os来管理的. 单主机单节点,独立的mongodb主机,不用太过care. 但如果和其他服务部署在一起,可能导致内存资源的争用.
高性能
支持Group Commits, 批量写入数据,默认是100ms, 可以配置为2~300毫秒 .
对于一个insert操作,那么需要4次写入(写入collection,写入oplog, 再加上前面两个写入都记录日志)
字段名并不存储[……]

Read more

分类: 数据库 标签: ,

mongodb运维手册:监控

2012年4月7日 2,535 views 没有评论
mongodb监控
有一个免费的监控服务,MMS可以尝试下.会定时把你生产环境的性能数据发送到这个监控服务.有利于你监控生产或者开发环境.

Installation

  • Install Python (2.4+) and pymongo (1.9+)
  • See the README that comes with the agent or the complete docs for more information.
  • Start the agent:
    nohup python agent.py > /YOUR_LOG_DIRECTORY/agent.log 2>&1 &

Add Hosts

  • You do not have any hosts configured. Click the add host button To add a host, click the plus/+ button on the top of the page above to get started.
1. 获取mongo[……]

Read more

分类: 数据库 标签: ,

mongodb运维手册:复制,failover

2012年4月6日 2,278 views 没有评论
两种模式: replication set 和 master/slave
当前的存储引擎,不能确保single-server durability, 生产环境需要自动冗余切换,故需要用到replication set模式.
5.1 Replica Sets模式
Replica set 包括Primary node和secondary node
Replica set 其实就是一个有自动故障切换功能的主从集群.如果当前primary node失效了,会选举出一个新的primary node.如果宕机的node重启后,它将成为secondary node . mongodb保证当前只有一个实例是active的(primary node),可写入数据,保证强一致性.  客户端可以自动检测到primary node的变更,发送读写请求给新的primary node.
客户端参数是逗号分隔的主机名(ip):port 字符串.   192.168.1.1:27017,192,168.1.2:27017,192.168.1.3:27017

[……]

Read more

分类: 数据库 标签: ,

mongodb运维手册:备份

2012年4月5日 2,733 views 没有评论
mongodb的持久化
1.mongodb的设计理念是不依赖单机可靠性,靠复制集(replication set)的其他节点来实现高可用,当然,启用了Journaling日志后,mongodb的单机可靠性有了一定增加.
mongodb的应用,数据往往没那么重要,一般丢失一点数据并没有什么关系,所以宕机后,mongodb会优先切换到其他节点. 而传统数据库的策略往往是先进行crash recovery,可能很耗时.
具体原因参考 What about Durability?

 

mongodb备份

逻辑备份恢复工具mongoimport和mongoexport 略.可以导出databases或者collection为一个文件( JSON/CSV/TSV).
备份策略:
一般备份应选择闲时,以免资源严重争用.
由于mongodb的数据一般不是非常重要,一般部署多个节点,备份不考虑上传到ftp服务器. 本地会保留一个星期.
目前生产环境使用的是 基于时间点的 dump备份.
./mongodump –host 192.168.22.90 –op[……]

Read more

分类: 数据库 标签: ,

mongodb运维手册:部署和维护

2012年4月4日 3,108 views 没有评论
基础知识:
介绍 JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
mongo shell mongo is a full JavaScript shell, so any JavaScript function, syntax, or class can be used in the shell.
本文不介绍自动分片的机制和部署.
mongos ,这个程序相当于一个数据库的路由器,可以实现自动分片(auto-sharding) .
replication set的部署安装
Replica Sets 使用 n 个 Mongod 节点,构建具备自动容错转移(auto-failover)、自动恢复(auto-recovery) 的高可用方案
生产环境都必须是replication set模式,因为主从不能保障服务高可用.
至少保证有3个节点(或者2个节点+1个 arbiter. , 一般为2~7个node)
1.安装
wget http://fastdl.mongodb.org/linux/m[……]

Read more

分类: 数据库 标签: ,