# 信创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之前的工具选“其它”),我们仅做中间件的自动化配置部署即可:
以上完成后,需要接着做一些人工部署操作:
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
表示使用致远的驱动代理,使用这个代理可以针对某些数据库做一些个性化转化,更加稳定
以上完成后,数据库相关连接配置就告一段落。剩下是按照信创部署手册,在中间件下做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版本已经修正了工具,不再提示错误。