如何排查将 OEM_AGENT 选项与 Amazon RDS for Oracle 结合使用时的常见错误?
我有一个运行 Oracle 的 Amazon Relational Database Service (Amazon RDS) 数据库实例。当我尝试将 OEM_AGENT 选项用于数据库实例时,我收到了错误消息。如何排查和解决使用 OEM_AGENT 选项时出现的常见错误?
简短描述
Amazon RDS 通过使用 OEM_AGENT 选项支持 Oracle Enterprise Manager (OEM) Management Agent。在将 OEM_AGENT 选项与 Amazon RDS for Oracle 数据库实例配合使用时,您可能会收到本文中所述的错误之一。
**注意:**在继续执行故障排查步骤之前,请对数据库实例运行以下预检查:
1. 在将 OEM_AGENT 选项添加到选项组并通过运行以下 AWS Command Line Interface (AWS CLI) 命令将选项应用于数据库实例后,检查选项组的状态:
aws rds describe-db-instances --db-instance-identifier <db-instance-name> --query 'DBInstances[*].[Engine,DBInstanceStatus,OptionGroupMemberships]'
**注意:**如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
验证输出,确保选项组的状态为正在同步。如果选项组的状态为正在同步,则会得到以下输出:
[ [ "oracle-ee", "available", [ { "OptionGroupName": "custom-oracle-option", "Status": "in-sync" } ] ] ]
如果选项组的状态为 INVALID,则由于网络配置设置和其他先决条件存在问题,OEM_AGENT 将无法成功安装。
您可以通过从 AWS 管理控制台查看 Amazon RDS 数据库实例的“事件”部分来验证 OEM_AGENT 选项的安装状态。您还可以使用 AWS CLI 命令 describe-events。
如果这些事件表明 OEM_AGENT 选项的安装或网络配置存在问题,请确保后续的先决条件均已满足。
2. 检查数据库实例的网络配置。数据库实例的安全组必须允许 OMS_HOST 侦听 OEM_AGENT 端口(默认值为 3872)和 RDS 端口(默认值为 1521)。
3. 在 OEM 代理端口和数据库端口上运行从 Oracle Management Service (OMS) 服务器到数据库实例的 telnet 测试,以检查连接性。
4. 检查网络配置,包括网络访问控制列表 (ACL) 和路由表。验证配置可排除阻止程序或显式拒绝的可能性。
5. 确保 OMS 和 RDS 之间的防火墙允许数据库侦听器端口和 OEM Agent 端口上的流量。
完成上述检查后,请检查 OEM_AGENT 上载是否正常。有关 OEM_AGENT 先决条件的详细信息,请参阅用于 Enterprise Manager Cloud Control 的 Oracle Management Agent。
解决方法
要排查在将 OEM_AGENT 选项与 RDS for Oracle 实例结合使用时出现的问题,请将 OEM 代理日志导出到 Amazon CloudWatch,然后检查这些日志。有关更多信息,请参阅将 Oracle 日志发布到 Amazon CloudWatch Logs。
数据库实例未显示在 OEM 控制台的自动发现目标中
当 OMS 服务器无法通过 SSH 连接到底层主机时,会出现此问题。此连接是操作系统级别的自动发现功能正常工作的先决条件。与添加目标 Oracle 数据库实例时使用的基于向导的自动发现不同,您必须手动将 Oracle 数据库实例添加为目标。有关 Management Agent 的局限性的详细信息,请参阅 Management Agent 的局限性。
错误:无法安装 Oracle OEM_AGENT,因为代理程序密码不正确或已过期
确保代理的密码正确且未过期。在 OEM 服务器上,您可以修改现有的代理注册密码,或创建新密码。
错误:无法安装 Oracle OEM_AGENT,因为数据库实例无法访问 OMS 主机
当 OEM_AGENT 安装失败时您会收到此错误,因为无法从 RDS 主机访问 OMS 主机/端口。要排查此错误,请检查是否可以从数据库实例访问 OMS 主机。
要验证 OMS 服务器与 OEM_AGENT 之间的网络连接,请测试从 RDS for Oracle 实例到 OMS 服务器的连接。为此,您可以利用访问控制列表 (ACL) 和 UTL_TCP 软件包。
- 使用 DBMS_NETWORK_ACL_ADMIN 软件包,它会提供管理网络 ACL 的接口。
- 使用 UTL_TCP.CONNECTION。这是用来表示 TCP/IP 连接的 PL/SQL 记录类型。
您也可以执行以下操作:
1. 启动与您的数据库实例采用相同网络设置 (SG/ACL) 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。
2. 从 Amazon EC2 实例向 OMS 主机的端口 4903 运行 telnet 命令:
telnet OMS_HOST 4903
3. 通过从 OMS 服务器到数据库实例在 OEM 主机中运行 telnet 测试来验证连接:
telnet RDS-instance-endpoint 1521 (RDS default port)
4. 检查 RDS 主机是否能够将 OMS 主机名解析为 IP 地址:
SQL> SELECT UTL_INADDR.get_host_address('OMS_Host_Name') FROM dual;
5. 运行 TCP Traceroute 来检查流量受阻的位置。
错误:您已成功在数据库实例上安装了 OEM_AGENT 选项。您的安全组可能配置不正确
即使安装正确完成,与数据库实例关联的 RDS 安全组也可能缺少允许 OMS 主机与数据库实例之间通信的配置。
要解决此错误,请验证代理的安全组允许入站流量,并且 OMS 主机属于有权访问代理端口的安全组。有关详细信息,请参阅用于 Enterprise Manager Cloud Control 的 Oracle Management Agent。
错误:无法安装 Oracle OEM_AGENT,因为您的 OMS 主机版本 x.x.x.x 与代理版本 x.x.x.x 不兼容。
当 OEM_AGENT 版本和 OMS 主机版本之间存在兼容性问题时,将会收到此错误。目前,当两个组件兼容时,OEM_AGENT 将与 OMS 集成。要解决此错误,请选择可兼容的 OMS 主机和 OEM 代理版本。有关查看兼容性矩阵的信息,请参阅 Management Agent 的先决条件。
错误:您的 OMS 主机使用的是不受信任的第三方证书
当已成功安装 OEM_AGENT 选项,但是您的 OMS 主机使用的是不受信任的第三方证书时,将会收到此错误。使用第三方所需的信任认证配置 OMS 主机。
错误:OEM_AGENT 选项缺少必需的选项设置(服务:AmazonRDS;状态代码:400;错误代码:InvalidParameterValue;
当 OEM_AGENT 缺少必需的设置之一并且指定该设置时,您会收到此错误。有关 OEM_AGENT 必需设置的详细信息,请参阅 Management 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 版本。
此错误还可能表示 OMS 端缺少所需的补丁和插件。确保 OMS 已正确设置并应用了所有必需的补丁。
如果代理被阻止,请在 OEM 控制台中执行以下操作以重新同步代理:
- 登录 Cloud Control 控制台。
- 选择 Setup(设置),选择 Manage Cloud Control(管理 Cloud Control),然后选择 Agents(代理)。
- 选择要重新同步的代理。
- 从 Agent(代理)下拉列表中,选择 Resynchronization...(重新同步…)。
- 选择 Unblock agent on successful completion of agent resynchronization(在成功完成代理重新同步后取消阻止代理)。
- 选择 Continue(继续)。
重新同步操作作为任务提交。 - 通过选择任务名称的链接来检查重新同步作业的状态。
成功完成任务后,验证已重新同步的代理以及所有受监控的目标的状态。
**注意:**DNS 服务器必须持续运行,OEM 监控才能有效工作。代理发出检测信号并将状态更新推送到 OMS 主机。如果在很长一段时间内无法从代理访问 OMS 主机,则 OMS 可能会认为代理和数据库已关闭。因此,请确保 DNS 服务器正常运行。
要使 Oracle Management Agent 上载与其关联的 OMS,请运行以下查询。运行此查询等效于运行 emctl 上载代理命令。
SELECT rdsadmin.rdsadmin_oem_agent_tasks.upload_oem_agent() as TASK_ID from DUAL;
要在清除代理状态后重新启动 OEM 代理,请运行以下查询:
SELECT rdsadmin.rdsadmin_oem_agent_tasks.restart_oem_agent() as TASK_ID from DUAL;
您只能使用 Oracle Enterprise Manager Cloud Control 13c Release 4 (13.4.0.0.0) 部署 Oracle Management Agent 13c Release 4 (13.4.0.0.0)。在 OMS 升级到 13c Release 4 之后,不支持新部署较早的 Oracle Management Agent(13.2 和 13.3)版本。有关详细信息,请参阅开始安装 Enterprise Manager System 之前。
错误:无法安装 OEM_AGENT 选项,因为代理端口与 OMS 端口冲突。更新选项设置并重试
您收到此错误是因为您的 OEM_AGENT 配置错误,无法正常工作。您可能为 OMS 端口和 OEM_AGENT 端口指定了相同的端口号。要解决此错误,请更改 OMS 端口号或 OEM_AGENT 端口号。
查看以下 Management Agent 选项设置:
- AGENT_PORT - 数据库实例上的此端口用于侦听 OMS 主机。默认值为 3872。您的 OMS 主机必须属于有权访问此端口的安全组。
- OMS_PORT - OMS 主机上的此 HTTPS 端口用于侦听 Management Agent。
要查找 HTTPS 上载端口,请连接到 OMS 主机并运行以下命令:
emctl status oms -details
错误:无法安装 Oracle OEM_AGENT,因为您的数据库实例没有足够的存储空间。确认数据库实例类和配置支持该选项组。如果支持,请验证所有选项组设置并重试
当数据库实例的预置存储空间无法提供按照 OEM_AGENT 先决条件所需的可用存储空间时,将会收到此错误。有关详细信息,请参阅 Management Agent 的先决条件。增加存储空间,然后重新安装 OEM_AGENT 选项。
错误:文件系统 / 有 X.XX% 的可用空间
您收到此错误消息是因为在 RDS for Oracle 实例中使用 OEM_AGENT 选项时有限制。主机指标和进程列表可能无法反映实际的系统状态。因此,请避免使用 OEM 来监控根文件系统或挂载点文件系统。有关详细信息,请参阅 Management Agent 的局限性。
Amazon RDS 实例的根文件系统由内部自动化系统维护。此自动化系统会定期监控根文件系统,以确保文件系统有足够的空间。如果检测到存储空间不足,自动化系统会为根文件系统增加足够的空间。由于自动化系统会管理根文件系统中的空间,因此您可以忽略此错误。
相关信息
相关内容
- AWS 官方已更新 9 个月前
- AWS 官方已更新 3 年前
- AWS 官方已更新 3 年前