当前位置:首页 > 技术 > 正文内容

Oracle EMCC 13.5 安装中断后的 OMS 数据库深度清理方案

访客 技术 2026年5月23日 3

故障背景与现象

在部署 Oracle Enterprise Manager Cloud Control (EMCC) 13.5 时,若因图形界面(如 VNC)无响应等意外情况导致安装进程强行中断,直接清理文件系统并重新运行安装程序往往会触发以下错误:

The referenced database doesn't contain a valid management Repository

该错误表明 OMS (Oracle Management Service) 底层数据库并非处于初始干净状态。前次失败的安装已经在数据库中注入了部分 Schema 用户和元数据对象。虽然最彻底的解决方式是重建 OMS 数据库,但这会消耗大量时间。本文将介绍如何通过手动清理数据库残留对象来恢复安装环境。

深度清理实施方案

请使用具有 DBA 权限的账号(如 sysdba)连接到 OMS 数据库,并按顺序执行以下清理操作。

1. 移除核心管理用户

首先,强制删除 EMCC 核心组件所关联的默认用户及其所有附属对象:

DROP USER SYSMAN CASCADE;
DROP USER SYSMAN_MDS CASCADE;
DROP USER SYSMAN_RO CASCADE;
DROP USER SYSMAN_STB CASCADE;

2. 批量清除关联同义词

核心用户删除后,数据库中可能残留大量指向这些用户的同义词。通过以下 PL/SQL 脚本进行动态遍历和清理。此脚本对原逻辑进行了优化,使用 DECODE 函数简化了 SQL 拼接,并增强了异常输出的可读性:

DECLARE
  CURSOR cur_orphan_synonyms IS
    SELECT 'DROP ' ||
           DECODE(owner, 'PUBLIC', 'PUBLIC SYNONYM ', 'SYNONYM ' || owner || '.') ||
           synonym_name AS drop_command
      FROM dba_synonyms
     WHERE table_owner IN ('SYSMAN', 'SYSMAN_MDS', 'MGMT_VIEW', 'SYSMAN_BIP',
                           'SYSMAN_APM', 'BIP', 'SYSMAN_OPSS', 'SYSMAN_RO');
  v_sql_stmt VARCHAR2(1000);
BEGIN
  FOR rec_syn IN cur_orphan_synonyms LOOP
    v_sql_stmt := rec_syn.drop_command;
    BEGIN
      EXECUTE IMMEDIATE v_sql_stmt;
    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('Execution failed: ' || v_sql_stmt);
        DBMS_OUTPUT.PUT_LINE('Error details: ' || SQLERRM);
    END;
  END LOOP;
END;
/

3. 清理视图用户与专属表空间

删除用于监控视图的特定用户,并销毁 EMCC 专属的表空间及其物理数据文件:

-- 移除视图用户
DROP USER MGMT_VIEW CASCADE;

-- 销毁残留表空间
DROP TABLESPACE mgmt_ecm_depot_ts INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
DROP TABLESPACE mgmt_tablespace INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
DROP TABLESPACE mgmt_ad4j_ts INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;

4. 重置组件注册表记录

EMCC 安装时会在 schema_version_registry 中注册组件信息。必须清除这些脏数据,否则安装程序会误判组件已存在:

DELETE FROM schema_version_registry
 WHERE (comp_name, owner) IN (
       ('Authorization Policy Manager', 'SYSMAN_APM'),
       ('Metadata Services', 'SYSMAN_MDS'),
       ('Oracle Platform Security Services', 'SYSMAN_OPSS')
       );

COMMIT;

5. 排查并移除边缘辅助用户

最后,检查是否还有云引擎或 OPSS 相关的辅助用户未被清理。先执行查询确认:

SELECT username, account_status
  FROM dba_users
 WHERE username IN ('CLOUD_ENGINE_USER', 'CLOUD_SWLIB_USER', 'MGMT_VIEW',
                    'SYSMAN_TYPES', 'SYSMAN_OPSS', 'SYSMAN_STB', 'SYSMAN_RO');

若查询结果返回任何记录,请根据实际存在的用户名执行级联删除:

DROP USER CLOUD_ENGINE_USER CASCADE;
DROP USER CLOUD_SWLIB_USER CASCADE;
DROP USER SYSMAN_TYPES CASCADE;
DROP USER SYSMAN_OPSS CASCADE;

验证与继续安装

完成上述数据库层面的清理后,无需重启数据库实例。直接返回 EMCC 安装向导界面,重新点击下一步继续 OMS 的配置流程。此时安装程序将正确识别到干净的数据库环境,不再抛出 Repository 无效的错误,安装流程即可顺利推进。

标签: OracleEMCCOMS

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。