database-sync适配openGauss使用指导书

Posted Gauss松鼠会

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了database-sync适配openGauss使用指导书相关的知识,希望对你有一定的参考价值。

一、database-sync简介

database-sync作为一种开源辅助工具,用于数据库之间的表同步,更确切的说法是复制,可以从一个数据库复制表到另一个数据库

  • 该工具支持的功能如下:
    (1)自动同步表字段,如:源表扩字段,目标表自动扩字段

    (2)支持增量或全量同步数据

    (3)支持指定字段同步,只同步关心的字段

  • 支持的关系型数据库:

    mysql、db2、postgresql、oracle、sqlserver

  • 源代码下载:

    database-sync代码托管在github上

    源代码下载:下载

二、database-sync适配openGauss

目标:database-sync适配openGauss数据库,可支持openGauss与其他数据库之间实现数据同步

源代码下载:适配openGauss的源代码已上传到个人仓库下的“douxin_master”分支

下载链接:下载

三、程序使用说明

前提:已安装Java JDK 1.8或更高版本,安装maven

Step 1:下载代码并打包

git clone下载 douxin_master分支的代码,并进行打包

git clone https://gitee.com/ywzq1161327784/database-sync.git
cd database-sync/
git checkout origin/douxin_master
mvn clean package -Dmaven.test.skip=true

打包后,target目录内容如下:

Step 2:构建可执行工程目录

将mylib目录、target下的lib目录和database-sync-1.3.jar包复制到同一目录下,并创建一个config目录,在其下创建config.json文件写入配置信息,目录结构如下所示:

Step 3:编写配置文件

数据库连接信息以json格式配置在config/config.json文件中,每个节点包含type、driver、url、user、password、tbspace_ddl、encoding信息,

其中type指定数据库类型,取值为db2、postgres、mysql、oracle、sqlserver、openGauss,特别地,对于openGauss数据库需指定“type”:“openGauss”;

tbspace_ddl指定表空间语句,encoding指定编码方式。

配置文件示例:

{
    "database1":{
        "type":"openGauss",
        "driver":"org.postgresql.Driver",
        "url":"jdbc:postgresql://ip:port/postgres",
        "user": "****",
        "password":"******",
        "tbspace_ddl": "",
        "encoding":"utf-8"
    },
    
    "database2":{
        "type":"postgres",
        "driver":"org.postgresql.Driver",
        "url":"jdbc:postgresql://ip:5432/postgres",
        "user": "****",
        "password":"******",
        "tbspace_ddl":"WITH (compression=no, orientation=orc, version=0.12)\\ntablespace hdfs\\n",
        "encoding":"utf-8"
    },
    
    "database3":{
        "type":"oracle",
        "driver":"oracle.jdbc.driver.OracleDriver",
        "url":"jdbc:oracle:thin:@localhost:1521:orcl",
        "user": "****",
        "password":"****",
        "tbspace_ddl": "",
        "encoding":"utf-8"
    },
    
    "database4":{
        "type":"db2",
        "driver":"com.ibm.db2.jcc.DB2Driver",
        "url":"jdbc:db2://ip:port/wbsj",
        "user": "****",
        "password":"****",
        "tbspace_ddl": "",
        "encoding":"utf-8"
    },
    
    "database5":{
        "type":"mysql",
        "driver":"com.mysql.cj.jdbc.Driver",
        "url":"jdbc:mysql://localhost:3306/aarondb",
        "user": "****",
        "password":"****",
        "encoding":"utf-8"
    },

    "buffer-rows": 100000
}

Step 4:查看程序帮助信息

在步骤2中的目录下,执行java -jar database-sync-1.3.jar -h命令可查看程序运行的帮助信息

其中[]表示可选参数,包括如下几种:

  • –version或者-v表示打印版本信息并退出;

  • –help或者-h表示打印帮助信息并退出;

  • –sync-ddl或者-sd 表示自动同步表结果,默认情况下不会自动同步表结构,因此不指定该参数时,同步表时下述的目标表{toDB}需存在;

  • –from_fields=col1,col2或者-ff=col3,col4表示指定原表的字段序列;

  • –to_fields=col1,col2或者-tf=col3,col4表示指定目标表的字段序列;

  • –no-feture或者-nf表示不使用特定数据库的特性;

  • [whereClause]表示where条件,用于增量更新。

{}表示必选参数,共有6个,分别说明如下:

{fromDB}表示原表所在的数据库信息,在Step3所示的配置文件中,可以取值为database1,database2等;

  • {fromSchema}表示原表的模式名;

  • {fromTable}表示原表的表名;

  • {toDB}表示目标表所在的数据库信息;

  • {toSchema}表示目标表的模式名;

  • {toTable}表示目标表的表名。

Step 5:跨数据库间实现表数据同步

eg 1:从postgres到openGauss实现表同步

java -jar database-sync-1.3.jar -sd postgres public test_0322 opengauss1 public test_0322_1

eg 2:从openGauss到postgres实现表同步

java -jar database-sync-1.3.jar -sd opengauss1 public test_0322_1 postgres public test_0322

至此,可实现openGauss数据库与其他数据库间的表数据同步

以上是关于database-sync适配openGauss使用指导书的主要内容,如果未能解决你的问题,请参考以下文章

参赛作品42openGauss/MogDB数据库完美适配Grafana及Prometheus

一openGauss概述

如何使用pg_chameleon迁移MySQL数据库至openGauss

云原生使用Dockerfile制作openGauss镜像

❤️‍如何使用pg_chameleon迁移MySQL数据库至openGauss❤️‍

openEuler-22.03系统安装openGauss3.0.0 企业版过程中遇到的坑