一款异构数据库迁移同步(搬家)工具 异构数据库数据与结构同步工具
一、工具介绍1、功能描述一句话,dbswitch工具提供源端数据库向目的端数据库的离线批量迁移同步功能,支持数据的全量和增量方式同步。包括: 支持字段类型、主键信息、建表语句等的转换,并生成建表SQL语句。 支持基于正则表达式转换的表名与字段名映射转换。 基于JDBC的分批次离线读取源端数据库数据,并基于insert/copy方式将数据分批次写入目的数据库。 支持有主键表的 增量变更同步 (变化数据计算Change Data Calculate)功能(千万级以上数据量的性能尚需在生产环境验证) 2、结构设计- └── 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-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插件的项目打包模块
复制代码 二、编译打包本工具纯Java语言开发,代码中的依赖全部来自于开源项目。 1、编译打包环境要求: JDK:>=1.8 (建议用JDK 1.8) maven:>=3.6
Maven 仓库默认在国外, 国内使用难免很慢,可以更换为阿里云的仓库。 参考教程: 配置阿里云的仓库教程
(1) windows下:
(2) Linux下:
- cd dbswitch/
- sh ./build.sh
复制代码
(3) Docker下:
- cd dbswitch/
- sh ./docker-maven-build.sh
复制代码
2、安装部署(1) 当编译打包命令执行完成后,会在dbswitch/target/目录下生成dbswitch-relase-x.x.x.tar.gz的打包文件,将文件拷贝到已安装JRE的部署机器上解压即可。 (2) docker容器方式部署: 假设已经部署好的MySQL(5.7+)数据库地址为192.168.31.57,端口为3306,账号为test,密码为123456 - docker run -d --name dbswitch \
- -e DBTYPE=mysql \
- -e MYSQLDB_HOST=192.168.31.57 \
- -e MYSQLDB_PORT=3306 \
- -e MYSQLDB_USERNAME=test \
- -e MYSQLDB_PASSWORD='123456' \
- -e MYSQLDB_NAME='dbswitch' \
- -v /tmp:/tmp \
- -p 9088:9088 \
- registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest
复制代码
- PostgreSQL/OpenGauss做配置库部署
假设已经部署好的PostgreSQL/OpenGauss数据库地址为192.168.31.57,端口为5432,账号为test,数据库为dbswitch(需先建好), 密码为123456 - docker run -d --name dbswitch \
- -e DBTYPE=postgres \
- -e PGDB_HOST=192.168.31.57 \
- -e PGDB_PORT=5432 \
- -e PGDB_USERNAME=test \
- -e PGDB_PASSWORD='123456' \
- -e PGDB_NAME='dbswitch' \
- -v /tmp:/tmp \
- -p 9088:9088 \
- registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest
复制代码
(3) 基于docker-compose提供linux联网环境下的一键安装,x86的CentOS系统下安装命令如下: - curl -k -sSL https://gitee.com/dromara/dbswitch/attach_files/1946299/download -o /tmp/dbs.sh && bash /tmp/dbs.sh && rm -f /tmp/dbs.sh
复制代码
文档详见: build-docker/install/README.md
一款异构数据库迁移同步(搬家)工具 异构数据库数据与结构同步工具
一款异构数据库迁移同步(搬家)工具 异构数据库数据与结构同步工具
一款异构数据库迁移同步(搬家)工具 异构数据库数据与结构同步工具
一款异构数据库迁移同步(搬家)工具 异构数据库数据与结构同步工具
一款异构数据库迁移同步(搬家)工具 异构数据库数据与结构同步工具
一款异构数据库迁移同步(搬家)工具 异构数据库数据与结构同步工具
一款异构数据库迁移同步(搬家)工具 异构数据库数据与结构同步工具
一款异构数据库迁移同步(搬家)工具 异构数据库数据与结构同步工具
一款异构数据库迁移同步(搬家)工具 异构数据库数据与结构同步工具

链接:https://pan.quark.cn/s/d8a759b5162c
提取码下载:
|