MongoDB-3.2.6 副本集 和主从

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 副本集 和主从的更多相关文章
- MongoDB 删除,添加副本集,并修改副本集IP等信息
MongoDB 删除,添加副本集,并修改副本集IP等信息 添加副本,在登录到主节点下输入 rs.add("ip:port"); 删除副本 rs.remove("ip:po ...
- MongoDB 带访问控制的副本集部署
当你需要用到一个MongoDB 副本集集群,用于开发测试时, 可以通过下面的步骤简单完成. 版本及环境 MongoDB4.4 Centos6.5 一. 下载安装 MongoDB Server 及 ...
- 8.MongoDB系列之创建副本集(一)
1. 复制简介 在MongoDB中,创建副本集后就可以使用复制功能了,副本集是一组服务器,其中一个是用于处理写操作的主节点,还有多个用于保存主节点的数据副本的从节点,如果主节点崩溃了,则从节点会从中选 ...
- MongoDB的主从复制和副本集
mongoDB的两个特性主从复制和副本集,实现了数据的同步备份 一.主从复制 主从复制是一个简单的数据库同步备份的集群技术.例如主服务器宕机了,可以直接使用从服务器,主服务器恢复后在进行同步,保证了业 ...
- MongoDB 2.6配置副本集,支持端口号修改和用户登录认证
mongoDB系列之(二):mongoDB 副本集 Mongodb2.6副本集验证部署和认证 副本集有以下特点: 1. 最小构成是:primary,secondary,arbiter,一般部署是:pr ...
- MongoDB之主从复制和副本集(四)
简单主从复制 采用一主一从或一主多从的布署模式,可以将读写分离开来,提高数据库的可用性,不过mongodb的主从模式并不能在主节点崩溃后,从节点替换主节点的工作,一般可以在开发阶段使用. 实现步骤 设 ...
- mongodb学习之:副本集
前面一张介绍了主从模式,现在mongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式.副本集不能在一台电脑上操作.需要准备3台电脑进行搭建.副本集就是mongoDB副本所组成的一个集群. ...
- MongoDB系列之三(副本集配置)
今天我测试了一下MongoDB的副本集的配置. 首先从概念上说一下MongoDB副本集和主从复制的区别.其实副本集(Replica Set)是主从复制的高级形式.高级在哪里呢?主动复制实现了数据备份+ ...
- mongodb 系列 ~ mongo的副本集(3)
一 简介:今天咱们来聊聊mongodb复制的具体一些案例 二 副本集 1 当mongodb采用全量复制时,如何观察全量复制的进度 对比文件本身和primary大小 2 mongodb全量复制的过程 旧 ...
随机推荐
- (zz)linux awk
博文转载自http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 谢谢原作者.条理很清楚,由浅入深.敲了每一行命令,正确无误. ...
- cf126b(kmp好题)
http://codeforces.com/contest/126/problem/B #include<bits/stdc++.h> using namespace std; const ...
- PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别
开发站群软件,用到了根据访问域名判断子站点的相关问题,PHP获取当前域名有两个变量 $_SERVER['HTTP_HOST'] 和 $_SERVER['SERVER_NAME'],两者的区别以及哪个更 ...
- [BZOJ1146][CTSC2008]网络管理Network
[BZOJ1146][CTSC2008]网络管理Network 试题描述 M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个 部门之间协同工作,公司搭建 ...
- highcharts的表名
line:直线图 spline:曲线图 area:面积图 areaspline:曲线面积图 arearange:面积范围图 areasplinerange:曲线面积范围图 column:柱状图 col ...
- 刷了MIUI的手机在OSX下连接USB调试的方法
OSX下默认连接不上小米手机或者刷了MIUI的手机. 办法是: 1, 关于本机->系统报告->USB,在其中找到手机设备,然后查看其厂商ID,复制. 2,控制台执行下面这个命令,把其中的0 ...
- SQLPULS : 密码中有特殊字符的处理方法
前日在使用SQLPLUS访问oracle数据库时,系统提示密码过期,需要更新密码.于是不假思索的修改密码为xxx@2016(估计当时脑子抽风了),造成了杯具的开始. 再次进入SQLPLUS,输入用户名 ...
- sqlserver中分区函数 partition by的用法
partition by关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录, partition by ...
- Jmeter连接Mysql
1.下载连接mysql数据库jar包,地址:http://files.cnblogs.com/files/xiaoxitest/mysql-connector-java-5.1.28.zip(因不支持 ...
- js通过location.search来获取页面传来的参数
这篇文章主要介绍了通过window.location.search来获取页面传来的参数,经测试是OK的 ? 1 2 3 4 5 function GetQueryString(name) { var ...