# 亚信AntDB数据库项目化部署方案

# 前言

本文介绍中兴亚信数据库的项目化部署方案,本方案特别注意的地方不多,将其当做MySQL8数据库标准部署即可。

项目化支持,意味着可能存在项目化适配成本,可能存在缺陷,并且后续产生的BUG可能需要额外项目化成本解决

# 部署示例

OA版本:A8+ V9.0(信创)

中间件:东方通

数据库:亚信antdb-7.1.0

1722332021171.png

# 数据库信息

本次采用原生MySQL连接和驱动模式做部署:

数据库连接URL格式:jdbc:mysql://ip:3306/v3x?autoReconnection=true&useSSL=false
数据库驱动类:com.mysql.jdbc.Driver
JDBC DatabaseMetaData.getDatabaseProductName()返回值:MySQL
数据库内核:等同于MySQL8

# 操作步骤

# 1、亚信数据库安装

对数据库厂商提部署要求:UTF-8编码格式、不区分大小写。

建议数据库安装由第三方数据库厂商完成,我们需要等待厂商安装完成后进行数据库脚本的导入。

亚信数据库依赖指定版本的gcc,如果自行安装需要注意

# 2、准备产品的MySQL数据库脚本

亚信数据库基于mysql内核,因此可以直接使用标准产品内置的mysql初始化脚本

# 2-1、老客户:数据库厂商转库处理

如果是老客户,需要做第三方数据库转库操作:这个由三方数据库厂商解决,我们需要提供的是老客户原始数据库的备份文件,以及我们针对不同场景的字段类型结构,方便厂商做转库判断。

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

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 文本

# 2-2、新客户:使用Xinchuang下的初始化脚本

如果是新客户,则直接拿到产品的初始化脚本导入到MySQL内核的第三方数据库中:

  • 首先下载信创部署包:致远商务公布的安装程序下载地址-对应版本-程序-2.*_XinChuang.zip

  • 解压Xinchuang.zip,找到数据库脚本存放目录:/deploytools/file/sql/init/

  • 确定当前客户的产品线和版本:A8N-1对应A8-N企业版、A8N-2对应A8-N集团版、G6N-1对应G6-N单组织、G6N-2对应G6-N多组织

  • 然后根据产品信创版本,找到对应版本的MySQL初始化脚本文件,如信创集团版就是A8N-2_ALL_IN_ONE_MYSQL.SQL,将初始化脚本文件导入到第三方数据库中。

# 3、部署信创中间件

此步由中间件厂商部署,部署后我们需要配置数据库相关信息。

# 4、中间件下配置数据库连接

# 4-1、标准中间件(金蝶、东方通、宝兰德)下配置数据库方法

中间件是金蝶、东方通、宝兰德这些标准产品验证支持的中间件,可以使用信创可视化部署工具进行部署:

  • 通过开放平台在线查阅信创部署手册(如A8-N V9.0信创部署手册 (opens new window)),或下载离线版手册(致远商务公布的安装程序下载地址-对应版本-文档-安装维护手册)

  • 阅读信创部署手册,了解信创部署工具deploytools的结构和使用方法,以及部署之后数据库相关配置事宜

1)信创工具自动化部署:由于前面步骤已经初始化了数据库,故本次使用信创部署工具不要再做数据库操作,数据库选择“不初始化数据库”(V9.0之前的工具选“其它”),我们仅做中间件的自动化配置部署即可:

1720713199291.png

以上完成后,需要接着做一些人工部署操作:

2)拷贝驱动jar:将数据库驱动jar拷贝到中间件的lib下

注意:mysql驱动版本号应该与亚信数据库的版本号一致

  • 东方通中间件一般是TongWeb/lib/目录下,随后重启东方通服务

  • 金蝶中间件是拷贝到对应版本中间件lib下(如AASV9.0/lib/),建议重启中间件

  • 宝兰德是拷贝到实例的lib目录下(如:/home/BES-CLUSTER-9.5.2/node/seeyon_node1/instances/seeyon_a/lib/),建议重启中间件

3)中间件下调整JVM参数,增加-Djdbcproxydriver.driverclass的参数配置:

-Djdbcproxydriver.driverclass=com.mysql.jdbc.Driver

4)中间件下配置数据源连接

  • 名称:jdbc/ctpDataSource
  • 数据库驱动类名:使用致远的com.seeyon.ctp.monitor.perf.jdbcmonitor.proxyobj.JMProxyDriver,如果不生效再使用MySQL自己的com.mysql.jdbc.Driver
  • 数据库连接URL:按厂商提供的URL录入,一般格式为jdbc:mysql://hostname:port/数据库名?autoReconnection=true&useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8
  • 数据库驱动jar包地址:设置为前面第2步中间件lib下的jar
  • 数据库帐号密码:按厂商提供的录入

注:这里驱动类名设置为com.seeyon.ctp.monitor.perf.jdbcmonitor.proxyobj.JMProxyDriver表示使用致远的驱动代理,使用这个代理可以针对某些数据库做一些个性化转化,更加稳定。

1720713155160.png

以上完成后,数据库相关连接配置就告一段落。剩下是按照信创部署手册,在中间件下做Seeyon应用包的部署、发布、启动,功能验证。

# 4-2、(其他场景)中间件下配置数据库方法

如果你无法满足4-1的条件,则按照下面方案做数据库配置:

1)中间件下配置数据源连接

  • 名称:jdbc/ctpDataSource
  • 数据库驱动类名:使用厂商提供的类名,一般是com.mysql.jdbc.Driver,MySQL8系列内核也务必使用这个驱动类名
  • 数据库连接URL:按厂商提供的URL录入,一般格式为jdbc:mysql://hostname:port/数据库名?autoReconnection=true&useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8
  • 数据库驱动jar包地址:选择厂商提供的驱动jar,条件允许的话,可以将驱动jar放置到中间件lib下方便管理
  • 数据库帐号密码:按厂商提供的录入

2)对非标适配的中间件进行配置,做Seeyon应用包的部署、发布、启动,功能验证。

# 扩展说明:数据库调优

务必让三方数据库厂商做好数据库的参数配置调优,也可以参考开放平台MySQL的调优经验 (opens new window)做调整。

# 常见问题

问题:低版本用无图形化页面部署,数据库选择其它,会提示“未找到对应数据库版本驱动JAR,替换失败”

解决方案:数据库选择“其它”,则此提示可以忽略,“安装失败”的提示也可以忽略,这是成功的。V9.0版本已经修正了工具,不再提示错误。

1721117683014.jpg

创建人:wangyxyf
修改人:het、wangyxyf