概述
在信创背景下,知识库迁移至信创数据库成为企业信息化升级的重要一环。本解决方案旨在提供一个完整、系统的信创知识库迁移方法步骤,确保迁移过程平滑高效。
[图片要改一下】
迁移实施
(一)前期准备阶段
1 源环境知识库诊断及修复【系统检查】
2 达梦、Oceanbase数据库专项诊断
若目标环境知识库为达梦、Oceanbase,需先进此项诊断和处理
达梦、Oceanbase数据库是否设置为源环境知识库对应的兼容模式。若未设置,需重新设置
3 源、目标环境兼容性诊断
下载附件表格:
...
迁移实施
一、前期准备阶段
(一)源环境系统检查及修复
访问Smartbi源环境,打开“系统检查”功能。点击“全部检查”,对源环境系统进行系统检查。
当以下表格中的检查项目检查出问题时,需进行修复,确保对源环境自身存在的异常进行提前处理。
序号 | 检查项目 | 备注 |
---|---|---|
1 | 资源树检查 | 若检查出问题,需先进行修复 |
2 | 表结构检查 | 若检查出问题,需先进行修复 |
3 | 表数据检查 | 若检查出问题,需先进行修复 |
4 | 用户关系检查 | 若检查出问题,需先进行修复 |
5 | 表数据量检查 | 若检查出问题,需先进行修复 |
6 | 表索引检查 | 旧版本(V8)不存在该检查项目,可执行一次“重建索引”代替 |
(二)源、目标环境知识库兼容性诊断
下载附件中的Excel表格,对源、目标环境知识库进行兼容性诊断:知识库迁移诊断Excel表格.xlsx
表格内容截图如下,请按照后续步骤进行下一步诊断
1、根据附件中的表格,对源知识库、目标知识库的诊断项进行确认,并将检查出的结果填入表格“源环境知识库”、“目标环境知识库”两列中。
填写示例如下:
序号 | 诊断项 | 源环境知识库 | 目标环境知识库 |
1 | 数据库类型* |
Oracle |
SelectDB |
2 |
数据库字符集* |
UTF-8 |
UTF-8 |
3 |
数据库表数据大小写敏感* | 是 | 是 |
4 |
数据库是否有全局参数控制表数据大小写敏感* | 是 | 是 |
5 |
数据库存在兼容模式* |
否 | 否 |
...
6 | 数据库表名大小写是否敏感 | / | / |
7 | 数据库列名大小写是否敏感 | / | / |
2、若表格中存在以下数据。则需要参考本章节进行进一步检查
序号 | 诊断项 | 源环境知识库 | 目标环境知识库 |
---|---|---|---|
... | ... | ... | |
3 |
数据库表数据大小写敏感* | 是 | 否 |
4 | 数据库是否有全局参数控制表数据大小写敏感* | ... | 否 |
将附件中的数据模型导入到源环境中,并基于该数据模型查询数据(可创建即席查询、电子表格清单表等资源)。
查看数据。
【需要】
该数据模型的作用是:检查知识库所有的表中是否存在大小写不一样的主键数据。如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 搜索获取。1) 将附件中的资源使用“导入资源”功能导入到源环境中。该资源提供了一个知识库数据诊断的数据模型,用于诊断知识库中数据大小写情况。
诊断资源:知识库诊断资源_migrate.xml;“导入资源”功能请参考:导入资源
2)编辑该数据模型“知识库诊断数据模型”,进入数据模型中的“脚本查询”的编辑界面,点击执行进行数据预览
注意 | ||
---|---|---|
| ||
1、请在源环境的空闲时间进行操作,减少干扰 2、该脚本预览时会遍历知识库中所有表进行诊断,耗时需要数分钟,请耐心等待 |
3)获取查询结果后,参考如下表格进行操作
查询结果 | 下一步处理动作 |
---|---|
结果为空 | 结果为空表示源环境知识库中不存在主键大小写不一致但是内容一致的数据,可以直接迁移。 在“知识库迁移诊断Excel表格”的“处理结果”一格中,填入“根据诊断结果,可以正常迁移” |
结果不为空 | 结果有数据表示源环境知识库中存在主键大小写不一致但是内容一致的数据,无法兼容。 需通过定制兼容,可联系思迈特技术支持进行沟通。 |
(三)目标环境预处理
根据“知识库迁移诊断Excel表格”中填写的内容和“要求及处理方案推荐”列,对目标环境知识库进行处理,如修改字符集、调整兼容模式等。并将处理结果填写在表格最后一列“处理结果”中。
示例如下
(四)资料归档
请妥善保存填写完毕的表格,以及我们提供给您的解决方案(若有),以便后续您再次进行迁移时进行查阅。
二、迁移执行阶段
(一)迁移工具选择
使用 Smartbi 系统中的备份与恢复知识库功能进行迁移。具体操作可参考:备份知识库、恢复知识库。
注意 | ||
---|---|---|
| ||
数据库工具备份恢复无法兼容不同知识库之间表名、列名大小写策略,不建议使用数据库工具进行备份、恢复。 |
(二)实施迁移
参考如下步骤进行迁移
1、源环境备份知识库
在源环境上通过“备份知识库”功能对知识库进行备份。
2、目标环境恢复知识库
在目标环境上通过“恢复知识库”功能,将源环境备份的知识库文件backup.zip恢复到目标环境中。
至此,源环境到目标环境的迁移动作完成。
三、目标环境优化
对目标环境进行系统检查,若出现问题及时修复,以保证目标环境正常运行。
最佳实践建议
1、建议搭建模拟环境进行迁移测试
2、实施分阶段迁移进行,先迁移测试环境,再迁移正式环境
常见问题
1、若同时存在版本升级和知识库迁移,如何实施比较合适?
答复:由于新版本可兼容更多的数据库类型作为知识库,因此需要先进行版本升级,再进行知识库迁移。
注意 | ||
---|---|---|
| ||
1、无论版本升级还是知识库迁移,都需要进行周密的准备、实施、测试工作。参考:Smartbi版本升级 2、版本升级和知识库迁移不能同时进行,极有可能因版本差异、知识库兼容问题从而相互干扰,增大问题排查难度,严重影响实施进度! |