mongodb-3.2.8 单机复制集安装
规划:
replSet 复制集名称: rs1
MongoDB数据库安装安装路径为:/usr/local/mongodb/
复制集成员IP与端口:
节点1: localhost:28010 (默认的primary节点)
节点2: localhost:20811
节点3: localhost:28012
复制集各节点的数据文件,日志文件,私钥文件路径:
节点1: /data/data/r0 , /data/log/r0.log , /data/key/r0
节点2: /data/data/r1 , /data/log/r1.log , /data/key/r1
节点3: /data/data/r2 , /data/log/r2.log , /data/key/r2
$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.8.tgz
--2016-07-22 11:17:12-- https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.8.tgz
Resolving fastdl.mongodb.org (fastdl.mongodb.org)... 54.182.5.247, 54.182.5.9, 54.182.5.45, ...
Connecting to fastdl.mongodb.org (fastdl.mongodb.org)|54.182.5.247|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 71943658 (69M) [application/x-gzip]
Saving to: ‘mongodb-linux-x86_64-rhel70-3.2.8.tgz’
100%[===============================================================================>] 71,943,658 116KB/s in 16m 37s
2016-07-22 11:33:51 (70.5 KB/s) - ‘mongodb-linux-x86_64-rhel70-3.2.8.tgz’ saved [71943658/71943658]
$tar zxvf mongodb-linux-x86_64-rhel70-3.2.8.tgz -C /usr/local/
$mv mongodb-linux-x86_64-rhel70-3.2.8 mongodb
1) 创建数据文件存储路径
[root@node222 mongodb]# mkdir -p /data02/mongors/data/r0
[root@node222 mongodb]# mkdir -p /data02/mongors/data/r1
[root@node222 mongodb]# mkdir -p /data02/mongors/data/r2
2)创建日志文件路径
[root@node222 mongodb]# mkdir -p /data02/mongors/log
3)创建主从key文件
用于标识集群的私钥的完整路径,如果各个实例的key file内容不一致,程序将不能正常使用
[root@node222 mongodb]# mkdir -p /data02/mongors/key
[root@node222 mongodb]# echo "this is rs1 key" > /data02/mongors/key/r0
[root@node222 mongodb]# echo "this is rs1 key" > /data02/mongors/key/r1
[root@node222 mongodb]# echo "this is rs1 key" > /data02/mongors/key/r2
[root@node222 mongodb]# chmod 600 /data02/mongors/key/r*
4)启动3个实例
依次添加启动参数,其中三个MongoDB实例:
[root@node222 mongodb]# /usr/local/mongodb/bin/mongod --replSet rs1 --keyFile /data02/mongors/key/r0 --fork --port 28010 --dbpath /data02/mongors/data/r0 --logpath=/data02/mongors/log/r0.log --logappend
about to fork child process, waiting until server is ready for connections.
forked process: 16629
child process started successfully, parent exiting
[root@node222 mongodb]# /usr/local/mongodb/bin/mongod --replSet rs1 --keyFile /data02/mongors/key/r1 --fork --port 28011 --dbpath /data02/mongors/data/r1 --logpath=/data02/mongors/log/r1.log --logappend
about to fork child process, waiting until server is ready for connections.
forked process: 16666
child process started successfully, parent exiting
[root@node222 mongodb]# /usr/local/mongodb/bin/mongod --replSet rs1 --keyFile /data02/mongors/key/r2 --fork --port 28012 --dbpath /data02/mongors/data/r2 --logpath=/data02/mongors/log/r2.log --logappend
about to fork child process, waiting until server is ready for connections.
forked process: 16703
child process started successfully, parent exiting
[root@node222 mongodb]#
注:启动命令的参数分别为,mongod为主启动命令, replSet指定复制集名称为rs1,keyfile指定公钥文件 ,fork指定启动方式为deamo后台启动;port指定端口号,dbpath指定数据文件目录,logpath指定日志文件,logappend指定错误日志为日志追加模式;
通过进程和端口,验证启动状态:
[root@node222 mongodb]# ps -ef|grep mongo
root 16629 1 0 17:36 ? 00:00:00 /usr/local/mongodb/bin/mongod --replSet rs1 --keyFile /data02/mongors/key/r0 --fork --port 28010 --dbpath /data02/mongors/data/r0 --logpath=/data02/mongors/log/r0.log --logappend
root 16666 1 0 17:36 ? 00:00:00 /usr/local/mongodb/bin/mongod --replSet rs1 --keyFile /data02/mongors/key/r1 --fork --port 28011 --dbpath /data02/mongors/data/r1 --logpath=/data02/mongors/log/r1.log --logappend
root 16703 1 0 17:36 ? 00:00:00 /usr/local/mongodb/bin/mongod --replSet rs1 --keyFile /data02/mongors/key/r2 --fork --port 28012 --dbpath /data02/mongors/data/r2 --logpath=/data02/mongors/log/r2.log --logappend
root 16739 12972 0 17:37 pts/1 00:00:00 grep --color=auto mongo
[root@node222 mongodb]# netstat -tunlp |grep mong
tcp 0 0 0.0.0.0:28010 0.0.0.0:* LISTEN 16629/mongod
tcp 0 0 0.0.0.0:28011 0.0.0.0:* LISTEN 16666/mongod
tcp 0 0 0.0.0.0:28012 0.0.0.0:* LISTEN 16703/mongod
[root@node222 mongodb]#
5)配置及初始化 Replica Sets
登录到primary服务器上:
# /usr/local/mongodb/bin/mongo -port 28010
配置复制集:
> config = {_id: 'rs1', members: [
{_id: 0, host: 'localhost:28010',priority:1},
{_id: 1, host: 'localhost:28011'},
{_id: 2, host: 'localhost:28012'}]
}
初始化配置,使上面的配置生效:
> rs.initiate(config);
6)查看复制集状态
> rs.status()
在primary节点上查看复制集状态:
> rs.isMaster()
可以再primary节点进行各种添删改查等各种数据操作,其他非master节点不能进行各种数据操作,也不能发起复制集修改命令
过程如下:(securecrt执行时候总是会复制一下回显)
[root@node222 mongodb]# /usr/local/mongodb/bin/mongo -port 28010
MongoDB shell version: 3.2.8
connecting to: 127.0.0.1:28010/test
> use adminduse admind
switched to db admind
> use adminuse admin
switched to db admin
> config = {_id: 'rs1', members: [config = {_id: 'rs1', members: [
... {_id: 0, host: 'localhost:28010',priority:1}, {_id: 0, host: 'localhost:28010',priority:1},
... {_id: 1, host: 'localhost:28011'}, {_id: 1, host: 'localhost:28011'},
... {_id: 2, host: 'localhost:28012'}] {_id: 2, host: 'localhost:28012'}]
... } }
{
"_id" : "rs1",
"members" : [
{
"_id" : 0,
"host" : "localhost:28010",
"priority" : 1
},
{
"_id" : 1,
"host" : "localhost:28011"
},
{
"_id" : 2,
"host" : "localhost:28012"
}
]
}
> rs.initiate(config);rs.initiate(config);
{ "ok" : 1 }
rs1:OTHER>
rs1:SECONDARY>
rs1:SECONDARY> rs.status()rs.status()
{
"set" : "rs1",
"date" : ISODate("2016-07-22T09:40:47.831Z"),
"myState" : 1,
"term" : NumberLong(1),
"heartbeatIntervalMillis" : NumberLong(2000),
"members" : [
{
"_id" : 0,
"name" : "localhost:28010",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 266,
"optime" : {
"ts" : Timestamp(1469180428, 2),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2016-07-22T09:40:28Z"),
"infoMessage" : "could not find member to sync from",
"electionTime" : Timestamp(1469180428, 1),
"electionDate" : ISODate("2016-07-22T09:40:28Z"),
"configVersion" : 1,
"self" : true
},
{
"_id" : 1,
"name" : "localhost:28011",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 31,
"optime" : {
"ts" : Timestamp(1469180428, 2),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2016-07-22T09:40:28Z"),
"lastHeartbeat" : ISODate("2016-07-22T09:40:46.077Z"),
"lastHeartbeatRecv" : ISODate("2016-07-22T09:40:47.815Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "localhost:28010",
"configVersion" : 1
},
{
"_id" : 2,
"name" : "localhost:28012",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 31,
"optime" : {
"ts" : Timestamp(1469180428, 2),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2016-07-22T09:40:28Z"),
"lastHeartbeat" : ISODate("2016-07-22T09:40:46.104Z"),
"lastHeartbeatRecv" : ISODate("2016-07-22T09:40:47.813Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "localhost:28010",
"configVersion" : 1
}
],
"ok" : 1
}
rs1:PRIMARY> rs.isMaster()rs.isMaster()
{
"hosts" : [
"localhost:28010",
"localhost:28011",
"localhost:28012"
],
"setName" : "rs1",
"setVersion" : 1,
"ismaster" : true,
"secondary" : false,
"primary" : "localhost:28010",
"me" : "localhost:28010",
"electionId" : ObjectId("7fffffff0000000000000001"),
"maxBsonObjectSize" : 16777216,
"maxMessageSizeBytes" : 48000000,
"maxWriteBatchSize" : 1000,
"localTime" : ISODate("2016-07-22T09:41:07.987Z"),
"maxWireVersion" : 4,
"minWireVersion" : 0,
"ok" : 1
}
rs1:PRIMARY>
mongodb-3.2.8 单机复制集安装的更多相关文章
- 单机Mongo复制集安装配置(数据库版本:4.x)
官方文档: https://docs.mongodb.com/manual/tutorial/deploy-replica-set-with-keyfile-access-control/#dep ...
- mongodb3.2.3 复制集安装步骤
mongodb 复制集 测试 node1: 172.18.20.161 47000 (主)node2: 172.18.20.162 47000 (副)node3: 172.18.20.163 4700 ...
- MongoDB基础之九 replication复制集
准备工作:创建目录 mkdir -p /home/m17 //home/m18 /home/m19 /home/mlog 1:启动3个实例,且声明实例属于某复制集 # ./bin/mongod --d ...
- MongoDB DBA 实践4-----创建复制集
一.复制 复制允许多个数据库服务器共享相同数据的功能,从而确保冗余并促进负载平衡 1.数据冗余及可用性 复制技术提供数据冗余及可用性,在不同的数据库服务器上使用多个数据副本,复制技术防止单个数据库服务 ...
- MongoDB for OPS 02:复制集 RS 配置
写在前面的话 对于生产环境而言,除非是非常不重要的业务,且该业务允许我们出现一定时间的停机,我们一般才会使用单节点,且该单节点必须要有完善的备份手段. RS 复制集 我们这里采取一主两从的方式搭建复制 ...
- Mongodb 基础 复制集原理和搭建
数据复制原理 开启复制集后,主节点会在local库下生成一个集合叫 oplog.rs,这是一个有限的集合,即大小固定.这个集合记入了整个mongod实例一段时间内数据库的所有变更操作(如:增/删/改) ...
- MongoDB 3.2复制集单节点部署(四)
MongoDB在单节点中也可以做复制集,但是仅限于测试实验,最大的好处就是部署方便快速,可以随便添加新节点,节省资源.在这里我使用的是MongoDB 3.2版本进行复制集实验(但MongoDB配置文件 ...
- MongoDB 2.6复制集单节点部署(三)
MongoDB在单节点中也可以做复制集,但是仅限于测试实验,最大的好处就是部署方便快速,可以随便添加新节点,节省资源.在这里我使用的是MongoDB 2.6版本进行复制集实验(但MongoDB配置文件 ...
- MongoDb复制集实现故障转移,读写分离
前言 数据库技术是信息系统的一个核心技术,发展很快,各种功能类型数据库层出不穷,之前工作中使用过关系型数据库(mysql.oracle等).面相对象数据库(db4o).key-value存储(Memc ...
随机推荐
- windows: Python安装scipy,scikit-image时提示"no lapack/blas resources found"的解决方法
解决方案: 最后,解决我遇到的这个问题的解决方案是来自以下链接的答案: http://www.voidcn.com/blog/z6491679/article/p-5740396.html. 另外还有 ...
- git 系统中 post-receive 钩子不能正常执行 git pull 解决方法
有一个需求是本地git在push到远程 git repo 之后,在远程服务器上自动在/dir/foo下执行 git pull 的操作.想来是一个很简单的需求,不就是在远程的 foo.git 仓库中的 ...
- 调试 Hadoop 源代码
环境是 64bit Ubuntu 14.04 系统, jdk 1.7 以及 Eclipse Mars (4.5) 这里介绍两种调试 Hadoop 源代码的方法: 利用 Eclipse 远程调试工具和打 ...
- dockerfile:制作tomcat镜像+javaweb
FROM ubuntu:14.10 MAINTAINER linx #把java与tomcat添加到容器中,Add会解压 ADD jdk-8u151-linux-x64.tar.gz /usr/loc ...
- 【Data Structure & Algorithm】字符串全排列
字符串全排列 题目:输入一个字符串,打印出该字符串的所有排列.例如输入字符串abc,则输出由字符a.b.c所能排列出来的所有字符串abc.acb.bac.bca.cab.cba. 分析:考察对递归的理 ...
- Laravel中使用模型对数据进行操作
public function orm(){ //查询表的所有记录 //$user = Admin::all(); //dd($user); //查询某一条记录 //$user = Admin::fi ...
- 《剑指offer》面试题15—输出链表中倒数第n个结点
题目:如题,且从1开始计数. 思路:要求只遍历一遍链表:设置两个指针,一个先走n步后另一个开始同步后移,当快指针已经到链表尾时慢指针正好到要输出的结点. 注意:本题思路比较好想到,主要考察的是代码的鲁 ...
- laravel 视图调用方法并传递参数
视图层 route 中文 路由 <a href="{{route('cc',array('id'=>11111))}}">446454</a> 路由层 ...
- AFN的使用
http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库.最新版本支持session,xctool单元测试.网络获取数 ...
- assembly x86(nasm)选择排序
有一个首地址为NUM的N字无序无符号整数数组,编制程序采用选择排序法使该数组中的数按照从小到大的次序排序输出. 选择排序: data segment message db 'This is a pro ...