怎样使用mongoshake实现mongodb数据同步的方法
前言
MongoShake是阿里云以Golang语言编写的通用平台型服务工具,它通过读取MongoDB的Oplog操作日志来复制MongoDB的数据以实现特定需求。
MongoShake还提供了日志数据的定阅和消费功能,可通过SDK、Kafka、MetaQ等方式的灵活对接,适用于日志定阅、数据中心同步、Cache异步淘汰等场景。
官方地址:https://github.com/alibaba/MongoShake
使用处景
- MongoDB集群间数据的异步复制,免去业务双写开消(数据灾备);
- MongoDB集群间数据的镜像备份(当前1.0开源版本支持受限);
- 日志离线分析;
- 日志定阅;
- 数据路由,根据业务需求,结合日志定阅和过滤机制,可以获得关注的数据,到达数据路由的功能;
- Cache同步。日志分析的结果,知道哪些Cache可以被淘汰,哪些Cache可以进行预加载,反向推动Cache的更新;
- 基于日志的集群监控
基于mongoshake可以衍生出很多的场景,从而提供给开发者在架构设计中更多更灵活、更丰富的选择
搭建步骤
mongoshake本身的使用不难,这个参考官方的配置便可,主要是根据本身的业务场景做好配置文件中各个参数的配置便可到达目的,下面以mongoshake一个较为经常使用的场景,即便用mongoshanke完成2个mongodb复制集群之间的数据同步
环境准备
- 两台服务器(阿里云、腾讯云主机或虚拟机)
- 提早计划相关的端口,并开放相关端口
- 提早下载mongodb和mongoshake安装包,两台服务器均上传,本次mongodb版本为:mongodb-linux-x86_64⑷.0.10.tgz,mongo-shake-v2.4.6.tar.gz
一、搭建mongodb复制集
选择其中一台服务器搭建一个mongodb的单机版复制集群,这里使用端口号辨别,启动的时候启动多个实例便可(有条件的可以采取3个区别的服务器操作),依照下面的步骤顺次履行便可:
1、创建3个目录
cd replications
mkdir myrs_27017
mkdir myrs_27018
mkdir myrs_27019
2、在3个主目录下,分别创建data和log目录
cd data
mkdir db
在myrs_27017 ,myrs_27018 ,myrs_27019 3个目录下分别做一样的操作,
3、编辑mongod.conf配置文件
dbpath=/usr/local/soft/mongo/replications/myrs_27017/data/db
#日志保存路径
logpath=/usr/local/soft/mongo/replications/myrs_27017/log/mongod.log
#日志追加写入
logappend=true
#复制集名称
replSet=myrs
bind_ip=服务器IP(云主机建议使用内网IP)
#mongo默许端口
port=27017
#操作日志容量
oplogSize=10000
noprealloc=true
#开启子进程
fork=true
在另外的myrs_27018 ,myrs_27019两个目录下做一样的操作,只需要分别修改下配置文件中的端口号便可
4、使用下面的命令顺次启动3个区别的mongodb实例
进入mongodb的bin目录下,顺次履行下面的命令
./mongod -f /usr/local/soft/mongo/replications/myrs_27018/mongod.conf
./mongod -f /usr/local/soft/mongo/replications/myrs_27019/mongod.conf
看到下面的信息表名启动成功
5、创建集群
使用mongo的shell登录到其中一个实例上,进入bin目录下,履行下面命令
6、履行数集群信息的初始化操作
使用下面的命令履行
再使用:rs.initiate(cfg); 命令完成集群初始化
履行终了后,可使用: rs.status() 查看集群各个节点信息,打印出的信息太长,就不放截图了,注意,履行终了以后,当前节点会出现短暂的 secondary ,但是过一会儿就变成 primary了
7、将另外两个节点加入集群
在上一步的窗口下顺次履行下面的命令,将两位2个mongo实例加入到集群中
8、主节点上创建数据
在上一步的窗口下,即主节点上,给某个库的某个集合下插入一条数据
登录从节点,由因而复制集群,主节点上的数据必定会同步到从节点上,我们可以登陆进去查看会不会同步成功
可以发现没有权限,默许情况下,从节点是没有读写权限的,需要做设置才行,可以在上面从节点的窗口履行下面的命令便可
履行终了后,再次查询便可看到主节点上插入的数据了
前言
MongoShake是阿里云以Golang语言编写的通用平台型服务工具,它通过读取MongoDB的Oplog操作日志来复制MongoDB的数据以实现特定需求。
MongoShake还提供了日志数据的定阅和消费功能,可通过SDK、Kafka、MetaQ等方式的灵活对接,适用于日志定阅、数据中心同步、Cache异步淘汰等场景。
官方地址:https://github.com/alibaba/MongoShake
使用处景
- MongoDB集群间数据的异步复制,免去业务双写开消(数据灾备);
- MongoDB集群间数据的镜像备份(当前1.0开源版本支持受限);
- 日志离线分析;
- 日志定阅;
- 数据路由,根据业务需求,结合日志定阅和过滤机制,可以获得关注的数据,到达数据路由的功能;
- Cache同步。日志分析的结果,知道哪些Cache可以被淘汰,哪些Cache可以进行预加载,反向推动Cache的更新;
- 基于日志的集群监控
基于mongoshake可以衍生出很多的场景,从而提供给开发者在架构设计中更多更灵活、更丰富的选择
搭建步骤
mongoshake本身的使用不难,这个参考官方的配置便可,主要是根据本身的业务场景做好配置文件中各个参数的配置便可到达目的,下面以mongoshake一个较为经常使用的场景,即便用mongoshanke完成2个mongodb复制集群之间的数据同步
环境准备
- 两台服务器(阿里云、腾讯云主机或虚拟机)
- 提早计划相关的端口,并开放相关端口
- 提早下载mongodb和mongoshake安装包,两台服务器均上传,本次mongodb版本为:mongodb-linux-x86_64⑷.0.10.tgz,mongo-shake-v2.4.6.tar.gz
一、搭建mongodb复制集
选择其中一台服务器搭建一个mongodb的单机版复制集群,这里使用端口号辨别,启动的时候启动多个实例便可(有条件的可以采取3个区别的服务器操作),依照下面的步骤顺次履行便可:
1、创建3个目录
cd replications
mkdir myrs_27017
mkdir myrs_27018
mkdir myrs_27019
2、在3个主目录下,分别创建data和log目录
cd data
mkdir db
在myrs_27017 ,myrs_27018 ,myrs_27019 3个目录下分别做一样的操作,
3、编辑mongod.conf配置文件
dbpath=/usr/local/soft/mongo/replications/myrs_27017/data/db
#日志保存路径
logpath=/usr/local/soft/mongo/replications/myrs_27017/log/mongod.log
#日志追加写入
logappend=true
#复制集名称
replSet=myrs
bind_ip=服务器IP(云主机建议使用内网IP)
#mongo默许端口
port=27017
#操作日志容量
oplogSize=10000
noprealloc=true
#开启子进程
fork=true
在另外的myrs_27018 ,myrs_27019两个目录下做一样的操作,只需要分别修改下配置文件中的端口号便可
4、使用下面的命令顺次启动3个区别的mongodb实例
进入mongodb的bin目录下,顺次履行下面的命令
./mongod -f /usr/local/soft/mongo/replications/myrs_27018/mongod.conf
./mongod -f /usr/local/soft/mongo/replications/myrs_27019/mongod.conf
看到下面的信息表名启动成功
5、创建集群
使用mongo的shell登录到其中一个实例上,进入bin目录下,履行下面命令
6、履行数集群信息的初始化操作
使用下面的命令履行
再使用:rs.initiate(cfg); 命令完成集群初始化
履行终了后,可使用: rs.status() 查看集群各个节点信息,打印出的信息太长,就不放截图了,注意,履行终了以后,当前节点会出现短暂的 secondary ,但是过一会儿就变成 primary了
7、将另外两个节点加入集群
在上一步的窗口下顺次履行下面的命令,将两位2个mongo实例加入到集群中
8、主节点上创建数据
在上一步的窗口下,即主节点上,给某个库的某个集合下插入一条数据
登录从节点,由因而复制集群,主节点上的数据必定会同步到从节点上,我们可以登陆进去查看会不会同步成功
可以发现没有权限,默许情况下,从节点是没有读写权限的,需要做设置才行,可以在上面从节点的窗口履行下面的命令便可
履行终了后,再次查询便可看到主节点上插入的数据了
以上就是基于单机模式下搭建一个伪复制集群的全部进程,将一样的操作在另外一个服务器上履行便可
在另外一个集群上,我们在主节点上创建了下面一个test库,并在库下新建了一条数据
二、mongoshake配置
有了上面的两个复制集群,mongoshake的使用就变得非常简单了,mongoshake实现数据同步的基本原理是通过监听mongodb的oplog,解析其中的事件,从而完成数据的读取与写入
mongoshake经常使用的同步包括,增量同步、全量同步、增量+全量同步,下面从罗列了mongoshake内部实现数据同步的业务机制
1、解压mongoshake包
2、进入解压后的目录编辑并配置 collector.conf文件
下面罗列比较经常使用的几个配置
mongo_urls = mongodb://源mongoIP:27017,源mongoIP:27018,源mongoIP:27019
# 通道模式。直接数据库到数据库
tunnel = direct
# 此处配置通道的地址,格式与mongo_urls对齐。【目标同步地址】
tunnel.address = mongodb://目标mongoIP:27017,目标mongoIP:27018,目标mongoIP:27019
# all 表示全量+增量,full表示仅全量,incr表示仅增量
sync_mode = all
# raw是默许的类型,其采取聚合的模式进行写入和
# 读取,但是由于携带了一些控制信息,所以需要专门用receiver进行解析。
# json以json的格式写入kafka,便于用户直接读取。
# bson以bson二进制的格式写入kafka。
tunnel.message = raw
其他更多高级配置柯参考官方详细说明进行了解,比如可以同步到kafka等
3、启动mongoshake服务
在主目录下,履行下述命令启动同步任务,并打印日志信息
摹拟测试
mongoshake服务启动终了后,这时候可以去被同步的第一台服务器上检查数据会不会同步成功
由于我们配置的是全量+增量的方式,因此服务一旦启动,数据就全部同步过去了
这时候候再次去第二台服务器的test数据库下再次新增一条数据
再返回到第一台机器上检查数据会不会成功同步
可以看到,数据成功同步到第一台机器上了
到此这篇关于mongoshake实现mongodb数据同步的文章就介绍到这了,更多相关mongodb数据同步内容请搜索之前的文章或继续浏览下面的相关文章希望大家以后多多支持!
文章来源:丸子建站
文章标题:怎样使用mongoshake实现mongodb数据同步的方法
https://www.wanzijz.com/view/74404.html
相关文章
Related articles
- 1 探索Linux系统中I/O性能监测工具iostat 2023-08-25 08:09:13
- 2 python 爬取间隔 2023-08-25 08:09:11
- 3 win7控制面板打开的有什么方法 2023-08-25 08:09:10
- 4 Linux程序:更新到最新版本 2023-08-25 08:09:08
- 5 香港主机vps租用如何搭建 2023-08-25 08:09:07
- 6 国内服务器租用能搭建哪些网站 2023-08-25 08:09:06
- 7 云主机租赁如何用 2023-08-25 08:09:05
- 8 python 爬小说代码 2023-08-25 08:09:05
- 9 教你如何完全卸载Oracle的终极方法完全步骤 2023-08-25 08:09:04
- 10 linux安装软件时提示软件包不存在的解决方法 2023-08-25 08:09:03
随机看看
NEW ARTICLE
- 1 MongoDB优化之旅:配置最好实践 06-08
- 2 在线代理服务器网站搭建如何配置 06-19
- 3 python 画点并连线 06-26
- 4 win10下怎么重启mysql服务 03-28
- 5 快速揭秘Redis Java版 05-18
- 6 影响服务器托管费用的因素有哪几种 05-02
热门文章
HOT ARTICLE
- 1 显卡:centos查看显卡信息的方法 04-07
- 2 黑客利用SQLServer数据库成功实行盲注入攻击 05-11
- 3 android开发工具有哪些?又该如何进行选择? 02-13
- 4 公众号和订阅号有什么区别?公众号和订阅号有什么优势? 01-30
- 5 python怎么获取列表元素的下标 03-23
- 6 navicat:navicat怎样连接mongodb 04-04
- 7 速率:centos7怎么查看网卡速率 04-07
- 8 字体:小程序字体加粗怎么实现 04-09
- 9 公众号登录的方法是什么?公众号登录失败的原因是什么? 01-30
- 10 【mssql中实现多个like查询的方式】 04-21
©2008-2025 丸子建站 All Rights Reserved 蜀ICP备18006673号-6 站长 QQ: 3787320601