热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

databasesync适配openGauss使用指导书

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

一、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目录内容如下:
《database-sync适配openGauss使用指导书》

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

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

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命令可查看程序运行的帮助信息
《database-sync适配openGauss使用指导书》
其中[]表示可选参数,包括如下几种:

  • –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
《database-sync适配openGauss使用指导书》
eg 2:从openGauss到postgres实现表同步

java -jar database-sync-1.3.jar -sd opengauss1 public test_0322_1 postgres public test_0322
《database-sync适配openGauss使用指导书》
至此,可实现openGauss数据库与其他数据库间的表数据同步


推荐阅读
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • Navicat Premium 15 安装指南及数据库连接配置
    本文详细介绍 Navicat Premium 15 的安装步骤及其对多种数据库(如 MySQL 和 Oracle)的支持,帮助用户顺利完成软件的安装与激活。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文探讨了适用于Spring Boot应用程序的Web版SQL管理工具,这些工具不仅支持H2数据库,还能够处理MySQL和Oracle等主流数据库的表结构修改。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 本文详细介绍了 MySQL 的查询处理流程,包括从客户端连接到服务器、查询缓存检查、语句解析、查询优化及执行等步骤。同时,深入探讨了 MySQL 中的乐观锁机制及其在并发控制中的应用。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 本文探讨了2012年4月期间,淘宝在技术架构上的关键数据和发展历程。涵盖了从早期PHP到Java的转型,以及在分布式计算、存储和网络流量管理方面的创新。 ... [详细]
author-avatar
可卡因
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有