# 亚信AntDB数据库项目化部署方案
# 前言
本文介绍中兴亚信数据库的项目化部署方案,本方案特别注意的地方不多,将其当做MySQL8数据库标准部署即可。
项目化支持,意味着可能存在项目化适配成本,可能存在缺陷,并且后续产生的BUG可能需要额外项目化成本解决
# 部署示例
OA版本:A8+ V9.0(信创)
中间件:东方通
数据库:亚信antdb-7.1.0
# 数据库信息
本次采用原生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之前的工具选“其它”),我们仅做中间件的自动化配置部署即可:
以上完成后,需要接着做一些人工部署操作:
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
表示使用致远的驱动代理,使用这个代理可以针对某些数据库做一些个性化转化,更加稳定。
以上完成后,数据库相关连接配置就告一段落。剩下是按照信创部署手册,在中间件下做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版本已经修正了工具,不再提示错误。