热门标签 | 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数据库与其他数据库间的表数据同步


推荐阅读
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 邮件(带附件,模拟文件上传,跨服务器)发送核心代码1.测试邮件发送附件接口***测试邮件发送附件*@parammultipartFile*@return*@RequestMappi ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文介绍了如何使用PHP代码实现微信平台的媒体素材上传功能,详细解释了API接口的使用方法和注意事项,确保文件路径正确以避免常见的错误。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
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社区 版权所有