秒级迁移数据库!一款100%开源数据库迁移工具,支持几乎所有主流数据库,可全量/增量/变化量方式同步
- 💂 个人网站: IT知识小屋
- 🤟 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主
- 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦
简介
本项目是开源社区中一款功能强大且灵活的数据库迁移与同步工具,基于Java开发,提供源端数据库向目的端数据库的离线批量迁移同步功能.旨在帮助开发者和企业轻松实现异构数据库之间的数据迁移、结构迁移和实时增量同步。系统兼容几乎所有主流数据库,包括:MySQL、Oracle、SQLServer、PostgreSQL、DB2、SBase、MariaDB、SQLite、Hive及 DM、Kingbase、OSCar等,提供全量、增量和变化量同步方案,无需复杂配置即可快速上手。
同时,系统具备高扩展性和模块化设计,提供任务调度与Web管理界面,方便运维和监控。无论是一次性迁移,还是持续的数据同步,该工具都能满足个人和中小型企业的数据库管理和数据集成需求,是免费数据库迁移中不可多得的一款工具。
-
结构迁移:
-
支持字段类型、主键信息、建表语句等的转换,并生成建表SQL语句。
-
支持基于正则表达式转换的表名与字段名映射转换。
-
-
数据同步:
-
基于JDBC的分批次离线读取源端数据库数据,并基于insert/copy方式将数据分批次写入目的数据库。
-
支持指定增量标识字段的增量同步(适用于日志表等存在增量标识字段的同步场景)
-
支持有主键表的 变化量同步 (变化数据计算Change Data Calculate)功能
-

架构
项目结构
├── 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-highgo // -> highgo方言实现类
├── 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-greenplum // -> greenplum方言实现类
├── dbswitch-product-clickhouse // -> clickhouse方言实现类
├── dbswitch-product-starrocks // -> starrocks方言实现类
├── dbswitch-product-doris // -> doris方言实现类
├── dbswitch-product-oceanbase // -> oceanbase方言实现类
├── dbswitch-product-mongodb // -> mongodb方言实现类
├── dbswitch-product-elasticsearch // -> elasticsearch方言实现类
├── dbswitch-data // 工具入口模块,读取配置文件中的参数执行异构迁移同步
├── dbswitch-admin // 在以上模块的基础上引入Quartz的调度服务与接口
├── dbswitch-admin-ui // 基于Vue2的前段WEB交互页面
├── dbswitch-dist // 基于maven-assembly-plugin插件的项目打包模块
技术栈
前端:Vue
后端:SpringBoot、hutool、mybatis
功能列表
数据库迁移与结构管理
-
支持不同数据库之间的字段类型自动转换,确保迁移后的数据结构一致性。
-
自动识别主键信息并迁移,保证数据完整性。
-
根据源数据库结构生成建表语句,简化迁移操作。
-
支持正则表达式映射表名和字段名,灵活应对复杂命名规则。
数据同步
-
全量同步:迁移源库所有数据到目标库,适用于初次迁移。
-
增量同步:通过增量标识字段实现数据的增量迁移,适合日志表和实时数据。
-
变化量同步(CDC):对有主键的数据表,计算变化部分进行同步,满足实时同步需求。
性能优化
-
支持 JDBC 分批读取数据,提升大数据量迁移效率。
-
支持批量写入,包括 insert 和 copy 方式,提高写入性能。
Web 管理功能
-
提供可视化界面创建、配置和管理迁移任务,简化操作流程。
-
支持任务调度,实现定时同步,满足周期性数据迁移需求。
-
实时任务监控,提供日志查看和错误提示,便于排查问题。
扩展性与模块化
-
可自定义数据库方言,实现对其他数据库的支持。
-
模块化设计,核心迁移逻辑、数据库方言、Web 管理和执行模块独立,可灵活扩展。
-
支持离线同步和 Web 管理两种模式,满足一次性迁移或持续同步的需求。
UI界面
系统概览

数据源


数据导航


任务管理



监控调度

开源地址&使用手册
点击下方的【IT学习日记】回复【资源】领取!
如果这篇文章对您有帮助,请一定帮我点个 “关注” 和 “点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。

写在最后
1000+优质开源项目更新进度:204/1000。如需更多类型优质项目推荐,请在文章后留言。

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)