概述

在信创背景下,知识库迁移至信创数据库成为企业信息化升级的重要一环。本解决方案旨在提供一个完整、系统的信创知识库迁移方法步骤,确保迁移过程平滑高效。

[图片要改一下】


迁移实施

(一)前期准备阶段

1 源环境知识库诊断及修复【系统检查】



达梦、Oceanbase数据库专项诊断

若目标环境知识库为达梦、Oceanbase,需先进此项诊断和处理

达梦、Oceanbase数据库是否设置为源环境知识库对应的兼容模式。若未设置,需重新设置


3 源、目标环境兼容性诊断

下载附件表格:


1)根据附件表格检查源环境知识库和目标环境知识库,并将检查出的情况填入附件中表格1中

诊断项源环境知识库目标环境知识库目标环境知识库修正后
数据库类型MysqlOracle/
字符集utf-8gbkutf-8
表名大小写敏感
列名大小写敏感
表数据大小写敏感
表数据大小写敏感是否有全局控制属性



2)若表格1中存在以下数据。则需要进行此步骤

诊断项源环境知识库目标环境知识库
.........
表数据大小写敏感
表数据大小写敏感是否有全局控制属性...


将附件中的数据模型导入到源环境中,并基于该数据模型查询数据(可创建即席查询、电子表格清单表等资源)。

查看数据。

【需要】

该数据模型的作用是:检查知识库所有的表中是否存在大小写不一样的主键数据。如t_user表中,c_userid为主键字段。若表中有c_userid字段数据为 A0001和a0001,且可以正常使用,则该数据模型会输出t_user表

将输入的数据导填写到附件表格2中。



4 目标环境预处理

根据步骤2中的输出的表格,对目标环境进行预处理

1)若表格1中以下项 源环境知识库和目标环境知识库不一致,请修改目标环境知识库与源环境知识库一致。


2)若步骤2中执行了表格2的检查,确认表格2是否填入了数据,若填入了数据,则需要先访问目标环境,配置对应的表的主键列大小写敏感、

具体功能:XXXXXXXXXXXXXXXXXXXXXXXX





(二)迁移执行阶段

1、迁移工具选择


2、迁移

关注日志报错



(三)验证优化阶段


概述

在进行两个服务器间的知识库迁移之前,遵循以下关键注意事项并提前做好检查与准备,可有效避免迁移过程中的错误,节省时间与人力成本。



一、备份“目标环境”的知识库

迁移操作会覆盖目标环境的知识库。因此,在迁移前,请务必备份目标环境的知识库。后续若需恢复目标环境,可通过备份文件进行操作。
备份知识库功能请参考:备份知识库



二、核对源环境与目标环境知识库库信息

核对内容备注
表数据大小写策略

强烈建议两个环境表数据大小写策略保持一致,否则易导致迁移失败。

若源环境知识库表数据区分大小写,则目标环境知识库表数据也必须区分大小写!

搞一个java查询,查询源环境是否存在主键大小写不一样的记录。

数据库字符集

Smartbi系统创建表时,并未在建表语句中指定字符集,而是使用数据库默认字符集。若源环境与目标环境知识库字符集不一致,容易出现问题。

例如源环境知识库字符集为UTF-8,目标环境知识库字符集为GBK,通常都会恢复失败。

表名大小写策略是否一致建议源环境与目标环境数据库的表名大小写策略一致。例如,源环境为大小写敏感,目标环境也应设置为大小写敏感。
列名大小写策略是否一致与表名大小写策略同理,建议源环境与目标环境数据库的列名大小写策略保持一致。


典型案例

某项目源环境为 MySQL(表数据大小写敏感),目标环境为达梦 8(表数据大小写不敏感)。源环境备份恢复到目标环境时失败,提示 “违反表 [t_parameter] 唯一性约束条件”。

经排查,源环境中某数据源创建了 ProName 和 proname 两个参数,生成的 ID 分别为 PARAM. 数据源名称.ProName 和 PARAM. 数据源名称.proname。因源环境区分大小写,两者可正常保存。但在达梦 8(不区分大小写)中,系统识别两者主键相同,产生冲突。
在本案例中,解决方案有如下两种:

1 推荐:修改目标环境知识库为表数据大小写敏感,再重新恢复知识库。

2.不推荐 ​:在备份文件 backup.zip 中找到 t_parameter 表对应的 xml 文件,使用文本编辑器打开,搜索并修改参数的 ID 和名称(如将 “proname” 改为 “proname2”)。即通过修改xml的方式,将参数proname的ID和名称修改为 PARAM.数据源名称.proname2 和 proname2。将修改后的文件覆盖原 xml 文件后重新恢复。

但此方法存在风险:修改过程易出错;无法保证关联的其他表同步修改;且对于业务数据库中同名但大小写不同的表或字段,无法处理,如业务数据库为 Mysql区分大小写,存在表 Orders 和表 order,当出现本案例中的问题时,无法直接修改表的名称为其他名称,这种修改方式会导致表名不正确。



三、选择合适的备份 / 恢复工具

若源与目标环境知识库的数据库类型不同(如源为 MySQL,目标为 Oracle),不建议使用数据库工具进行备份和迁移,因其语法差异较大。推荐使用 Smartbi 系统中的备份与恢复知识库功能。具体操作可参考:备份知识库恢复知识库


四、处理备份时的系统检查问题

在“备份知识库”时,系统会自动进行系统检查,该步骤是为了提前发现当前环境知识库存在的问题,如表是否存在主键丢失等情况。

若提示出现以下问题,建议先对当前环境进行修复后,再重新备份知识库。



五、目标环境为达梦数据库的特殊注意事项

若目标环境知识库为达梦数据库,则除了上述事项外,当源环境知识库为MySQL、Oracle、SQL Server、PostgreSQL时,需将达梦数据库的兼容模式设置为对应模式。

可通过以下语句查询达梦数据库的兼容模式
SELECT * FROM V$PARAMETER WHERE NAME = 'COMPATIBLE_MODE';


修改达梦数据库兼容模式方法,请通过网络或 AI 搜索获取。