MongoDB副本集配置系列五:副本集的在线迁移
MongoDB副本集的在线迁移
查看当前集群的状态:
{
"setName" : "gechongrepl",
"setVersion" : 11,
"ismaster" : true,
"secondary" : false,
"hosts" : [
"192.168.91.135:27017",
"192.168.91.133:27017"
],
"arbiters" : [
"192.168.91.144:27017"
],
"primary" : "192.168.91.135:27017",
"me" : "192.168.91.135:27017",
"maxBsonObjectSize" : 16777216,
"maxMessageSizeBytes" : 48000000,
"maxWriteBatchSize" : 1000,
"localTime" : ISODate("2015-06-17T02:29:52.582Z"),
"maxWireVersion" : 2,
"minWireVersion" : 0,
"ok" : 1
}
当前的副本集的状态为:
Primary:192.168.91.135:27017
Arbiters:192.168.91.144:27017
Secondary:192.168.91.133:27017
需求1:在副本集正常工作的情况下再添加一个节点。
1:模拟业务数据
gechongrepl:PRIMARY> db.test.count()
109000
gechongrepl:PRIMARY> for (i=0;i<10000;i++) db.test.insert({uid:i,uname:'testmoveonline'+i});
WriteResult({ "nInserted" : 1 })
gechongrepl:PRIMARY> db.test.count()
119000
gechongrepl:PRIMARY>
查看从节点的状态:
gechongrepl:SECONDARY> rs.slaveOk()
gechongrepl:SECONDARY> db.test.count()
119000
2:把从节点关掉
gechongrepl:SECONDARY> use admin
switched to db admin
gechongrepl:SECONDARY> db.shutdownServer() #查看当前的副本集的状态 gechongrepl:PRIMARY> rs.status() #再次插入数据 gechongrepl:PRIMARY> for (i=0;i<10000;i++) db.test.insert({uid:i,uname:'testmoveonline12345'+i});
WriteResult({ "nInserted" : 1 })
gechongrepl:PRIMARY> db.test.count()
129000
3:根据配置文件的配置,scpdata目录到新节点上。新节点IP为:192.168.91.132
[root@localhost mongodb]# scp -r ./data/ root@192.168.91.132:/root/software/mongodb/
root@192.168.91.132's password:
local.0 100% 64MB 21.3MB/s 00:03
local.1 100% 2047MB 21.8MB/s 01:34
test.0 100% 64MB 21.3MB/s 00:03
test.ns 100% 16MB 16.0MB/s 00:00
mongod.lock 100% 0 0.0KB/s 00:00
local.ns 100% 16MB 16.0MB/s 00:00
[root@localhost mongodb]# ls
bin data GNU-AGPL-3.0 log mongod.conf README THIRD-PARTY-NOTICES
[root@localhost mongodb]# scp -r ./log/ root@192.168.91.132:/root/software/mongodb/
root@192.168.91.132's password:
mongod 100% 1101KB 1.1MB/s 00:00
[root@localhost mongodb]#
查看192.168.91.132主机上的MongoDB目录已经存在scp过来的文件
[root@localhost mongodb]# ls
bin data GNU-AGPL-3.0 log mongod.conf README THIRD-PARTY-NOTICES
4:用scp过来的物理文件启动新节点
[root@localhost mongodb]# cd bin/
[root@localhost bin]# ./mongod --config /root/software/mongodb/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 30944
child process started successfully, parent exiting
5:在集群几点中加入新节点即可
gechongrepl:PRIMARY> rs.add("192.168.91.132:27017") {
"_id" : 6,
"name" : "192.168.91.132:27017",
"health" : 1,
"state" : 6,
"stateStr" : "UNKNOWN",
"uptime" : 9,
"optime" : Timestamp(0, 0),
"optimeDate" : ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" : ISODate("2015-06-17T02:49:43Z"),
"lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
"pingMs" : 0,
"lastHeartbeatMessage" : "still initializing"
}
6:remove刚才关掉的节点即可
gechongrepl:PRIMARY> rs.remove("192.168.91.133:27017")
如此再次重复这样的步骤即可把集群慢慢的转移到其他服务器上。
MongoDB副本集配置系列五:副本集的在线迁移的更多相关文章
- MongoDB副本集配置系列三:副本集的认证方式
1:副本集配置参考这篇博客: http://www.cnblogs.com/xiaoit/p/4478951.html 2:副本集的认证 假设有两台机器已经配置好了副本集(副本集罪一般最少3台机器,这 ...
- MongoDB副本集配置系列二:配置MongoDB副本集
接上一篇博客: http://www.cnblogs.com/xiaoit/p/4479066.html 1:首先创建3台虚拟机作为配置环境 IP1:192.168.91.128 IP2:192.16 ...
- MongoDB副本集配置系列十一:MongoDB 数据同步原理和自动故障转移的原理
1:数据同步的原理: 当Primary节点完成数据操作后,Secondary会做出一系列的动作保证数据的同步: 1:检查自己local库的oplog.rs集合找出最近的时间戳. 2:检查Primary ...
- MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理
1:local库是MongoDB的系统库,记录着时间戳和索引和复制集等信息 gechongrepl:PRIMARY> use local switched to db local gechong ...
- MongoDB副本集配置系列七:MongoDB oplog详解
1:oplog简介 oplog是local库下的一个固定集合,Secondary就是通过查看Primary 的oplog这个集合来进行复制的.每个节点都有oplog,记录这从主节点复制过来的信息,这样 ...
- MongoDB副本集配置系列九:MongoDB 常见问题
What is a namespace in MongoDB? If you remove a document, does MongoDB remove it from disk? When doe ...
- MongoDB副本集配置系列八:MongoDB监控
1:Mongostat MongoDB2.6版本 MongoDB3.0版本 2:db.setProfilingLevel(2):打开profiler 类似于MySQL的slow log Profile ...
- MongoDB副本集配置系列六:定位MongoDB慢的原因
1:想知道哪些操作拖慢了MongoDB的速度,首先需要检查当前正在执行哪些操作. gechongrepl:PRIMARY> db.currentOp() "opid" : 7 ...
- MongoDB副本集配置系列一:安装MongoDB
1:下载MongoDB 2.6版本 https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.6.9.zip 2:解压 tar ...
随机推荐
- 同志亦凡人第一季/全集BQueer As Folk 1迅雷下载
同志亦凡人 第一季 Queer as Folk Season 1 (2000) 本季看点:本剧叙述一群同志男女在美国匹兹堡的生活,剧情重心由原来三位男主角Brian,Michael,Justin之间的 ...
- Shape 属性解释
本文来自:http://blog.csdn.net/brokge/article/details/9713041 简介: 作用:XML中定义的几何形状 位置:res/drawable/文件的名称.xm ...
- Logstash使用jdbc_input同步Mysql数据时遇到的空时间SQLException问题
今天在使用Logstash的jdbc_input插件同步Mysql数据时,本来应该能搜索出10条数据,结果在Elasticsearch中只看到了4条,终端中只给出了如下信息 [2017-08-25T1 ...
- jdk环境变量配置 java环境变量配置
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置: 1.下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是 ...
- 第三十一章 elk(2)- 第二种架构(最常用架构)
参考:http://linuxg.blog.51cto.com/4410110/1761757 最常用架构: 一.安装redis 1.下载:http://redis.io/download 2.解压后 ...
- Shell bc命令进行数学运算
通常情况做简单的运算,很多命令里面都是支持的.比如for, awk等. #!/bin/bash num= #for循环这里的数字也是运算 #也可以使用 #也可以使用数组 ;i<=;++i)) d ...
- 【BLE】CC2541之发现服务与特征值
一.简介 本文以SimpleBLECentral工程为例,解析CC2541作为主机时是如何发现从机的服务和特征值的. 二.实验平台 协议栈版本:BLE-CC254x-1.4.0 编译软件:IAR 8. ...
- Libxml2函数及使用方法概述【转】
https://blog.csdn.net/chengwenyao18/article/details/7176082 一.关于XML: 在开始研究 Libxml2 库之前,先了解一下XML的相关基础 ...
- knockout示例
最近项目需要用到knockout js,有关knockout的介绍网上已经很多很多了,但是很少有比较全面的示例,于是乎我就自己做了一个小demo,已备以后查阅.knockout经常和knockout. ...
- Druid连接池简介和配置
Druid是什么?有什么作用? Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser. Druid ...