# 腾讯TDSQL项目化部署手册

北京致远互联软件股份有限公司 2024年04月

# 前言

腾讯TDSQL 有多种兼容模式,比如Mysql、Postgresql等。MySQL兼容模式与MySQL语法一致,使用的URL、驱动也可以完全使用MySQL驱动;同理Postgresql也一样。

腾讯TDSQL for MySQL数据库标准产品未支持,目前可项目化集成(有项目成功上线案例)。

腾讯TDSQL for Postgresql数据库标准产品未支持,目前可项目化集成(有项目成功上线案例:JSFW-2024-02263)。

仅支持TDSQL集中式部署模式,不支持分布式、分片架构模式。

适配版本:8.2SP1及更高版本,参照本手册集成配置,暂不涉及定制开发代码适配。

项目化支持,意味着可能存在项目化适配成本,并且项目化过程中产生的BUG、以及后续OA版本升级需要额外项目化成本解决

转库注意事项:

如项目需要Oracle、SQLServer、PostgreSQL或其它数据库转MySQL数据库均存在转库风险,MySQL数据库每行数据不能超过65535字节,意味着:

  • 如使用utf8字符集(每个字符3字节),则单表字段VARCHAR总和不能超21845;
  • 如使用utf8mb4字符集(每个字符4字节),则单表字段VARCHAR总和不能超16383;
  • 而Oracle等数据库则无此限制(意味着原库单表字段VARCHAR总和超过21845),此时转MySQL会直接报错
  • 此问题常见于表单动态表(formmain_xxx),稍微复杂一点的表单即会遇到
  • 此问题是数据库架构决定,应用层面无优化方案,如要解决,就必须人工调整、拆分表单,成本周期较长

注意:如果要进行转库,比如原来是oracle转成TDSQL的PG模式,那么必须按照我们PG初始化sql文件中的字段类型,否则将会有很大问题,如果厂商的转库工具不支持转库过程对目标数据库字段类型进行映射修改,建议提前向客户暴露风险(JSFW-2024-02263流程的客户使用腾讯转库工具无法直接调整字段类型,后期维护成本特别大)

例如: 客户原来oracle数据库中字段类型是NUMERIC,不能直接转成NUMERIC类型,需要按我们文档要求或初始化sql文件中转为对应的字段类型

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

# 示例参考

OA版本:A8 v8.2sp1 数据库:TDSQL for MySQL

关联支持项目:PMP-JFZC-2023-3919、PMP-JFZC-2024-5083

# 新客户-部署流程

非信创环境,参考《致远协同管理软件安装维护手册》安装部署系统,使用非信创的SeeyonInstall脚本执行安装初始化操作。

在安装程序选择数据库类型页面,配置数据库连接信息(数据库类型、数据库名称、服务器地址、端口、用户名、密码)

  1. 数据库类型选择为MySQL,让腾讯TDSQL方准备好一个空的数据库,提前准备好TDSQL数据库的连接地址、数据库名、数据库端口、用户名和密码;

  2. 填写完成后测试连接正常即可;

  3. 数据库驱动直接用的安装包中mysql驱动,不用单独关注;

安装完成后,通过SeeyonConfig应用配置工具,检查数据库连接配置,确保数据库类型为MySQL,并且测试连接通过。

数据库连接地址示例:jdbc:mysql://172.169.xx.xx:15003/v3xuser?autoReconnection=true&characterEncoding=UTF-8

信创环境,如果是A8-N V9.0版本,可以使用信创部署工具,部署时直接选择到MySQL去初始化脚本。如果是V8.2SP1及更低版本,则可以使用非信创的安装程序初始化一套MySQL数据,再联系腾讯TD-SQL导入。

# 老客户-转库升级

老客户如果是MySQL,可以联系腾讯TD-SQL将老客户的MySQL数据库导入TD-SQL。随后修改SeeyonConfig配置,数据库类型设置为MySQL,数据库URL、帐号密码改为TD-SQL连接地址即可。

老客户如果是非MySQL,则需要联系腾讯TD-SQL进行转库操作。随后修改SeeyonConfig配置,数据库类型设置为MySQL,数据库URL、帐号密码改为TD-SQL连接地址即可。

编撰人:zhengkejie、het、wangyxyf