tsunli / dbms

DBMS 数据库分布式迁移服务平台(结构迁移、结构比较、数据校验、对象评估、数据迁移等功能)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DBMS

数据库分布式迁移服务平台


What's included 🚀Architecture 🌈Quick Start 🛠️Development 🧬Customization 🖍️License 📓Acknowledgments ⛳


What's included 🚀

  • ORACLE -> MYSQL 兼容性数据库迁移服务
    • Schema 表结构转换,支持 schema、表、列级别和默认值自定义
    • Schema 表结构比较,支持 schema、表、列级别和默认值自定义
    • Schema 表数据迁移,支持 sql、csv 一致性或非一致性迁移以及自定义 sql 语句迁移
    • Schema 表数据校验,支持 schema、表、列级别路由规则以及自定义筛选过滤字段
    • Schema 表对象信息评估,支持输出类 AWR 报告
    • Schema NUMBER 数据类型列采样或全扫描,识别 NUMBER 数据类型适配建议
  • ...

未来计划

  • POSTGRESQL 数据库表结构迁移到 MYSQL 兼容性数据库
  • MYSQL 兼容性数据库表结构迁移至 ORACLE 数据库
  • MYSQL 兼容性数据库表结构与 ORACLE 数据库表结构对比
  • ORACLE 数据实时同步到 MYSQL 兼容性数据库(基于 logminer)

Architecture 🌈

DBMS ARCH

DBMS 数据库分布式迁移服务平台由 dbms-master、dbms-worker、dbms-ctl、dbms-cluster 四个组件组成,主要功能:

  • dbms-master:实例注册、服务发现、健康检查、api访问(仅leader)
  • dbms-worker:任务运行者
  • dbms-ctl:与 master leader 节点交互进行提交任务
  • dbms-cluster:提供集群部署安装、扩容收缩、启动、停止、重启等集群管理操作

Quick Start 🛠️

DBMS 使用手册指引

DBMS 集群运维管理

DBMS 数据源权限要求

ORACLE 迁移服务手册


Development 🧬

当功能开发或 BUG 修复完成后,可按照如下方式本地快速启动集群进行验证和测试。

启动集群

$ make runMaster
$ make runWorker

验证测试

dbms-ctl 命令 help,通过子命令进行任务提交验证测试

$ dbms-ctl --help
CLI dbmsctl app for dbms cluster

Usage:
  dbmsctl [flags]
  dbmsctl [command]

Available Commands:
  assess      Operator cluster data assess
  compare     Operator cluster data compare
  completion  Generate the autocompletion script for the specified shell
  csv         Operator cluster csv migrate
  database    Operator cluster database
  datasource  Operator cluster datasource
  decrypt     Operator cluster decrypt data
  help        Help about any command
  sql         Operator cluster sql migrate
  stmt        Operator cluster statement migrate
  struct      Operator cluster struct migrate
  task        Operator cluster task
  verify      Operator cluster data compare

Flags:
  -h, --help            help for dbmsctl
  -s, --server string   server addr for app server
  -v, --version         version for app client

Use "dbmsctl [command] --help" for more information about a command.

Customization 🖍️

If you like the project and want to buy me a cola or have tech exchange, you can button sponsor or join tech group:

QQ Group

License 📓

This software is free to use under the Apache License.

About

DBMS 数据库分布式迁移服务平台(结构迁移、结构比较、数据校验、对象评估、数据迁移等功能)

License:Apache License 2.0


Languages

Language:Go 97.9%Language:HTML 1.6%Language:Makefile 0.3%Language:Shell 0.2%