概述
在进行两个服务器间的知识库迁移之前,务必留意以下关键注意事项,并提前完成相应的检查与准备工作,以有效规避迁移过程中可能出现的错误,从而节省因问题处理所产生的时间成本与人力成本。在进行两个服务器间的知识库迁移之前,遵循以下关键注意事项并提前做好检查与准备,可有效避免迁移过程中的错误,节省时间与人力成本。
...
一、备份“目标环境”的知识库
...
迁移操作会覆盖目标环境的知识库。因此,在迁移前,请务必备份目标环境的知识库。后续若需恢复目标环境,可通过备份文件进行操作。由于知识库的迁移会覆盖目标环境的知识库,因此在进行迁移之前,需要先备份“目标环境”的知识库。后续若有需要找回目标环境的也有资源时,可通过留存的备份文件进行找回。
二、核对源与目标环境数据库信息
...
核对内容 | 检查内容 | 备注 | ||||
---|---|---|---|---|---|---|
表数据大小写策略是否一致表数据大小写策略 | 强烈建议源环境与目标环境数据库表数据大小写策略保持一致,否则较容易出现迁移失败的情况。强烈建议两个环境表数据大小写策略保持一致,否则易导致迁移失败。
| |||||
数据库字符集等是否一致数据库字符集 | Smartbi系统在知识库中创建表时,并未在建表语句中指定字符集,而是使用数据库设置的字符集。当源环境与目标环境知识库字符集不一致时,容易出现问题。Smartbi系统创建表时,并未在建表语句中指定字符集,而是使用数据库默认字符集。若源环境与目标环境知识库字符集不一致,容易出现问题。 例如源环境知识库为UTF例如源环境知识库字符集为UTF-8,目标环境知识库字符集为GBK,通常都会恢复失败或恢复后服务器启动失败,需要保证两个环境知识库字符集一致。8,目标环境知识库字符集为GBK,通常都会恢复失败。 | |||||
表名大小写策略是否一致 | 建议源环境、目标环境数据库的表名大小写策略保持一致。例如源环境数据库为大小写敏感,那么目标环境数据库也建议设置为大小写敏感建议源与目标环境数据库的表名大小写策略一致。例如,源环境为大小写敏感,目标环境也应设置为大小写敏感。 | |||||
列名大小写策略是否一致 | 建议源环境、目标环境数据库的列名大小写策略保持一致。例如源环境数据库为大小写敏感,那么目标环境数据库也建议设置为大小写敏感与表名大小写策略同理,建议源与目标环境数据库的列名大小写策略保持一致。 |
典型案例
...
某项目源环境为 MySQL(表数据大小写敏感),目标环境为达梦 8(表数据大小写不敏感)。源环境备份恢复到目标环境时失败,提示 “违反表 [t_parameter]
...
唯一性约束条件”。
经排查,源环境中某数据源创建了 ProName 和
...
proname 两个参数,生成的 ID 分别为 PARAM. 数据源名称.ProName 和 PARAM. 数据源名称.
...
当将源环境的知识库恢复到目标环境的知识库(达梦8 表数据大小写不敏感)时,由于达梦数据库的表数据是不区分大小写的,所以会识别 PARAM.数据源名称.ProName 和 PARAM.数据源名称.proname 是主键相同的数据,存在主键冲突,因此数据库层面抛出了错误提示“违反表[t_parameter]唯一性约束条件”。
在这个案例下,解决方案有以下两种方式:
1)修改目标环境知识库为表数据大小写敏感。推荐此方案!
2)在备份文件backup.zip中找到t_parameter表对应的xml文件,使用文本编辑器打开xml文件,通过F5搜索其中一个参数,并将其ID和名称进行修改。
...
proname。因源环境区分大小写,两者可正常保存。但在达梦 8(不区分大小写)中,系统识别两者主键相同,产生冲突。
在本案例中,解决方案有如下两种:
1 推荐:修改目标环境知识库为表数据大小写敏感。
2.不推荐 :在备份文件 backup.zip 中找到 t_parameter 表对应的 xml 文件,使用文本编辑器打开,搜索并修改参数的 ID 和名称(如将 “proname” 改为 “proname2”),即通过修改xml的方式,将参数proname的ID和名称修改为 PARAM.数据源名称.proname2 和 proname2。
将修改后的xml文件覆盖到知识库备份文件中,重新进行恢复。
但此种方案存在以下问题
a 修改过程极易出错
b 无法保证涉及到该参数的其他表也一并进行修改
c 对于业务数据库本身存在同名但大小写不同的表、字段名这种场景,无法通过此方式进行处理。如业务数据库为 proname2。将修改后的文件覆盖原 xml 文件后重新恢复。
但此方法存在风险:修改过程易出错;无法保证相关表同步修改;且对于业务数据库中同名但大小写不同的表或字段,无法处理,如业务数据库为 Mysql区分大小写,存在表 Orders 和表 order。当出现本案例中的问题时,无法直接修改表的名称为其他名称,这种修改方式会导致表名不正确。order,当出现本案例中的问题时,无法直接修改表的名称为其他名称,这种修改方式会导致表名不正确。
...
三、选择合适的备份 /
...
当进行迁移的源环境知识库和目标环境知识库并不是同一种数据库类型时(如源环境为MySQL、目标环境为Oracle),并不推荐使用数据库工具对数据库进行备份和迁移,因为不同数据库的语法存在较大的差异。更推荐使用Smartbi系统中的备份知识库、恢复知识库功能进行知识库的迁移。
...
恢复工具
若源与目标环境知识库的数据库类型不同(如源为 MySQL,目标为 Oracle),不建议使用数据库工具进行备份和迁移,因其语法差异较大。推荐使用 Smartbi 系统中的备份与恢复知识库功能。具体操作可参考:备份知识库、恢复知识库
...
四、处理备份时的系统检查问题
在“备份知识库”时,系统会自动进行系统检查,该步骤是为了提前发现当前环境知识库存在的问题,如表是否存在主键丢失等情况。
...
若提示出现以下问题,建议先对当前环境进行修复后,再重新备份知识库。
注意事项5:目标环境为达梦的特殊注意事项
...
五、目标环境为达梦数据库的特殊注意事项
若目标环境知识库为达梦数据库,则除了上述事项外,当源环境知识库为MySQL、Oracle、SQL Server、PostgreSQL时,需将达梦数据库的兼容模式设置为对应模式。
可通过以下语句查询达梦数据库的兼容模式
SELECT * FROM V$PARAMETER WHERE NAME = 'COMPATIBLE_MODE';
如何修改达梦数据库的兼容模式,建议通过网上或AI搜索。
修改达梦数据库兼容模式方法,请通过网络或 AI 搜索获取。