ins_emdb.mk报错可安全忽略,本质是Oracle 10g/11g在较新系统上链接nmccollector组件的已知兼容性问题;安装时点击“Continue”,完成后执行$ORACLE_HOME/bin/relink all即可,不影响数据库核心功能。
ins_emdb.mk 报错不是必须修复的编译错误,多数情况下可安全忽略——它本质是 oracle 10g/11g 安装器在链接 nmccollector 组件时触发的已知兼容性问题,尤其在 centos/rhel 6+、sles 11 等较新系统上高频出现。
直接点:为什么 ins_emdb.mk 会报错
- 错误信息通常是:
Error in invoking target 'collector' of makefile '/path/to/ins_emdb.mk',末尾跟make: *** [nmccollector] Error 2 - 根本原因不是缺文件或路径错,而是 Oracle 10.2.0.1 和 11.2.0.x 的
ins_emdb.mk中,nmccollector目标依赖的某些符号(如OCINlsCharSetIdToName)在当时 glibc 或 Oracle 自带头文件版本下解析不稳定 - 这个目标只用于旧版 Enterprise Manager 的采集代理,11g 默认已弃用 EM Database Control,实际安装后也不影响数据库核心功能
- 官方态度明确:Oracle 文档和补丁说明中多次指出这是“known bug”,推荐忽略并继续安装(参考 Bug 5634103、Patch 10.2.0.4+ 已修复)
ins_emdb.mk 错误该不该改?什么情况下才真要动 mk 文件
- 大多数场景下不要改
ins_emdb.mk—— 它不像ins_emagent.mk那样有明确缺失的链接库(比如-lnnz11),强行修改容易引入语法错误或破坏后续 relink 流程 - 唯一值得手动干预的情况是:你明确需要启用旧版 DB Control(非 OEM Cloud Control),且安装后
$ORACLE_HOME/bin/emctl start dbconsole启动失败,日志里反复出现nmccollector: symbol lookup error - 此时可检查
$ORACLE_HOME/sysman/lib/ins_emdb.mk中nmccollector:规则是否漏了-lclntsh或-locci,但更稳妥的做法是跳过安装时的报错,等安装完成再执行:$ORACLE_HOME/bin/relink all
这会重新生成所有二进制,覆盖掉nmccollector的临时链接问题
忽略后怎么确认真的没问题
- 安装界面点击
Continue后,观察进度是否能越过 83%–85% 这个卡点,继续到 “Execute Configuration Scripts” 阶段 - 安装成功后,运行:
sqlplus / as sysdba<br>SQL> SELECT status FROM v$instance;
能正常返回OPEN即代表数据库核心完全可用 - 如果后续要用 DB Console,再单独验证:
$ORACLE_HOME/bin/emctl status dbconsole<br># 若提示 collector missing,再跑 relink
真正容易被忽略的是:这个错误从不阻断数据库启动,但它常让人误以为安装失败而中断流程。其实只要 relink all 跑通、实例能启、监听能连,ins_emdb.mk 就只是个历史遗留的“告警式噪音”。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...










