# 信创MySQL内核数据库项目化部署方案

# 什么是MySQL内核数据库?

第三方数据库厂商采用了MySQL数据库的内核做的二次封装及自研,内核本质是MySQL,数据库连接URL、驱动名drivername、SQL语法都与MySQL一致。

比如OceanBase for MySQL、腾讯TDSQL for MySQL、亚信 for MySQL、京东StarDB for MySQL。

由于标准产品支持MySQL数据,这类第三方数据库又完全遵守MySQL基础规则,则可以尝试将其当做MySQL做部署集成,无需做代码的适配。

# 操作步骤

# 1、第三方数据库安装

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

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

# 2、准备产品的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下

  • 东方通中间件一般是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
  • 数据库驱动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
  • 数据库驱动jar包地址:选择厂商提供的驱动jar,条件允许的话,可以将驱动jar放置到中间件lib下方便管理
  • 数据库帐号密码:按厂商提供的录入

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

# 扩展说明:MySQL数据库调优

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

# 常见问题

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

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

1721117683014.jpg

创建人:het
修改人:het