# 华为云数据库GaussDB项目化部署手册

# 前言

华为云数据库GaussDB有多个产品,其中主备版适合与V5标准产品集成,本文也特指GaussDB主备版集成。

GaussDB分布式版不适合与OA集成,所有分布式数据库均不适合。

扩展阅读:GaussDB的架构设计解读 (opens new window)

华为云数据库GaussDB原名为GaussDB(for openGauss),是华为基于Postgresql数据库内核做的自主研发封装,所以保留了PG的特性,宣称完整适配Oracle语法。

关联项目:PMP-JFZC-2023-2594(GaussDB Kernel 503.1.0.SPC1300 build 2250b9b1)、PMP-JFZC-2023-3626、PMP-KKZY-2024-6672、JSFW-2024-00693(GaussDB Kernel 503.2.0 build 0cc08d1e)

华为GaussDB数据库(非分布式)标准产品未支持,目前可项目化集成(有项目成功上线案例)。

适配版本:8.2SP1及更高版本,参照本手册集成配置,暂不涉及定制开发代码适配。

项目化支持,意味着可能存在项目化适配成本,并且项目化过程中产生的BUG、以及后续OA版本升级需要额外项目化成本解决

# 集成方案简介

GaussDB提供了多个驱动jar,不同驱动jar集成方式和成本是不同的:

第一种:使用命名为gsjdbc4.jar的驱动文件,驱动主类名为“org.postgresql.Driver”,数据库连接的url前缀为jdbc:postgresql,这个明显就是Postgresql数据库,标准产品因为适配了PG,故使用gsjdbc4.jar的驱动文件理论不存在集成开发工作量,只需要按部署手册基于PG数据库方式做部署即可。

第二种:使用命名为opengaussjdbc.jar的驱动文件,主类名为“com.huawei.opengauss.jdbc.Driver”,数据库连接的url前缀为jdbc:opengauss,这是华为主推驱动模式。因为驱动类名和连接是华为自主定义,故存在集成开发工作量。集成开发适配点参考【适配第三方数据库方案 (opens new window)】。

参考资料:【华为GaussDB JDBC包说明 (opens new window)

如何选择集成模式?

如华为厂商没有特殊要求,均建议基于gsjdbc4.jar驱动做部署,纯实施部署工作量,无需代码开发。

如华为厂商所提供的产品要求只能用opengaussjdbc.jar驱动文件,则建议基于V5 9.0及更高版本集成,自9.0版本开始,已经内置了opengaussjdbc.jar的适配代码,基于这个推荐版本,没有开发工作量。

如客户是V5 8.2SP1及更早版本,执意要用opengaussjdbc.jar驱动文件部署,则需要项目组参考【适配第三方数据库方案 (opens new window)】做代码适合。

# 部署流程

# 1、中间件部署

参考信创环境部署手册中的信创部署工具进行产品的初始化安装部署,唯一不同处为:部署时数据库类型选择“其他”。

# 2、数据库准备

# 场景一:老客户转GaussDB场景

如果原来是非信创数据库客户,数据库已经有业务数据,此时需要转信创高斯DB:这些客户不需要做初始化数据库,只需要使用高斯DB厂商的转库工具即可。

针对此场景,在完成转库操作后,直接跳到第3步:配置数据源jdbc url即可。

以下是标准产品不同数据类型、字段的映射关系,可以提供给第三方数据库厂商参考,如厂商不需要,可忽略本步操作:

MySQL ORACLE SQLSERVER POSTGRESQL JAVA POJO类型 场景
BIGINT INTEGER BIGINT INT8 java.lang.Long 主键
DATE DATE DATETIME TIMESTAMP(0) java.util.Date 日期
DATETIME DATE DATETIME TIMESTAMP(0) java.util.Date 日期时间
DECIMAL NUMBER NUMERIC NUMERIC java.lang.Double 小数
INT INTEGER INT INT4 java.lang.Integer 整数
LONGBLOB BLOB IMAGE BYTEA java.lang.String 二进制对象
LONGTEXT CLOB NTEXT TEXT java.lang.String 大文本
SMALLINT NUMBER(4) SMALLINT INT2 java.lang.Integer 数字枚举
VARCHAR VARCHAR2 NVARCHAR VARCHAR java.lang.String 文本

# 场景二:全新客户安装高斯DB数据

1、请高斯厂商准备好一个空的数据库

2、通过致远商务公布的安装程序下载地址,下载致远安装包2.V8.2_XinChuang。随后取文件夹下的\deploytools\file\sql\init目录,找到对应版本线(A8-1企业版,A8-2集团版)中PostgreSQL文件夹下名为A8-1_ALL_IN_ONE_POSTGRESQL.SQL的初始化SQL,按照如下步骤修改初始化SQL文件,再到高斯数据库中运行完成数据库的初始化。

# 2.1唯一键

1、不支持唯一键,初始化sql中搜索UNIQUE 存在的表(UNIQUE空格),create table最后都需要加DISTRIBUTE BY REPLICATION

# 2.2 Schema 选择

Web端使用导入sql功能是默认使用public schema,会报错ERROR: permission denied for schema public

1、在web端点击数据库名字跳转到schema列表,新增schema;

2、sql文件最开始增加 set current_schema = 创建的schema;

# 3、数据源配置

如下方案二选一即可。

# 方案一:所有版本均适用

方案一使用命名为gsjdbc4.jar的驱动文件,无需代码适配,此方案需要联系数据库厂商获取文件名为gsjdbc4.jar的驱动文件。

# 信创部署场景

以东方通中间为例,登录东方通后台,进行WEB容器配置 - JDBC配置:

  • 数据库驱动类名配置为org.postgresql.Driver
  • 数据库连接需要在连接URL后增加?currentSchema=myschema参数,myschema为数据库上新建的schema;同时需要在连接URL后再增加&batchMode=false参数,优化数组返回错误值,最终URL格式如:jdbc:postgresql://192.168.0.90:8000/seeyon2?currentSchema=myschema&batchMode=false

# 非信创部署场景

1、在X86服务器下,通过Tomcat中间件做配置,修改base/conf/datasourceCtp.properties中数据源信息,其它中间件配置参考如下:

ctpDataSource.url=jdbc:postgresql://192.168.0.90:8000/seeyon2?currentSchema=myschema&batchMode=false
ctpDataSource.driverClassName=org.postgresql.Driver
ctpDataSource.username=V90
ctpDataSource.password=seeyon@123

2、找到中间件ApacheJetspeed\lib文件夹,将gsjdbc4.jar放入ApacheJetspeed\lib文件夹下,同时在lib文件夹下找一下文件名为postgresql*.jar的jar,如果存在则需要删除掉,否则会与gsjdbc4.jar冲突。

1719418192995.png

# 方案二:仅9.0以上版本适用

方案二使用命名为opengaussjdbc.jar的驱动文件。此方案涉及适配代码,自V5 9.0版本起,已经标准化内置了OpenGauss数据库的适配代码,理论无需二次开发,在完成环境准备后,通过信创中间件配置相关数据库连接即可测试使用。

此方案需要联系数据库厂商获取文件名为opengaussjdbc.jar的驱动文件

1、将所用高斯数据库驱动jar文件(opengaussjdbc.jar)放至TongWeb/lib/目录下,重启东方通服务。

2、访问东方通管理页面,打开:WEB容器配置 - JDBC配置

配置数据库连接,连接url:自动生成,需要修改ip地址、端口号、数据库名为实际情况:

用户名、密码填写实际情况。驱动路径:点击浏览进行文件选择,选择与数据库版本一致的驱动(opengaussjdbc.jar)

  • 数据库驱动类名:com.huawei.opengauss.jdbc.Driver

  • 连接URL:jdbc:opengauss://127.0.0.1:30100/pamsdbsit?currentschema=pams&batchMode=false&reWriteBatchedInserts=off&blobMode=on

**特别注意:**高斯数据库URL连接一定要带上&batchMode=false&reWriteBatchedInserts=off,如果只有batchMode=false参数,无reWriteBatchedInserts=off参数,会出现很多如下报错:

1699932411503.png

# 4、部署启动应用

信创客户部署应用就和其他的信创环境的一样,参考信创部署手册即可。

非信创服务器在完成数据库配置和驱动放置后,即可启动OA系统。

编撰人:zhangpan、wangyxyf、het、admin、zhangshuang、shenlq