database-sync适配openGauss使用指导书

news/2025/3/29 5:27:28/

一、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数据库与其他数据库间的表数据同步


http://www.ppmy.cn/news/591676.html

相关文章

CTD数据库(Comparative Toxicogenomics Database)介绍与使用

文章目录 1 数据库介绍2 数据库功能及操作演示2.1 检索模块应用一 1 数据库介绍 CTD数据库(Comparative Toxicogenomics Database)整合大量化学物质、基因、功能表型和疾病之间相互作用数据,为疾病相关环境暴露因素及药物潜在作用机制研究提供…

第八十六章 SQL命令 USE DATABASE

文章目录 第八十六章 SQL命令 USE DATABASE 大纲参数 描述通过xDBC执行 第八十六章 SQL命令 USE DATABASE 设置当前名称空间和数据库。 大纲 USE [DATABASE] dbname参数 dbname - 当前进程将使用的名称空间和相应的数据库作为当前名称空间。 描述 USE DATABASE命令将当前进…

If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.2021-11-08

在尝试给自己的SpringBoot项目加上权限登录时,项目忽然就不行了。 然后我把修改的地方全部都删掉了,还是不行 报错是这样 分成两部分 一部分是 ERROR : o.s.b.d.LoggingFailureAnalysisReporter 另一部分 Description:Failed to configure a…

mysql 新建database_MySQL创建数据库(CREATE DATABASE语句)

在 MySQL 中,可以使用 CREATE DATABASE 语句创建数据库,语法格式如下: CREATE DATABASE [IF NOT EXISTS] [[DEFAULT] CHARACTER SET ] [[DEFAULT] COLLATE ]; [ ]中的内容是可选的。语法说明如下: :创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,…

oracle alter database,DBA常用命令之alter database

1.修改数据文件将数据文件脱机alter database datafile 4 offline; alter database datafile /u01/app/oracle/oradata/xiaoyao/users01.dbf offline;将数据文件联机alter database datafile /u01/app/oracle/oradata/xiaoyao/users01.dbf online;改变数据文件大小(注意一般只有…

Hive中数据库Database基本操作

Database Create Database CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name[COMMENT database_comment][LOCATION hdfs_path]//默认在仓库根目录[WITH DBPROPERTIES (property_nameproperty_value, ...)];Drop Database DROP (DATABASE|SCHEMA) [IF EXISTS] databa…

mysql创建database_MySQL Create Database 创建数据库

创建数据库 CREATE DATABASE 语法用于创建一个数据库。 语法: CREATE DATABASE db_name PHP MySQL 函数库中,mysql_query() 函数用于向 MySQL 发送并执行 SQL 语句。关于 mysql_query() 函数更详细信息请参看《MySQL mysql_query》。 创建一个名为 testdb 的数据库: $conn =…

MySQL的数据库database(二)

古语有云: 万恶淫为首,百善孝为先。 我们后辈当自勉。 上一章简单介绍了 SQL语句的基本概念和MySQL数据库的简单理解(一),如果没有看过,请观看上一章 一. MySQL的安装 MySQL 有安装版和免安装版。 安装版是二进制,可以通过图形化界面的方式来引导用户…