一飞开源
阅读1295

[开源]异构数据库迁移同步(搬家)工具、数据库数据与结构同步工具

一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介

异构数据库迁移同步(搬家)工具。

异构数据库数据与结构同步工具。

dbswitch工具提供源端数据库向目的端数据库的批量迁移同步功能,支持数据的全量和增量方式同步。

二、开源协议

使用BSD开源协议

三、界面展示

  • WEB系统的使用流程为:


建立源端数据库的连接 -> 建立目的断数据库的连接 -> 配置任务 -> 发布任务 -> 手动/系统调度执行任务 -> 查看调度记录 -> 数据目录查看数据结果
  • WEB系统的部分截图:


四、功能概述

功能描述

一句话,dbswitch工具提供源端数据库向目的端数据库的批量迁移同步功能,支持数据的全量和增量方式同步。包括:

  • 结构迁移


支持字段类型、主键信息、建表语句等的转换,并生成建表SQL语句。

支持基于正则表达式转换的表名与字段名映射转换。

  • 数据同步


基于JDBC的分批次读取源端数据库数据,并基于insert/copy方式将数据分批次写入目的数据库。

支持有主键表的 增量变更同步 (变化数据计算Change Data Calculate)功能(千万级以上数据量的性能尚需在生产环境验证)

功能设计

五、技术选型

结构设计

  • 模块结构功能

└── dbswitch
    ├── dbswitch-common               // dbswitch通用定义模块
    ├── dbswitch-core                 // dbswitch迁移同步实现类
    ├── dbswitch-product              // dbswitch数据库方言
        ├── dbswitch-product-mysql    //  -> mysql方言实现类
        ├── dbswitch-product-oracle   //  -> oracle方言实现类
        ├── dbswitch-product-sqlserver//  -> sqlserver方言实现类
        ├── dbswitch-product-postgres //  -> postgres方言实现类
        ├── dbswitch-product-dm       //  -> dm方言实现类
        ├── dbswitch-product-kingbase //  -> kingbase方言实现类
        ├── dbswitch-product-oscar    //  -> oscar方言实现类
        ├── dbswitch-product-gbase    //  -> gbase方言实现类
        ├── dbswitch-product-mariadb  //  -> mariadb方言实现类
        ├── dbswitch-product-openguass//  -> openguass方言实现类
        ├── dbswitch-product-db2      //  -> db2方言实现类
        ├── dbswitch-product-sybase   //  -> sybase方言实现类
        ├── dbswitch-product-hive     //  -> hive方言实现类
        ├── dbswitch-product-sqlite   //  -> sqlite方言实现类
        ├── dbswitch-product-mongodb  //  -> mongodb方言实现类
    ├── dbswitch-data                 // 工具入口模块,读取配置文件中的参数执行异构迁移同步
    ├── dbswitch-admin                // 在以上模块的基础上引入Quartz的调度服务与接口
    ├── dbswitch-admin-ui             // 基于Vue2的前段WEB交互页面
    ├── dbswitch-dist                 // 基于maven-assembly-plugin插件的项目打包模块

编译打包

本工具纯Java语言开发,代码中的依赖全部来自于开源项目。

1、编译打包

  • 环境要求:
  • JDK:>=1.8 (建议用JDK 1.8)
  • maven:>=3.6
Maven 仓库默认在国外, 国内使用难免很慢,可以更换为阿里云的仓库。参考教程:配置阿里云的仓库教程
更多内容请查看 README.md 文档。

2、安装部署

(1) 当编译打包命令执行完成后,会在dbswitch/target/目录下生成dbswitch-relase-x.x.x.tar.gz的打包文件,将文件拷贝到已安装JRE的部署机器上解压即可。

(2) docker容器方式部署:

假设已经部署好的MySQL数据库地址为192.168.31.57,端口为3306,账号为test,密码为123456


docker run -d --name dbswitch \
 -e MYSQLDB_HOST=192.168.31.57 \
 -e MYSQLDB_PORT=3306 \
 -e MYSQLDB_USERNAME=test \
 -e MYSQLDB_PASSWORD='123456' \
 -v /tmp:/tmp \
 -p 9088:9088 \
 registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest

(3) 基于docker-compose提供linux联网环境下的一键安装,安装命令见 发行版链接地址

文档详见: build-docker/install/README.md

工具使用

dbswitch工具提供基于conf/config.yml配置的dbswitch-data模块启动方式和基于conf/application.yml的dbswitch-admin模块的WEB端使用方式;
更多内容请查看 README.md 文档。

六、源码地址

源码下载

关注下面的标签,发现更多相似文章

一飞开源
发布了 篇专栏 · 获取点赞 · 获取阅读

评论

查看更多
相关推荐
关于作者
一飞开源
获得点赞 100
文章被阅读 1000
相关文章