`
文章列表
前一段时间使用repair命令修复线上的数据库,发现数据库中碎片巨大,占用200多G的数据在repair之后只有50多G,然后就研究了一下Mongodb是如何利用已经删除了的空间的。    分析下源码(源码版本2.2.2,新版本可能随时更新):    Mongodb在执行删除(文档)操作时,并不会进行物理删除,而是将他们放入每个命名空间维护的删除列表里。 //pdfile.cpp delete()        /
问题: 今天PHP 测试端出错。不知是否为MONGODB的问题。测试最时而正常,刷新多次后就出错。 想到是否为连接次数的原因呢,所以想到把最大连接数修改后,再让他们测试一下,是否问题依旧。   修改方法: --------------------------------------------------------------------------------------- 1.修改系统参数: vi /etc/rc.local#!/bin/sh## This script will be executed *after* all the other init scripts.# ...
mongostat详解 mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。 它的输出有以下几列: inserts/s 每秒插入次数 query/s 每秒查询次数 update/s 每秒更新次数 delete/s 每秒删除次数 getmore/s
一.安装 详细参考:http://redis.io/download 可能遇到的问题:1.和一般的安装不同,没有config和make install编译后就可执行2.在redhat 5.4 32位下面make出错undefined reference to__sync_add_and_fetch_4编译时使用:make CFLAGS="-march=i686"3.启动redis server后,SecureCRT进入redis-cli,输入不断在后面追加IP:Port显示设置当前的Session Options-->Terminal-->Emulation ...
一、驱动 mongo对应的java驱动的下载地址 https://github.com/mongodb/mongo-java-driver/downloads   二、文档 API文档的地址 http://api.mongodb.org/java/ 官方入门地址 http://www.mongodb.org/display/DOCS/Java+Tutorial 在java里像在shell里一样操作mongo的一个东东 http://www.jongo.org
Redis主从架构持久化存在一个问题,即前次测试的结论,持久化需要配置在主实例上才能跨越实例保证数据不丢失,这样以来主实例在持久化数据到硬盘的过程中,势必会造成磁盘的I/O等待,经过实际测试,这个持久化写硬盘的过程给应用程序带来的影响无法忍受;因而在大多数场景下,会考虑把持久化配置在从实例上,当主实例宕机后,通过手动或者自动的方式将从实例提升为主实例,继续提供服务!当主实例恢复后,先从原从实例上同步数据,同步完成后再恢复到原始的主从状态!要实现这种的要求,需要有keepalive的配合,一方面keepalive提供了VIP,可以避免修改应用程序连接,同时redis实例的配置文件监听部分也需要 ...
  目录[-] 1. 安装Keeplived依赖 2. 安装Keepalived 3. 配置Keepalived 4. 运行Keepalived 5. 总结
  Keepalived原理与实战精讲 http://bbs.ywlm.net/thread-845-1-1.htmlgotop&FinalBSD 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的
今天发现Jedis 默认的连接方式 jedis=new Jedis(“localhost”,6379),老是发生connection timeout. 后来发现jedis类包还有一种可以设置最大连接时间的方法。 1->获取Jedis实例需要从JedisPool中获取;2->用完Jedis实例需要还给JedisPool;3->如果Jedis在使用过程中出错,则也需要还给JedisPool;代码如下 复制代码 代码如下: JedisPoolConfig config = new JedisPoolConfig();  config.setMaxActive(100); ...
按照上一节中《搭建高可用mongodb集群(三)—— 深入副本集》搭建后还有两个问题没有解决: 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的。而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不行!“分片”就用这个来解决这个问题。 传统数据库怎么做海量数据读写?其实一句话概括:分而治之。上图看看就清楚了,如下 taobao岳旭强在infoq中提到的 架构图:
在上一篇文章《搭建高可用mongodb集群(二)—— 副本集》 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制。还是带着副本集的问题来看吧! 副本集故障转移,主节点是如何选举的?能否手动干涉下架某一台主节点。 官方说副本集数量最好是奇数,为什么? mongodb副本集是如何同步的?如果同步不及时会出现什么情况?会不会出现不一致性? mongodb的故障转移会不会无故自动发生?什么条件会触发?频繁触发可能会带来系统负载加重? Bully算法 mongodb副本集故障转移功能得益于它的选举机制。选举机制采用了Bully算法,可以很方便从分布式节点中选出主节点。一个分布式集群 ...
在上一篇文章《搭建高可用MongoDB集群(一)——配置MongoDB》 提到了几个问题还没有解决。 主节点挂了能否自动切换连接?目前需要手工切换。 主节点的读写压力过大如何解决? 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 这篇文章看完这些问题就可以搞定了。NoSQL的产生就是为了解决大数据量、高扩展性、高性能、灵活数据模型、高可用性。但是光通过主从模式的架构远远达不到上面几点,由此MongoDB设计了副本集和分片的功能。这篇文章主要介绍副本集:
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写、海量数据高效存储、高可扩展性和高可用性这些难题。不过就是因为这些问题Nosql诞生了。 NOSQL有这些优势: 大数据量,可以通过廉价服务器存储 ...
完整的搭建mongodb集群(副本集+分片)的例子。。。 准备四台机器,分别是bluejoe1,bluejoe2,bluejoe3,以及bluejoe0 副本集及分片策略确定如下:   将创建3个副本集,命名为shard1,shard2,shard3; 以上3个副本集作为3个分片; 每个副本集包含3个副本(主、辅1、辅2); 副本分开存储,即shard1存在bluejoe1、bluejoe2、bluejoe3上各一份。。。以此类推 将创建3个配置库实例,一台机器一个 bluejoe0上配置一个mongos(mongos一般可以配置在应用端) 画了一个图:     ...
一 简介 安装使用centos 5.10  Master 192.168.235.135 Slave 192.168.235.152 Vip 192.168.235.200 编译环境 yum -y install gcc gcc+ gcc-c++ openssl openssl-devel pcre pcre-devel   当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby; 当 Master 挂掉,Slave 正常时, Slave接管服务,同时关闭主从复制功能; 当 Master 恢复正常,则从Slave同步数据,同步数据之后 ...
Global site tag (gtag.js) - Google Analytics