Gravity 介绍

GitHub:https://github.com/moiot/gravity Gravity 是由摩拜公司使用go语言开发的一款数据迁移工具(目前 GitHub 上更新不是很频繁,但是还有开发者在 GitHub 上回答 issues),提供全量、增量数据同步,以及向消息队列发布数据更新,支持 ECS、Docker、K8S 部署,推荐使用 K8S 部署。 DRC 的设计目标是:

  • 支持多种数据源和目标的,可灵活定制的数据复制组件。
  • 支持基于 Kubernetes 的 PaaS 平台,简化运维任务。

使用场景

  • 大数据总线:发送 MySQL Binlog,MongoDB Oplog 的数据变更到 Kafka 供下游消费。

  • 单向数据同步:MySQL --> MySQL 的全量、增量同步。

  • 双向数据同步:MySQL <--> MySQL 的双向增量同步,同步过程中可以防止循环复制。

  • 分库分表到合库的同步:MySQL 分库分表 --> 合库的同步,可以指定源表和目标表的对应关系。

  • 在线数据变换:同步过程中,可支持对进行数据变换。

    功能列表

  • 数据源支持情况

    数据源 状态
    MySQL Binlog
    MySQL 全量
    Mongo Oplog
    TiDB Binlog 开发中
    PostgreSQL WAL 开发中
  • 数据输出支持情况

    数据输出 状态
    Kafka
    MySQL/TiDB
    MongoDB 开发中
  • 数据变换支持情况

    数据变换 状态
    数据过滤
    重命令列
    删除列

架构介绍请参考:https://github.com/moiot/gravity/blob/master/docs/2.0/00-arch.md.

使用限制

源端 仅支持 binlog-format=row。

配置文件示例详解

# name 必填 名词随机
name = "mysql2mysqlDemo"# 内部用于保存位点、心跳等事项的库名,默认为 _gravity,源端会自动生成
internal-db-name = "_gravity"#
# Input 插件的定义,此处定义使用 mysql
#
[input]
#同步的数据库类型
type = "mysql"
#同步任务类型。增量:stream,全量:batch,全量+增量:replication
mode = "replication"
[input.config.source]
host = "192.168.30.183"
username = "zz"
password = "********"
port = 3307#
# Output 插件的定义,此处使用 mysql
#
[output]
type = "mysql"
[output.config.target]
host = "192.168.30.101"
username = "root"
password = "********"
port = 3306# 路由规则的定义
[[output.config.routes]]
match-schema = "zg"
match-table = "test_source_table"
target-schema = "zg"
target-table = "test_target_table

部署方案

Docker 部署

docker run -d -p 8080:8080 -v ${PWD}/config.toml:/etc/gravity/config.toml  --net=host --name=innodb2stone moiot/gravity:latest

K8S 部署

wget https://codeload.github.com/moiot/gravity-operator/tar.gz/refs/tags/v0.3.12 -C gravity-operator-0.3.12.tar.gz
tar -zxvf gravity-operator-0.3.12.tar.gzcd gravity-operator/charts/gravity-operator
helm install --name gravity-operator ./

随后在k8s管理界面查看是否正常启动,正常启动后查看 admin web-server 端口,登录上去创建同步任务,使用模板进行配置,配置参数和配置文件示例详解相似。

ECS 部署

需要提前安装好 go 环境,编译的时候也比较麻烦,不推荐使用该方法。

git clone https://github.com/moiot/gravity.gitcd gravity && make
bin/gravity -config mysql2mysql.toml

配置同步任务监控

同步监控添加到 Prometheus,参考添加以下配置。

- job_name: "gravity_innodb2stone"
static_configs:
- targets: ["192.168.46.150:8080"]
labels:instance: innodb2stone

Grafana 图表展示模板请参考 https://github.com/moiot/gravity/tree/master/deploy/grafana。

【向StoneDB迁移数据】数据迁移同步工具-Gravity相关推荐

  1. NetApp 7MTT 工具进行存储数据的迁移

    1 NetApp 7MTT 工具进行存储数据的迁移 1.1 7MTT的迁移流程 提前准备虚拟机一台用于安装7MTT工具. 1.2 配置要求 Dual-core x64 processor, 1.0 G ...

  2. 实战案例丨使用云连接CC和数据复制服务DRS实现跨区域RDS迁移和数据同步

    [业务场景及诉求] 希望将不同区域"华北-北京四"的rds与"亚太-新加坡"的rds进行迁移和数据同步,网络配置使用云连接CC. [配置方法]: 1.资源准备: ...

  3. oracle tns 代理配置_OGG实现Oracle到MySQL数据平滑迁移

    技术分享 | 使用OGG实现Oracle到MySQL数据平滑迁移 - 爱可生开源社区​opensource.actionsky.com 一.OGG概述 OGG全称为Oracle GoldenGate, ...

  4. Laravel 实践之路: 数据库迁移与数据填充

    数据库迁移实际上就是对数据库库表的结构变化做版本控制,之前对数据库库表结构做修改的方式比较原始,比如说对某张库表新增了一个字段,都是直接在库表中执行alter table xxx add .. 的方式 ...

  5. “数据中心迁移到IDC数据中心”最怕遇到这几个问题

    前言: 企业要更换办公地址的时候,最头疼的问题就是搬迁数据中心,数据中心的搬迁可不是搬家那么简单,是否能顺利搬迁,将成为保障企业业务连续性的关键要素,IDC数据中心的选择过程将围绕最适合环境的变量展开 ...

  6. mysql迁移cassandra_使用datax迁移cassandra数据

    DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现各种异构数据源之间高效的数据同步功能.最近,阿里云cassandra团队为datax提供了cassandra读写插件,进一步丰富了d ...

  7. mysql goldengate_oracle GoldenGate实现Oracle到MySQL数据平滑迁移

    (一)OGG逻辑架构 参照上图简单给大家介绍下OGG逻辑架构,让大家对OGG数据同步过程有个简单了解,后面章节会详细演示相关进程的配置方式,在OGG使用过程中主要涉及以下进程及文件:Manager进程 ...

  8. Red Gate系列之四 SQL Data Compare 10.2.0.885 Edition 数据比较同步工具 完全破解+使用教程...

    Red Gate系列之四 SQL Data Compare 10.2.0.885 Edition 数据比较同步工具 完全破解+使用教程 Red Gate系列文章: Red Gate系列之一 SQL C ...

  9. 异构数据库结构与数据同步工具dbswitch

    一.背景 开源MPP数据库Greenplum是一种基于PostgreSQL的分布式数据库,其采用shared-nothing架构,其架构专门用于管理大规模分析数据仓库,Greenplum主要定位在OL ...

最新文章

  1. 【收藏清单】AI学习资料汇总——你想要的AI资源,这里都有
  2. mybatis学习(十一)——springmvc++spring+mybatis整合
  3. 验证异常处理调用顺序
  4. c#在WinForm中重写ProgressBar控件(带%的显示)
  5. c++中的IO流(流的概念和流类库的结构,标准的输入输出流)
  6. 电信运营商占IDC市场65%:中国电信占行业半数以上
  7. linux ps ax tl,Linux常用指令 - osc_wa6fkyf0的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. cximage 控制台 程序 显示图片_VisualStudio创建程序(Create a program)
  9. tmux共享_最常用的终端工具 tmux
  10. 说说Java 7中的模块系统基本概念
  11. 华为鸿蒙是物联网操作系统;字节跳动的飞聊被 App Store 下架;FFmpeg 作者编写 JS 引擎 | 极客头条...
  12. VC++常见错误原因解析之error LNK2019: 无法解析的外部符号 public: void __thiscall
  13. nginx ssl加密_如何通过让我们加密SSL证书来保护Nginx
  14. LeetCode - 54. Spiral Matrix
  15. 计算机网络那些事~(二)
  16. 电动汽车充电解决方案领导品牌智充科技获壳牌资本投资;安百拓完成收购测井服务公司Kinetic | 能动...
  17. 那些年,我们一起玩过的儿童游戏
  18. [Android Pro] proguard.cfg 配置文件
  19. Oracle获取本月第一天及最后一天
  20. 两分钟内教会你如何给视频加配音,快速掌握配音技巧!

热门文章

  1. 一些实用的产品经理工具网站,助力提升你的专业技能!
  2. 【记录】Tom猫——用Animation-list逐帧动画实现
  3. 爬虫模拟登录人人网的三种方法
  4. 冬天让手脚不再冰凉的秘方
  5. 光耦p621引脚图_常见光电耦合器(光耦)的内部结构及引脚图
  6. 手机顶部有小红点_苹果手机听筒上方有红点 iphone11顶部红点闪烁
  7. 计算机音乐谱巴啦啦小魔,天谕手游巴啦啦小魔仙乐谱代码是什么-天谕手游巴啦啦小魔仙乐谱代码分享_快吧手游...
  8. 【风马一族_Android】Android学习
  9. Linux SDIO WIFI Marvell8801/Marvell88w8801(五) --- Linux SDIO API介绍
  10. 齐博php百度编辑器上传图片_齐博CMS整合百度编辑器上传附件的BUG以及解决办法...