mongodb3 分片集群平滑迁移
分片集群平滑迁移实验(成功)
过程概述:
为每个分片添加多个从节点,然后自动同步。同步完后,切换主节点到新服务器节点。
导出原来的config 数据库,并导入到新服务器的config数据库
停掉整个集群,可以使用kill 命令停掉
新服务器 启动 config 进程 ,启动mongod 分片进程,
最后启动mongos进程,注意config的地址需要变成新的节点地址
验证成功!
老服务器的三分片数据 迁移到 新服务器的三片集群
老分片环境:
192.168.168.56 22001 22002 22003
192.168.168.57 22001 22002 22003
192.168.168.58 22001 22002 22003
新分片环境
192.168.6.103 22001 22002 22003
192.168.6.104 22001 22002 22003
192.168.6.105 22001 22002 22003
#### 新服务器搭建分片服务:
(按照配置标准启动服务,mongos服务 可以先不启用)
/usr/local/mongodb/bin/mongod --configsvr--dbpath /data/mongodb/config/data --port 21000 --logpath/data/mongodb/config/log/config.log --fork
/usr/local/mongodb/bin/mongod --shardsvr--replSet shard1 --port 22001 --dbpath /data/mongodb/shard1/data --logpath/data/mongodb/shard1/log/shard1.log --fork --oplogSize 10000
/usr/local/mongodb/bin/mongod--shardsvr --replSet shard2 --port 22002 --dbpath /data/mongodb/shard2/data--logpath /data/mongodb/shard2/log/shard2.log --fork --oplogSize 10000
/usr/local/mongodb/bin/mongod--shardsvr --replSet shard3 --port 22003 --dbpath /data/mongodb/shard3/data--logpath /data/mongodb/shard3/log/shard3.log --fork --oplogSize 10000
#
####老服务器操作:主从集群增加新节点
增加 新的主从服务器到分片节点,让mongodb自同步数据到新服务器三分片
主/从rs.add('192.168.6.103:22001')
从 rs.add('192.168.6.104:22001')
总裁 rs.add('192.168.6.105:22001','arbiterOnly:true')
总裁 rs.add('192.168.6.103:22002','arbiterOnly:true')
主/从rs.add('192.168.6.104:22002')
从 rs.add('192.168.6.105:22002')
从 rs.add('192.168.6.103:22003')
总裁 rs.add('192.168.6.104:22003','arbiterOnly:true')
主/从 rs.add('192.168.6.105:22003')
#####老服务器操作:更改权重,切换priority
同步完成后,更改权重,切换主priority到新的服务器,让老的主节点变成从节点
22001 主服务器操作:
rs.conf();
cfg=rs.conf();
cfg.members[0].priority=1
cfg.members[3].priority=2
rs.reconfig(cfg);
22002主服务器操作:
rs.conf();
cfg=rs.conf();
cfg.members[2].priority=1
cfg.members[4].priority=2
rs.reconfig(cfg);
22003 主服务器操作:
rs.conf();
cfg=rs.conf();
cfg.members[1].priority=1
cfg.members[5].priority=2
rs.reconfig(cfg);
######主切换完成后删除 旧服务器的 从节点:
rs.remove('192.168.168.56:22001')
rs.remove('192.168.168.57:22001')
rs.remove('192.168.168.58:22001')
rs.remove('192.168.168.56:22002')
rs.remove('192.168.168.57:22002')
rs.remove('192.168.168.58:22002')
rs.remove('192.168.168.56:22003')
rs.remove('192.168.168.57:22003')
rs.remove('192.168.168.58:22003')
###原配置服务(21000)导出config库并导入新的配置服务:
导出config 库
# mongodump --port21000 -d config #导出
导入config 到新的服务器config
# mongorestore--port 21000 -d config /root/dump/config/ #导入
停掉所有的服务器的进程,关闭整个集群包括config mongod 和 mongos
####在新服务器启动服务#
启动整个集群,包括:config mongod 和mongos进程
如果启动mongos进程没有报错,则说明mongodb分片集群平滑迁移成功
#备注#
config服务器需要替换成新的服务器ip地址和端口
/usr/local/mongodb/bin/mongos--configdb 192.168.6.103:21000,192.168.6.104:21000,192.168.6.105:21000--port 30000 --chunkSize 50 --logpath /data/mongodb/mongos/log/mongos.log--fork
转载于:https://blog.51cto.com/2574526/1893307
相关文章:

图像添加椒盐噪声
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <cstdlib> // 图像添加椒盐噪声 cv::Mat addSaltNoise(const cv::Mat srcImage, int n) {cv::Mat resultIamge srcImage.clone() ;for(int k0; k<n; k){// 随机取值行…
我用python10年后,我发现学python必看这三本书!
非常喜欢python 我非常喜欢python,在前面5年里,它一直是我热衷使用并不断研究的语言,迄今为止,python都非常友好并且易于学习! 它几乎可以做任何事,从简单的脚本创建、web,到数据可视化以及AI人…

【OpenCV】内核的形状函数使用记录
opencv getStructuringElement函数 为形态操作返回指定大小和形状的结构化元素。 该函数构造并返回结构化元素,这些元素可以进一步传递给侵蚀、扩张或morphologyEx。但是您也可以自己构造一个任意的二进制掩码,并将它用作结构化元素。 getStructuringE…

boxFilter 滤波器实现
cv::Ptr<cv::FilterEngine> cv::createBoxFilter( int srcType, int dstType, Size ksize,Point anchor, bool normalize, int borderType ) {// 基础参数设置 图像深度int sdepth CV_MAT_DEPTH(srcType);int cn CV_MAT_CN(srcType), sumType CV_64F;if( sdepth < …

git代理设置
2019独角兽企业重金招聘Python工程师标准>>> git config --global http.proxy http://127.0.0.1:1080 git config --global https.proxy https://127.0.0.1:1080 git config --global http.sslVerify false删除 git config --global --unset http.proxy git config …

获得PMP证书的这一年
很荣幸,通过2018年12月的PMP考试,这不仅是一张证书的收获,更体现了我的成长,明确了以后的道路。在考证的过程中,我收获了很多,不仅是工作技能方面,还包括思想的升华。 首先,重拾了…

【OpenCV】图片操作小结:RAW图转image以及image连续保存
opencv将RAW图转image uint32_t ReadRawImage(cv::Mat& image,const std::string& path,int width,int height,int cv_image_type) {cv::Mat input_image(height, width, cv_image_type);std::ifstream in(path, std::ios::in | std::ios::binary);if (!in) {std::cou…

Windows server2008服务器设置多用户登录
添加用户 右击我的电脑-->管理-->本地用户和组-->新用户 启用远程服务并添加远程用户 启用 右键我的电脑--->属性--->远程设置--->勾上允许远程连接到此电脑 添加用户 点击选择用户--->添加--->高级--->立即查找 防火墙允许远程连接设置 控制面板(c…

Linux6版本系统搭建Open***远程访问
前言:open***是一个***工具,用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件,提供证书验证功能,也支持用户名密码认证登录方式,当然也支持两者合一,为服务器登录和连接提供更加安全的方式,可以在不同网络访问场所之间搭建类似于局域网的专用网…

【Smart_Point】unique_ptr与shared_ptr使用实例
shared_ptr使用实例 文章目录shared_ptr使用实例unique_ptr使用实例cv::fitLine中斜率为正无穷的情况,需要特殊考虑std::string path "D:\\code\\test_base_opencv\\example\\depth_98.raw";std::string save_path "D:\\code\\test_base_opencv\\e…

关于kNN、kMeans、Apriori算法小结
趁着准备即将到来的笔试,也为了回顾一下这一星期来所学的三个机器学习算法,觉得还是重新理一下思路,好理解一下这几个算法。 复制代码 kNN算法 即k-近邻算法,属监督学习。 概述 优点:精度高,对异常值不敏感…

[PHP] Phalcon操作示范
这篇内容将对下列操作进行示范: Insert、Select、Update、Calculation、Transaction、models advanced、dev-tools、cookies [ Insert ] (1) // 模型内操作,data是[字段>值]的一维数组。$bool $this->save($data);return $…

【C++】lambda 表达式
1.lambda 表达式 1.1 lambda 特点 lambda表示一个可调用单元,可视为内联函数 范式 : 具有一个返回类型,一个参数列表,一个函数体 [captrue list](parameters list)->return type {function body} captrue list 捕获列表是一个lambda所…

8位图像的双边滤波器实现
static void bilateralFilter_8u( const Mat& src, Mat& dst, int d,double sigma_color, double sigma_space,int borderType ) {// 获取原始图像信息int cn src.channels();int i, j, maxk, radius;Size size src.size();CV_Assert( (src.type() CV_8UC1 || src.t…

读取Cert格式证书的密钥
不想存储Cert证书内容,只想存储证书密钥,可通过以下2種方式实现 一、通過java读取证书的密钥出来: 1 package com.zat.ucop.service.util;2 3 import sun.misc.BASE64Encoder;4 5 import java.io.FileInputStream;6 import java.security.Pu…

图像导向滤波操作
#include <iostream> #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" using namespace std; using namespace cv; // 导向滤波器 cv::Mat guid…

【C++】bind参数绑定 P354(通用的函数适配器)
1. 什么时候该使用bing ?什么时候该使用lambda? 当只有少数地方调用时候使用lambda,当需要多次调用lambda时,需要定义一个函数,而不是多次编译相同的lambda表达式。 调用bind的一般形式为: auto newCallable bind(cal…

[译] RabbitMQ tutorials (3) ---- 'Pub/Sub' (Javascript)
发布与订阅 (Publish/Subscribe) 在之前的章节中,我们创建了工作队列,之前的工作队列的假设是每个任务只被分发到一个worker。在这一节中,我们会做一些完全不一样的事--把一条消息发送给多个消费者,这个模式…

如何选取合适的前端动效方案?
一、原因 前端动画场景需求多对众多动画场景的技术实现方案选择上比较模糊 各动画方案的优劣及适用场景认识模糊现有动画库太多,不知道选哪个 主流动画库的适用场景认识模糊二、分类 动画用途 展示型的动画,类似于一张GIF图,或者一段视频交互…

【C++】algorithm具体操作记录
find寻找特定元素位置 int main(char argc, int* argv[]) {vector<int> intVec { 0,1,1,1,1,2,3,4,5,6,7,8,9 };if (pos ! intVec.end())cout << "The value 5 exists,and its position is " <<distance(intVec.begin(), pos) 1 << endl;…

图像 DFT 尺寸转换
const int nRows srcImage.rows; const int nCols srcImage.cols; std::cout << "srcImage row:" << nRows << std::endl; std::cout << "srcImage col:" << nCols << std::endl; // 获取DFT尺寸 int cRo…

[python]目录及文件操作
Python OS模块和shutil模块 获取路径# 获取当前路径 pwd os.getcwd()# 获取上级路径 a_pwd os.path.abspath(os.path.dirname(os.getcwd())) a_pwd os.path.abspath(os.path.join(os.getcwd(), ..))# 获取上上级路径 aa_pwd os.path.abspath(os.path.join(os.getcwd(), ../…

【C++】关联容器学习记录
STL六大组件关系 Containe通过Allocator取得数据存储空间,Algorithm通过Iterator存取Container,Functor内容可以协助Algorithm完成不同的策略变化,Adaptor可以修饰或者套接Functor。 关联容器特性 1. 关联容器定义 顺序容器支持高效的关键…

图像 DFT 变换
// 通道组建立,cv::Mat groupMats[] {cv::Mat_<float>(sizeConvMat),cv::Mat::zeros(sizeConvMat.size(), CV_32F)};cv::Mat mergeMat;// 通道合并merge(groupMats,2,mergeMat);// DFT变换dft(mergeMat, mergeMat);// 分离通道split(mergeMat, groupMats);/…

MySQL innodb_autoinc_lock_mode 详解
innodb_autoinc_lock_mode这个参数控制着在向有auto_increment 列的表插入数据时,相关锁的行为; 通过对它的设置可以达到性能与安全(主从的数据一致性)的平衡 【0】我们先对insert做一下分类 首先insert大致上可以分成三类: 1、simpl…

小程序代理加盟实现月入1800到50K
他出身寒门,没钱没资源,搬过砖利用身边的健身达人赚过钱,毕业了院长看他很努力还安排过维修多媒体的工作,拒绝院长好意的他,月收入从1800到1万,再到赚到人生首个5万。 只用了一年,他到底是凭什么…
CCF201503-4 网络延时(100分)
试题编号: 201503-4 试题名称: 网络延时 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机、交换机与电脑之间使用网络连…

【Smart_Point】动态内存与智能指针
动态内存 动态内存使用的三种原因 程序不知道自己需要多少对象程序不知道所需对象的准确类型程序需要在多个对线之间共享数据 文章目录动态内存动态内存使用的三种原因实例1: Exercise 12.2:Write your own version of the StrBlob class including the const ver…

JS中的null和undefined,undefined为啥用void 0代替?
起因 某天,在看某位同学的js代码,代码中发现了一个奇怪的东西 void 0,虽然第一眼看不懂这是什么东西,但是根据上下文,这里应该是想判断是否等于undefined,为什么要这样写的,有什么渊源吗?顺便就把undefined和null都拿出来复习了一下. 介绍 undefined和null是js中类型七种数据类…

【Smart_Point】动态内存与智能指针实战:文本查询程序(设计set,map,智能指针的应用)
文章目录Cpp读入结构性数组文本查询程序文本查询程序本版1Cpp读入结构性数组 #include<sstream> #include<iostream> #include<string>std::vector<cv::Point2f> point_calibartion_position;std::string filename "C:/Users/Administrator/Des…