yum实例

vim /etc/yum.repos.d/mongodb-org-3.2.repo

[mongodb-org-3.2]
name=Mongodb
baseurl=http://repo.mongodb.org/yum/redhat/6Server/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1

然后yum -y install mongodb-org

便捷启动脚本(更正一下,3.0 以上有自己官方的脚本,而且是有优化过的。即 不推荐使用这个。可以修改/etc/init.d/mongod 里面的配置),注意脚本里用户为mongod,说以定义数据目录的时候和日志 和配置文件的时候都需要chown -R 不然mong连日志都没权限写进去。

(以下都可以复制粘贴执行)

优化一:

echo "never" > /sys/kernel/mm/transparent_hugepage/enabled&&echo "never" > /sys/kernel/mm/transparent_hugepage/defrag

优化二:

cat >/etc/security/limits.d/mongodb-nproc.conf <<V
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 35000
mongod soft nproc unlimited
V
#!/bin/bash
instance=$1
action=$2 case "$action" in 'start')
mongod -f /etc/$instance.cnf
;;
'stop')
mongod -f /etc/$instance.cnf --shutdown
;;
'restart')
mongod -f /etc/$instance.cnf --shutdown
mongod -f /etc/$instance.cnf
;;
esac #当然配置文件要放在/etc/下面咯 by:V
openssl rand -base64 741 > /data/mongo22.key --文件内容采base64编码,一共741个字符

修改文件权限:

chmod 600 /data/mongo22.key

配置文件实例

dbpath=/data/mongodata2
fork=true
port=27019
logpath=/data/log/mongolog2/mongodb1.log
auth=true
keyFile = /data/mongo22.key
replSet = qby

其中id 要和 replSet 中设置的一样。而 config_repl 这个名字 可以随意命名,相当于 副本集 的会议室。而members 相当于会议室里的成员。

> config_repl={_id:'gechongrepl',members:[
... {_id:0,host:'192.168.91.128:27017',priority:10},
... {_id:1,host:'192.168.91.129:27017',priority:9},
... {_id:2,host:'192.168.91.130:27017',priority:9}]}

之后的添加和删除节点可以用以下2个步骤来实现。

#比如会议的名称还是和上面一样是config_repl
> config_repl={_id:'gechongrepl',members:[
... {_id:0,host:'192.168.91.128:27017',priority:10},
... {_id:1,host:'192.168.91.129:27017',priority:9},]} >rs.reconfig(config_repl) #相当于重新加载了配置,这里你可以删除节点或者增加节点。
>rs.status() #然后查看状态

还有一种用rs.add("127.0.0.1:27020") 或者 rs.remove() 来进行。具体使用哪一种。自己区分。

============接下来 看一下主从。3.X 后面的主从有安全策略。当然要开启用户验证,不然有什么意义呢。 所以必须要开key 选项 这里为主的配置文件

Master

dbpath=/data/mongodata
fork=true
port=27017
logpath=/data/log/mongolog/mongodb1.log
auth=true
master=true
keyFile = /data/mongo.key

Slave

auth=true
dbpath=/data/mongodata
logpath=/data/log/mongolog/mongo1.log
fork=true
port=27017
slave=true #设置为slave
source=172.16.38.178:27017 #指定Master在哪
keyFile = /data/mongo.key

当然也要有一个用户验证。有人会疑惑用哪个用户来进行数据验证和同步呢。Master会将操作记录在 local。oplog里面,然后从服务器定期去获取oplog内容。在slave上执行。

如果发现主从不同步,从上手动同步

    db.runCommand({"resync":1})   #验证过,发现admin 里面的表会消失。 知道为什么的,可以告诉我一下。

状态查询

    db.runCommand({"isMaster":1})
#查询自己是不是master
在丛库上查询主库地址

    > use local;
switched to db local
> db.sources.find();
#查看主从复制状态

    db.printReplicationInfo();

MongoDB-3.2.6 副本集 和主从的更多相关文章

  1. MongoDB 删除,添加副本集,并修改副本集IP等信息

    MongoDB 删除,添加副本集,并修改副本集IP等信息 添加副本,在登录到主节点下输入 rs.add("ip:port"); 删除副本 rs.remove("ip:po ...

  2. MongoDB 带访问控制的副本集部署

    当你需要用到一个MongoDB 副本集集群,用于开发测试时, 可以通过下面的步骤简单完成. 版本及环境 MongoDB4.4  Centos6.5  一. 下载安装 MongoDB Server 及 ...

  3. 8.MongoDB系列之创建副本集(一)

    1. 复制简介 在MongoDB中,创建副本集后就可以使用复制功能了,副本集是一组服务器,其中一个是用于处理写操作的主节点,还有多个用于保存主节点的数据副本的从节点,如果主节点崩溃了,则从节点会从中选 ...

  4. MongoDB的主从复制和副本集

    mongoDB的两个特性主从复制和副本集,实现了数据的同步备份 一.主从复制 主从复制是一个简单的数据库同步备份的集群技术.例如主服务器宕机了,可以直接使用从服务器,主服务器恢复后在进行同步,保证了业 ...

  5. MongoDB 2.6配置副本集,支持端口号修改和用户登录认证

    mongoDB系列之(二):mongoDB 副本集 Mongodb2.6副本集验证部署和认证 副本集有以下特点: 1. 最小构成是:primary,secondary,arbiter,一般部署是:pr ...

  6. MongoDB之主从复制和副本集(四)

    简单主从复制 采用一主一从或一主多从的布署模式,可以将读写分离开来,提高数据库的可用性,不过mongodb的主从模式并不能在主节点崩溃后,从节点替换主节点的工作,一般可以在开发阶段使用. 实现步骤 设 ...

  7. mongodb学习之:副本集

    前面一张介绍了主从模式,现在mongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式.副本集不能在一台电脑上操作.需要准备3台电脑进行搭建.副本集就是mongoDB副本所组成的一个集群. ...

  8. MongoDB系列之三(副本集配置)

    今天我测试了一下MongoDB的副本集的配置. 首先从概念上说一下MongoDB副本集和主从复制的区别.其实副本集(Replica Set)是主从复制的高级形式.高级在哪里呢?主动复制实现了数据备份+ ...

  9. mongodb 系列 ~ mongo的副本集(3)

    一 简介:今天咱们来聊聊mongodb复制的具体一些案例 二 副本集 1 当mongodb采用全量复制时,如何观察全量复制的进度 对比文件本身和primary大小 2 mongodb全量复制的过程 旧 ...

随机推荐

  1. 升级到 PHP-7 遇到的坑 及 经验分享

    注意:上面这张图是QQ群网友分享的,图中提到的“被移除的函数”,call_user_func 和 call_user_func_array 在 PHP-7.0 的正式版中是可用的,也许是当时的 测试版 ...

  2. PHP控制输出不缓存头

    @header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); @header("Cache-Control: no-cache, ...

  3. 【Go入门教程7】并发(goroutine,channels,Buffered Channels,Range和Close,Select,超时,runtime goroutine)

    有人把Go比作21世纪的C语言,第一是因为Go语言设计简单,第二,21世纪最重要的就是并行程序设计,而Go从语言层面就支持了并行. goroutine goroutine是Go并行设计的核心.goro ...

  4. ReflectionToStringBuilder类

    ReflectionToStringBuilder类是用来实现类中的toString()方法的类,它采用Java反射机制(Reflection),通过reflection包中的AccessibleOb ...

  5. single-table inheritance 单表继承

    type 字段在 Rails 中默认使用来做 STI(single-table inheritance),当 type 作为普通字段来使用时,可以把SIT的列设置成别的列名(比如不存在的某个列). 文 ...

  6. Java volatile的用法---转载

    我们知道,在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步. 这在JVM 1.2之前,Java的内存模型实现总是从主 ...

  7. re.search 和 re.match

    相同点: 都返回找到的第一个匹配对象 >>> import re >>> m = re.search('(\w+) (\w+)', 'aaa bbb ccc ddd ...

  8. log4Net不能成功生成日志问题(关于配置错误)

    log4Net不能成功生成日志问题(关于配置错误) 调试发现问题原因在于  Log4Net IsInfoEnabled 一直为 false,返回的对象中所有 IsXXX 一直为false,这个问题的原 ...

  9. [转]MyEclipse 里查看jar文件源码

    在开发过程中,有时候需要查看jar文件的源码,这里讲解如何设置.  选中某一个jar文件,如我这里选中的是struts2-core-2.1.6.jar,然后右键-->Properties--&g ...

  10. C++库(Google Breakpad)

    Google Breakpad是什么? 一个开源的多平台崩溃报告系统. Google breakpad是一个非常实用的跨平台的崩溃转储和分析模块,它支持Windows,Linux和Mac和Solari ...