# 中兴GoldenDB数据库项目化部署方案
# 前言
本文介绍中兴GoldenDB数据库的项目化部署方案,本方案特别注意的地方不多,将其当做MySQL8数据库标准部署即可。
项目化支持,意味着可能存在项目化适配成本,可能存在缺陷,并且后续产生的BUG可能需要额外项目化成本解决
# 部署示例
OA版本:A8+ V9.0(信创)
中间件:东方通
数据库:中兴GoldenDB(MySQL 8.0.25)
数据库SELECT VERSION()
信息:
# 数据库信息
本次采用原生MySQL连接和驱动模式做部署:
数据库连接URL格式:jdbc:mysql://ip:3306/v3x?autoReconnection=true&useSSL=false
数据库驱动类:com.mysql.jdbc.Driver
JDBC DatabaseMetaData.getDatabaseProductName()返回值:MySQL
数据库内核:等同于MySQL8
PS:GoldenDB也提供了自有协议的方案,如果使用这套方案,需要进行一定的定制开发,将自有协议注册到系统中【参考文档 (opens new window)】
单机数据库连接URL格式:jdbc:goldendb://ip:端口/golden_test?characterEncoding=gbk&zeroDateTimeBehavior=convertToNull&allowMultiQueryies=true&useBlackList=true&socketTimeout=60000
数据库驱动类名:com.goldendb.jdbc.Driver
JDBC DatabaseMetaData.getDatabaseProductName()返回值:MySQL
数据库内核:等同于MySQL8
# 操作步骤
# 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)获取MySQL原生驱动jar:由数据库厂商提供 与数据库同版本的MySQL原生驱动jar
拷贝驱动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
- 数据库驱动jar包地址:设置为前面第2步中间件lib下的jar
- 数据库帐号密码:按厂商提供的录入
注:这里驱动类名设置为
com.seeyon.ctp.monitor.perf.jdbcmonitor.proxyobj.JMProxyDriver
表示使用致远的驱动代理,使用这个代理可以针对某些数据库做一些个性化转化,更加稳定
以上完成后,数据库相关连接配置就告一段落。剩下是按照信创部署手册,在中间件下做Seeyon应用包的部署、发布、启动,功能验证。
# 扩展说明:MySQL数据库调优
务必让三方数据库厂商做好数据库的参数配置调优,也可以参考开放平台MySQL的调优经验 (opens new window)做调整。
# 常见问题
问题:进行CAP4表单配置时报错,提示:添加动态表字段有问题:null
解决方案:通过查看日志发现异常是从驱动jar底层抛出,一个简单的for循环ALTER TABLE
都有问题,明显与数据库或驱动有关。
通过SELECT VERSION()
查询到数据库是8.0.25版本,而中间件使用的驱动Jar是mysql-connector-j-8.0.33.jar
,两者存在不一致,根据对应CPU芯片替换为8.0.25的驱动jar问题立刻解决。
快速跳转
