如何排查将 OEM_AGENT 选项与 Amazon RDS Oracle 结合使用时出现的常见错误?

上次更新时间:2020 年 12 月 3 日

我有一个运行 Oracle 的 Amazon Relational Database Service (Amazon RDS) 数据库实例。当我尝试将 OEM_AGENT 选项用于数据库实例时,我收到了错误消息。如何排查和解决使用 OEM_AGENT 选项时出现的常见错误?

简短描述

Amazon RDS 通过使用 OEM_AGENT 选项支持 Oracle Enterprise Manager (OEM) 管理代理。在将 OEM_AGENT 选项与 Amazon RDS Oracle 数据库实例配合使用时,您可能会收到本文中所述的错误之一。

注意:在继续执行故障排查步骤之前,请对数据库实例运行以下预检查:

1.检查数据库实例的网络配置。数据库实例的安全组必须允许 OMS_HOST 侦听 OEM_AGENT 端口(默认值为 3872)和 RDS 端口(默认值为 1521)。

2.在 OEM 代理端口和数据库端口上运行从 OMS 服务器到数据库实例的 telnet 测试,以检查连接性。

3.检查网络配置,包括网络访问控制列表 (ACL) 和路由表。验证配置可排除阻止程序或显式拒绝的可能性。

4.确保从 OMS 服务器到目标数据库实例的端口已打开。

    完成上述检查后,请检查 OEM_AGENT 上传是否正常。有关 OEM_AGENT 先决条件的详细信息,请参阅用于 Enterprise Manager Cloud Control 的 Oracle 管理代理。

    根据您遇到的错误或问题,执行本文中的步骤。

    解决方法 错误:无法安装 Oracle OEM_AGENT,因为代理程序密码不正确或已过期

    确保代理的密码正确且未过期。在 OEM 服务器上,您可以修改现有的代理注册密码,或创建新密码。

    错误:无法安装 Oracle OEM_AGENT,因为数据库实例无法访问 OMS 主机

    当 OEM_AGENT 安装失败时您会收到此错误,因为无法从 RDS 主机访问 OMS 主机/端口。要解决此问题,请检查是否可以从数据库实例访问 OMS 主机。

    1.启动与您的数据库实例采用相同网络设置 (SG/ACL) 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。

    2.对 OMS 主机的端口 4903 运行 telnet 命令:

    From EC2 instance: telnet OMS_HOST 4903

    3.通过从 OMS 服务器到数据库实例运行 telnet 测试来验证连接:

    From OMS host: telnet RDS-instance-endpoint 1521 (RDS default port)

    4.检查 RDS 主机是否能够将 OMS 主机名解析为 IP 地址:

    SQL> SELECT UTL_INADDR.get_host_address('OMS_Host_Name') FROM dual;

    错误:您已成功在数据库实例上安装了 OEM_AGENT 选项。您的安全组可能配置不正确

    即使安装正确完成,与数据库实例关联的 RDS 安全组也可能缺少允许 OMS 主机与数据库实例之间通信的配置。

    要解决此错误,请验证代理端口允许入站流量,并且 OMS 主机属于有权访问代理端口的安全组。有关详细信息,请参阅用于 Enterprise Manager Cloud Control 的 Oracle 管理代理。

    错误:无法安装 Oracle OEM_AGENT,因为您的 OMS 主机版本 13.3.0.0 与代理版本 12.1.0.5 不兼容。

    如果 OEM_AGENT 版本和 OMS 主机版本之间存在兼容性问题,则会收到此错误。目前,当两个组件运行相同版本时,OEM_AGENT 将与 OMS 集成。要解决此错误,请选择可兼容的 OMS 主机和 OEM 代理版本。

    错误:您的 OMS 主机使用的是不受信任的第三方证书

    如果已成功安装 OEM_AGENT 选项,但是您的 OMS 主机使用的是不受信任的第三方证书,则会收到此错误。使用第三方所需的信任认证配置 OMS 主机。

    错误:OEM_AGENT 选项缺少必需的选项设置(服务:AmazonRDS;状态代码:400;错误代码:InvalidParameterValue;

    当 OEM_AGENT 缺少必需的设置之一并且需要更新它时,您会收到此错误。有关 OEM_AGENT 必需设置的详细信息,请参阅管理代理的选项设置。

    要解决此错误,请查看 OEM_AGENT 选项中的设置。

    1.打开 Amazon RDS 控制台。

    2.从导航页面中,选择 Option configuration(选项配置)。

    3.从 Option settings(选项设置)部分中,找到 OMS_HOST 配置。默认情况下,Option settings(选项设置)面板仅显示五个资源,因此您需要更新首选项才能在一个页面上显示所有设置。

    4.输入所需设置后,为选项组添加 OEM_AGENT 选项。

      错误:心跳状态:OMS 非法响应

      在将 OEM_AGENT 选项附加到 Amazon RDS 后更换 OMS 主机时,您会收到此错误。

      1.清除代理状态,或者使用使用管理代理执行数据库任务中的步骤重新启动 OEM_AGENT。

      2.重新建立与 OMS 主机的连接。

      3.检查 OMS 版本与 OEM_AGENT 版本的兼容性问题。运行以下查询以检查表是否列出了选项组中使用的 OEM_AGENT 版本:

      select type_meta_ver from sysman.mgmt_target_type_versions where target_type = 'oracle_emd';

      4.如果 mgmt_target_type_versions 输出不包含选项组中使用的 OEM_AGENT 版本,请安装命令输出中列出的 OEM_AGENT 版本。

      错误:数据库实例未显示在 OEM 控制台的目标中

      您收到此错误是因为在 Amazon RDS 上对底层主机的 SSH 受到限制。这是操作系统级别的自动发现功能正常工作的先决条件。

      与添加目标 Oracle 数据库实例时使用的基于向导的自动发现不同,您必须手动将 Oracle 数据库实例添加为目标。这是必需操作,因为 Oracle 数据库实例的底层主机上存在限制。

      有关 Agent 限制的详细信息,请参阅用于 Enterprise Manager Cloud Control 的 Oracle 管理代理。

      错误:无法安装 OEM_AGENT 选项,因为代理端口与 OMS 端口冲突。更新选项设置并重试

      您收到此错误是因为您的 OEM_AGENT 配置错误使 OEM_AGENT 正常工作。例如,您可能为 OMS 端口和 OEM_AGENT 端口指定了相同的端口号。要解决此问题,请更改 OMS 端口号或 OEM_AGENT 端口号。

      查看以下管理代理选项设置:

      AGENT_PORT - 数据库实例上的此端口用于侦听 OMS 主机。默认值为 3872。您的 OMS 主机必须属于有权访问此端口的安全组。 OMS_PORT - OMS 主机上的此 HTTPS 端口用于侦听管理代理。要查找 HTTPS 上传端口,请连接到 OMS 主机并运行以下命令:

      emctl status oms -details

      错误:无法安装 Oracle OEM_AGENT,因为您的数据库实例没有足够的存储空间。确认数据库实例类和配置支持该选项组。如果支持,请验证所有选项组设置并重试

      当数据库实例的预置存储空间无法提供按照 OEM_AGENT 先决条件所需的可用存储空间时,将会收到此错误。有关详细信息,请参阅管理代理的先决条件。增加存储空间,然后重新安装 OEM_AGENT 选项。