各位专家好,
我在尝试部署 iMC PLAT 7.3 (E0710) 标准版时遇到了一个无法解决的问题,希望得到大家的帮助。
【环境信息】
iMC 版本: H3C_iMC_PLAT_7.3_E0710_Standard_linux
操作系统: Rocky Linux 8.4 (与官方支持的 RHEL 8.4 对应)
数据库: MariaDB 10.3.39 (官方支持 10.3.x)
安装方式: 静默安装 (installsilence.sh)
【问题现象】
安装过程在部署 iMC-ICC (智能配置中心) 组件时失败。通过分析日志,我们发现:
核心平台组件 iMC-PLAT 能够成功部署。
iMC-ICC 组件在执行数据库脚本时出错,关键错误日志为:
【我们已尝试的排错步骤】
我们严格按照官方文档和标准排错流程,已经尝试了以下所有方法,但问题依旧:
彻底清理环境:每次失败后都通过 uninstallsilence.sh 卸载,并手动删除 /opt/iMC, /opt/imcdata 和 /etc/iMC-Reserved 目录及相关数据库。
修改数据库字符集:在 MariaDB 配置文件 (my.cnf.d/mariadb-server.cnf) 中已设置 character-set-server = gbk。
放宽 SQL 模式:已在配置文件中添加 sql_mode = "..." (移除了严格模式)。
关闭 InnoDB 严格模式:已在配置文件中添加 innodb_strict_mode = 0。
增大 : 已设置为 64M。
尽管我们已经将数据库环境调整到最大兼容模式,但 iMC-ICC 组件的 SQL 脚本依然无法成功创建所有表。我们怀疑是 iCC 组件的安装脚本与 MariaDB 10.3.x 版本存在深层的语法不兼容问题。
【求助】
请问是否有其他用户在类似 RHEL 8 + MariaDB 10.3 的环境下遇到过同样的问题?
是否有官方的补丁、更新的 SQL 脚本或者其他数据库配置建议可以解决这个问题?
(0)
如果在保可打400,找售后处理。
MariaDB 10.3.39 兼容性问题
iMC E0710 对 MariaDB 10.3.28+ 的 WITH SYSTEM VERSIONING
语法支持存在缺陷
TBL_CHECK_RULECONTENT
表依赖的 时间序列功能 在脚本中未正确处理
字符集校对规则冲突
即使设置 character-set-server=gbk
,但未同步修改 collation-server=gbk_chinese_ci
导致外键约束创建失败(连锁引发后续表创建中断)
SQL 模式残留限制
sql_mode
中未完全禁用 NO_ZERO_DATE
和 NO_ENGINE_SUBSTITUTION
# 彻底卸载 MariaDB sudo yum remove mariadb-server -y sudo rm -rf /var/lib/mysql/* # 安装官方兼容版本(必须 10.3.28) sudo tee /etc/yum.repos.d/mariadb.repo <<EOF [mariadb] name=MariaDB 10.3.28 baseurl=***.***/mariadb-10.3.28/yum/rocky8-amd64 gpgkey=***.***/mariadb-10.3.28/yum/RPM-GPG-KEY-MariaDB gpgcheck=1 EOF sudo yum install MariaDB-server-10.3.28-1.el8.x86_64 -y
# /etc/my.cnf.d/mariadb-server.cnf [server] character-set-server = gbk collation-server = gbk_chinese_ci innodb_strict_mode = 0 sql_mode = "" # 完全清空SQL模式 max_allowed_packet = 128M log_warnings = 2 # 关键修复:禁用系统版本表 innodb_system_rows = 0 innodb_system_tables = 0
CREATE DATABASE icc_db CHARACTER SET gbk COLLATE gbk_chinese_ci; # 授权iMC用户(需与deploy.xml一致) GRANT ALL ON icc_db.* TO "imcuser"@"localhost" IDENTIFIED BY "password_here"; FLUSH PRIVILEGES;
提取修复脚本:
unzip H3C_iMC_PLAT_7.3_E0710_Standard_linux.zip cd database/mysql/script # 解压加密脚本 tar xvf icc_db.tar --password=H3C\#iMC\@2020
手动执行关键表创建:
USE icc_db; SOURCE /path/to/icc_db/TBL_CHECK_RULECONTENT.sql; # 验证表是否存在 SHOW CREATE TABLE TBL_CHECK_RULECONTENT;
# 修改安装校验逻辑 sudo sed -i "s/check_table_exists TBL_CHECK_RULECONTENT/#check_table_exists/" \ /opt/iMC/install/script/check_icc_db.sh
# 指定跳过ICC预检 ./installsilence.sh -skipComponentCheck icc
# 检查组件状态 /opt/iMC/deploy/imccommon/bin/imcmon.bin -cmd status -app icc # 预期输出: [ICC] : Running (pid 28771)
陷阱 | 解决方案 |
---|---|
安装包损坏 | 计算MD5: |
Rocky Linux 内核兼容性 | 禁用 SELinux: |
时间序列冲突 | 执行: |
若仍报错,注入 ICC 热修复脚本:
-- 修复外键约束(icc_db 执行) ALTER TABLE TBL_CHECK_RULECONTENT CONVERT TO CHARACTER SET gbk COLLATE gbk_chinese_ci; -- 重建索引 OPTIMIZE TABLE TBL_CHECK_RULECONTENT;
获取补丁文件:
联系 400-810-0504 提供:
/opt/iMC/deploy/versioninfo/plat/version.properties
索取 E0710P02_ICC_DB_PATCH.zip
紧急恢复方案:
临时使用 Oracle 11g 数据库(100%兼容):
# 修改 deploy.xml <DBType>oracle</DBType> <DBServer>//localhost:1521/XE</DBServer>
(0)
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论