热门标签 | 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环境下PostgreSQL的安装、配置及日常管理
    本文详细介绍了在Linux环境下安装、配置PostgreSQL数据库的过程,包括环境准备、安装步骤、配置数据库访问以及日常服务管理等方面的内容。适合初学者和有一定经验的数据库管理员参考。 ... [详细]
  • Pikachu平台SQL注入漏洞详解
    本文详细介绍了SQL注入漏洞的基本原理、攻击流程、不同类型注入点的识别与利用方法,以及基于union联合查询、报错信息、布尔盲注、时间盲注等多种技术手段的信息获取方式。同时,探讨了如何通过SQL注入获取操作系统权限,以及HTTP Header注入和宽字节注入等高级技巧。最后,提供了使用SQLMap自动化工具进行漏洞测试的方法和常见的SQL注入防御措施。 ... [详细]
  • SonarQube配置与使用指南
    本文档详细介绍了SonarQube的配置方法及使用流程,包括环境准备、样本分析、数据库配置、项目属性文件解析以及插件安装等内容,适用于具有Linux基础操作能力的用户。 ... [详细]
  • 本文探讨了如何在Django中创建一个能够根据需求选择不同模板的包含标签。通过自定义逻辑,开发者可以在多个模板选项中灵活切换,以适应不同的显示需求。 ... [详细]
  • 本文探讨了在一个多对一关系中保存和删除对象时遇到的问题,并提供了解决方案。具体问题表现为能够成功添加对象,但在尝试删除时,虽然对象从集合中移除,但更改未同步到数据库。 ... [详细]
  • 本文介绍如何利用JavaScript在页面加载时为ASP.NET的DropDownList控件设置特定的选项值。 ... [详细]
  • CentOS 7.6环境下Oracle 11g的数据泵操作与nmon性能监控
    本文详细介绍在CentOS 7.6操作系统中使用Oracle 11g的数据泵(Data Pump)进行数据的导入导出操作,并介绍如何通过nmon工具进行系统性能的监控与分析。 ... [详细]
  • 本文详细介绍了Oracle数据库的基本架构,包括数据文件和内存结构的概念。文章重点解释了Oracle实例的组成部分,如系统全局内存区域(SGA)和后台进程,以及客户端进程与服务器进程的交互方式。此外,还探讨了SGA中的共享池、库高速缓存、锁存器及SGA缓冲区缓存等关键组件的功能和运作机制。 ... [详细]
  • 使用EF Core在.Net Core控制台应用中操作SQLite数据库
    本文介绍如何利用Visual Studio 2019和Windows 10环境,通过Entity Framework Core(EF Core)实现对SQLite数据库的读写操作。项目源代码可从百度网盘下载。 ... [详细]
  • 解决PHP与MySQL之间的编码不匹配问题
    探讨如何有效解决PHP与MySQL之间常见的编码问题,确保数据的正确传输与显示。 ... [详细]
  • 本文通过一个具体的用户管理项目,详细介绍如何使用Spring MVC框架进行开发。从用户实体类的设计到控制器的实现,再到视图层的展示,全面解析Spring MVC的核心功能与实现细节。 ... [详细]
  • 深入探讨配置文件的管理与优化
    尽管配置文件的重要性不言而喻,但其管理和安全性问题却常被忽视。本文将详细讨论配置文件的不同管理策略及其优缺点。 ... [详细]
  • 本文介绍了Windows驱动开发的基础知识,包括WDF(Windows Driver Framework)和WDK(Windows Driver Kit)的概念及其重要特性,旨在帮助开发者更好地理解和利用这些工具来简化驱动开发过程。 ... [详细]
  • 本文档详细规划了从基础到高级的软件测试学习路径,包括但不限于测试基础、Linux和数据库、功能测试、Python编程、接口测试、性能测试、金融项目实战、UI自动化测试等内容,旨在为初学者和进阶者提供全面的学习指导。 ... [详细]
  • 本文详细分析了一个生产系统中遇到的 Apache Axis2 403 Forbidden 错误,并提供了具体的排查步骤和解决方案。 ... [详细]
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社区 版权所有