使用mongo shake实现从一个单实例mongo往多个mongo单实例进行数据同步
一 实验环境
二 实验步骤
2.1 确保源端mongo已开启oplog
可参考单实例MongoDB 如何开启Oplog_雅冰石的专栏-CSDN博客
2.2 安装mongoshake
在每个目标端都安装mongoshake。
2.2.1 下载安装
Mongo shake下载地址:
Releases · alibaba/MongoShake · GitHub
cd /opt
tar -xvf mongo-shake-v2.4.16.tar.gz
mv mongo-shake-v2.4.16 mongoshake
cd mongoshake
2.2.2 修改配置文件
#这里以往目标端192.168.144.249同步为例
vi collector.conf
#源端mongo地址
mongo_urls = mongodb://root:密码@192.168.144.248:27017
注意,mongo的密码不能包含@等特殊字符。
#目标端mongo地址
tunnel.address = mongodb://root:密码@192.168.144.249:27017
sync_mode = all
checkpoint.storage.collection = ckpt_default_249
注意:
checkpoint.storage.collection的默认值是ckpt_default,如果多个mongoshake配置的是同一个源端,则需要确保checkpoint.storage.collection的值是不同的,比如192.168.144.250的checkpoint.storage.collection值可以设置为ckpt_default_250
2.3 启动mongoshake
./collector.linux -conf=collector.conf -verbose
[2021/12/24 22:24:39 CST] [WARN]
______________________________
\ \ _ ______ |
\ \ / \___-=O'/|O'/__|
\ MongoShake, Here we go !! \_______\ / | / )
/ / '/-==__ _/__|/__=-| -GM
/ Alibaba Cloud / * \ | |
/ / (o)
------------------------------
……
会发现源端自动创建了一个mongoshake库:
single:PRIMARY> use mongoshake;
switched to db mongoshake
#有一个检查点的表
single:PRIMARY> show tables;
ckpt_default
2.4 测试数据同步
#在源端插入数据
single:PRIMARY> use bb;
switched to db bb
single:PRIMARY> db.a.insert({"id":1})
WriteResult({ "nInserted" : 1 })
#在目标端验证下数据能否同步过来
> use bb;
switched to db bb
> db.a.find();
{ "_id" : ObjectId("61c5e78406138fe33e2b88d5"), "id" : 1 }
发现数据过来了。
三 备注
假如只想同步mongo的部分表,可以这样实现:
修改配置文件,设置以下参数,不同对象之间用分号分隔:
示例:
同步aa.t1,bb.t1这俩表:
filter.namespace.white =aa.t1;bb.t1
--本篇文章主要参考了:
GitHub - alibaba/MongoShake: MongoShake is a universal data replication platform based on MongoDB's oplog. Redundant replication and active-active replication are two most important functions. 基于mongodb oplog的集群复制工具,可以满足迁移和同步的需求,进一步实现灾备和多活功能。
使用MongoShake实现MongoDB副本集间的单向同步 - 云数据库 MongoDB - 阿里云
https://github.com/alibaba/MongoShake/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98&FAQ
https://github.com/alibaba/MongoShake/wiki/FAQ#q-how-to-sync-data-from-one-mongodb-to-several-target-mongodb
使用mongo shake实现从一个单实例mongo往多个mongo单实例进行数据同步相关推荐
- 用mongoshake实现mongo分片集群到单实例和分片集群的数据同步
一 实验环境 这里演示只同步源端ccc库下的t1,t2表,ddd库下的所有表到两个目标端. 二 实验步骤 2.1 创建专用账号 2.1.1 在源端创建账号 2.1.1.1 登录其中一个mongos节点 ...
- 用php实现一个简易的web表单生成器,网络编程PHP Web表单生成器案例分析
本文实例讲述了PHP Web表单生成器.分享给大家供大家参考,具体如下: 1.实例: 2. 需求分析 在项目的实际开发中,经常需要设计各种各样表单.直接编写HTML表单虽然简单,但修改.维护相对麻烦. ...
- asp判断ajax请求 -asp.net,一个asp注册验证用户名是否重复的Ajax实例
一个asp注册验证用户名是否重复的Ajax实例 1.需要用到的初始化xmlhttp实例和发送请求的javascript函数: 以下为引用的内容: // JavaScript Document func ...
- Vue学习笔记(2) 在html文件中创建Vue实例,并使用http-vue-loader注册单文件组件
本篇博客基于Vue2.x 官方文档:https://cn.vuejs.org/v2/guide/instance.html 最近和同学合作一个设备信息管理的小项目,而同学找的模板不是前后端分离的 因此 ...
- sql删除过程的命令是什么_一个删除表字段的自动化执行工单的思考
工作中经常被吐槽:"不就执行一个删除字段的SQL的自动化工单吗?搞起来有这么复杂?" 那就来梳理梳理这样的一个工单的执行需要什么的流程: 简要流程步骤: 1. 申请权限管控 2 ...
- 用javascript写一个简单的登录表单,包含用户名、密码和手机号码。提交数据时验证用户名、密码和手机号输入格式。
题目:写一个用于登录的表单,包含用户名.密码和手机号码.提交数据的时候,要求验证: 1. 用户名必须输入汉字: 2. 密码总共6位,前2位为字母,后4位为数字: 3. 手机号码符合中国大陆手机号码格式 ...
- 【问题描述】在带头结点单链表中查找最大值,将其值与最后一个元素交换,输出交换后的单链表各元素。【输入形式】循环输入若干个整数,以字母结束输入,建立带头结点的单链表。【输出形式】输出最
[问题描述] 在带头结点单链表中查找最大值,将其值与最后一个元素交换,输出交换后的单链表各元素. [输入形式] 循环输入若干个整数,以字母结束输入,建立带头结点的单链表. [输出形式] 输出最大值与最 ...
- FS4052A是一个4.0-23V宽电压输入,2A充电电流单电池 同步降压锂离子电池充电器
FS4052A是一个4.0-23V宽电压输入,2A充电电流单电池 同步降压锂离子电池充电器,适用于 便携式应用程序.选择插针方便 不同的电池电压.集成800 kHz同步 降压调节器由23V额定FET组 ...
- html如何制作一个漂亮的表格?+ 列表制作 + 表单制作(干货!直接收代码)
https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录 html如何 ...
最新文章
- ImageNet时代将终结?何恺明新作:Rethinking ImageNet Pre-training
- Java基类共同属性设置_java – 你有一个Hibernate实体的基类吗?
- 移动热潮催火统一通信
- 【已解决】R语言,如何切换镜像?
- React开发(200):三种截取字符串的方法
- media recovery oracle,Oracle非归档模式Media Recovery错误之--ORA-26040
- 1分钟看懂:java 项目中 VO 、DTO、Entity,各自是在什么情况下应用的
- Intel超线程技术 Hyper-Threading Technology (4) - 处理器资源与超线程(分区的资源/竞争共享的资源)
- Spring中IoC两种接口和两种依赖注入方式的比较
- sql 查询数据库索引重建_SQL查询性能的杀手– –了解不良的数据库索引
- 一个简单的samba案例(测试与思考)
- Kerberos安装及拖管Ambari 2.7
- php写入mysql表格失败,麻烦给我看一下为什么MySQL创建表格失败嘛
- 个人ID的搜索引擎结果分析与联想
- Java中文分词组件 - word分词
- 关于虚拟主机那点事儿
- linux-网络安全防火墙
- 备份与同步(二) 如何使用云存储来实现多设备的备份与同步
- H5移动应用的发布优化(四)图片优化
- qq屏蔽怎么知道对方信息(qq屏蔽怎么让对方知道)
热门文章
- mysql扣减库存_扣库存之mysql方案讨论
- jQuery-Ajax的使用
- 面向对象设计原则之接口隔离原则
- 【python自动化】基于Splinter的自动化回归/测试脚本
- BERT模型—1.BERT模型架构
- Java核心技术 卷1 基础知识 学习笔记——第三章 java的基本程序设计结构
- [21S01][1136] Column count doesn‘t match value count at row 1 报错分析
- 电路图:LM3886低音炮电路
- 不能打开到主机的连接,在端口1521:连接失败的解决方法(修改远程桌面连接端口)
- 大文件分块计算MD5值 C++实现