适用于 Enterprise Manager Cloud Control 的 Oracle Management Agent - Amazon Relational Database Service

适用于 Enterprise Manager Cloud Control 的 Oracle Management Agent

Oracle Enterprise Manager (OEM) Management Agent 是一种软件组件,可监控在主机上运行的目标并将该信息传达到中间层 Oracle Management Service (OMS)。Amazon RDS 通过使用 OEM_AGENT 选项支持 Management Agent。

有关更多信息,请参阅 Oracle 文档中的 Oracle Enterprise Manager Cloud Control 12c 概述Oracle Enterprise Manager Cloud Control 13c 概述

Management Agent 的要求

以下是使用 Management Agent 的一般要求:

  • 数据库实例必须运行 Oracle Database 19c(19.0.0.0)。可以使用 CDB 或非 CDB 架构。

  • 您必须使用配置为连接到您的数据库实例的 Oracle Management Service(OMS)。请注意以下 OMS 要求:

    • Management Agent 版本 13.5.0.0.v2 需要 OMS 版本 13.5.0.23。

    • Management Agent 版本 13.5.0.0.v1 需要 OMS 版本 13.5.0.0。

    • Management Agent 版本 13.4.0.9.v1 需要 OMS 版本 13.4.0.9 或更高版本和补丁 32198287。

  • 在大多数情况下,您必须配置 VPC 以允许 OMS 与数据库实例之间的连接。如果您不熟悉 Amazon Virtual Private Cloud (Amazon VPC),建议您在继续之前先完成 教程:创建 VPC 以用于数据库实例(仅限 IPv4) 中的步骤。

  • 您可以将 Management Agent 与适用于 12c 和 13c 的 Oracle Enterprise Manager Cloud Control 结合使用。确保您的 OEM 版本有足够的存储空间:

    • OEM 13c 版本 5 至少 8.5GiB

    • OEM 13c 版本 4 至少 8.5 GiB

    • OEM 13c 版本 3 至少 8.5 GiB

    • OEM 13c 版本 2 至少 5.5 GiB

    • OEM 13c 版本 1 至少 4.5 GiB

    • OEM 12c 至少 2.5 GiB

  • 如果您使用的是 Management Agent 版本 OEM_AGENT 13.2.0.0.v313.3.0.0.v2,并且想要使用 TCPS 连接,请按照 Oracle 文档中的配置第三方 CA 证书以便与目标数据库通信中的说明进行操作。另外,按照 Oracle 文档 ID 为 2241358.1 的 Oracle 文档中的说明更新 OMS 上的 JDK。此步骤可确保 OMS 支持数据库支持的所有密码套件。

    注意

    Management Agent OEM_AGENT 13.2.0.0.v313.3.0.0.v213.4.0.9.v1 和更高版本支持 Management Agent 和数据库实例之间的 TCPS 连接。

OMS 主机通信先决条件

确保您的 OMS 主机和您的 Amazon RDS 数据库实例可以通信。执行以下操作:

  • 要从 Management Agent 连接到 OMS(如果 OMS 位于防火墙后面),需将数据库实例的 IP 地址添加到 OMS。

    确保 OMS 的防火墙允许数据库侦听器端口(默认为 1521)和 OEM Agent 端口(默认为 3872)的流量(来自数据库实例的 IP 地址)。

  • 要从 OMS 连接到 Management Agent(如果 OMS 具有一个可公开解析的主机名),需将该 OMS 地址添加到安全组。您的安全组必须拥有允许访问数据库侦听器端口和 Management Agent 端口的入站规则。有关创建安全组并添加入站规则的示例,请参阅教程:创建 VPC 以用于数据库实例(仅限 IPv4)

  • 要从 OMS 连接到 Management Agent (如果 OMS 没有可公开解析的主机名),请使用下列项目之一:

Management Agent 的限制

以下是使用 Management Agent 的一些限制:

  • 您无法提供自定义 Oracle 管理代理映像。

  • 不支持需要主机凭证的管理任务(例如作业执行和数据库修补)。

  • 不保证主机指标和进程列表反映实际的系统状态。因此,您不应使用 OEM 来监视根文件系统或挂载点文件系统。有关监控操作系统的更多信息,请参阅 使用增强监控来监控操作系统指标

  • 不支持自动发现。您必须手动添加数据库目标。

  • OMS 模块可用性取决于数据库版本。例如,数据库性能诊断和优化模块仅适用于 Oracle Database 企业版。

  • Management Agent 会占用额外的内存和计算资源。如果您在启用 OEM_AGENT 选项后遇到了性能问题,建议您向上扩展至更大的数据库实例类。有关更多信息,请参阅“数据库实例类”和“修改 Amazon RDS 数据库实例”。

  • 在 Amazon RDS 主机上运行 OEM_AGENT 的用户没有对警报日志的操作系统访问权限。因此,您无法收集 OEM 中 DB Alert LogDB Alert Log Error Status 的指标。

Management Agent 的选项设置

Amazon RDS 支持 Management Agent 选项的以下设置。

选项设置 必需 有效值 描述

版本 (AGENT_VERSION)

13.5.0.0.v2

13.5.0.0.v1

13.4.0.9.v1

13.3.0.0.v2

13.3.0.0.v1

13.2.0.0.v3

13.2.0.0.v2

13.2.0.0.v1

13.1.0.0.v1

Management Agent 软件的版本。支持的最低版本为 13.1.0.0.v1

AWS CLI 选项名称为 OptionVersion

注意

在 AWS GovCloud (US)区域中,13.1 版本不可用。

端口 (AGENT_PORT)

一个整数值

侦听 OMS 主机的数据库实例上的端口。默认值为 3872。您的 OMS 主机必须属于对此端口具有访问权限的安全组。

AWS CLI 选项名称为 Port

安全组

现有安全组

Port 具有访问权限的安全组。您的 OMS 主机必须属于此安全组。

AWS CLI 选项名称为 VpcSecurityGroupMembershipsDBSecurityGroupMemberships

OMS_HOST

一个字符串值,例如 my.example.oms

OMS 的可公开访问的主机名或 IP 地址。

AWS CLI 选项名称为 OMS_HOST

OMS_PORT

一个整数值

OMS 主机上侦听 Management Agent 的 HTTPS 上传端口。

要确定 HTTPS 上传端口,请连接到 OMS 主机,然后运行以下命令 (此操作需要 SYSMAN 密码):

emctl status oms -details

AWS CLI 选项名称为 OMS_PORT

AGENT_REGISTRATION_PASSWORD

一个字符串值

Management Agent 用于通过 OMS 自行进行身份验证的密码。建议您在启用 OEM_AGENT 选项之前先在 OMS 中创建一个永久性密码。使用永久性密码,您可以在多个 Amazon RDS 数据库之中共享一个 Management Agent 选项组。

AWS CLI 选项名称为 AGENT_REGISTRATION_PASSWORD

ALLOW_TLS_ONLY

truefalse(默认值)

一个值,该值将 OEM 代理配置为仅在代理作为服务器侦听时支持 TLSv1 协议。不再支持此设置。默认情况下,Management Agent 版本 13.1.0.0.v1 及更高版本支持传输层安全性协议(TLS)。

MINIMUM_TLS_VERSION

TLSv1 (默认值)TLSv1.2

一个值,该值指定 OEM 代理在代理作为服务器侦听时支持的最低 TLS 版本。失去支持的代理版本仅支持 TLSv1 设置。

TLS_CIPHER_SUITE

请参阅 Management Agent 的选项设置。

一个值,该值指定 OEM 代理在代理作为服务器侦听时使用的 TLS 密码套件。

下表列出了 Management Agent 选项支持的 TLS 密码套件。

密码套件 支持的引擎版本 符合 FedRAMP 要求
TLS_RSA_WITH_AES_128_CBC_SHA 全部
TLS_RSA_WITH_AES_128_CBC_SHA256 13.1.0.0.v1 及更高版本
TLS_RSA_WITH_AES_256_CBC_SHA 13.2.0.0.v3 及更高版本
TLS_RSA_WITH_AES_256_CBC_SHA256 13.2.0.0.v3 及更高版本
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 13.2.0.0.v3 及更高版本
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 13.2.0.0.v3 及更高版本
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 13.2.0.0.v3 及更高版本
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 13.2.0.0.v3 及更高版本

步骤 1:将 Management Agent 选项添加到数据库实例

要将 Management Agent 选项添加到数据库实例,请执行以下操作:

  1. 创建新的选项组,或者复制或修改现有选项组。

  2. 将 选项添加到该选项组。

  3. 将选项组与数据库实例相关联。

如果遇到错误,请查看我的 Oracle 支持文档以了解有关解决特定问题的信息。

在添加“Management Agent”选项后,您无需重新启动数据库实例。只要选项组处于活动状态,OEM Agent 就处于活动状态。

如果 OMS 主机使用的是不受信任的第三方证书,则 Amazon RDS 将返回以下错误。

You successfully installed the OEM_AGENT option. Your OMS host is using an untrusted third party certificate. Configure your OMS host with the trusted certificates from your third party.

如果返回此错误,则在更正问题之前,不会启用 Management Agent 选项。有关更正问题的信息,请参阅“我的 Oracle 支持”文档 2202569.1

将 Management Agent 选项添加到数据库实例
  1. 确定您想要使用的选项组。您可以创建新的选项组,或使用现有选项组。如果您想使用现有选项组,请跳到下一步。或者,通过以下设置创建自定义数据库选项组:

    1. 对于引擎,请选择适用于您的数据库实例的 Oracle 版本。

    2. 对于主引擎版本,请选择数据库实例的版本。

    有关更多信息,请参阅“创建选项组”。

  2. OEM_AGENT 选项添加到选项组,然后配置选项设置。有关添加选项的更多信息,请参阅 将选项添加到选项组。有关各项设置的更多信息,请参阅Management Agent 的选项设置

  3. 将选项组应用到新的或现有的数据库实例:

以下示例使用 AWS CLI add-option-to-option-group 命令将 OEM_AGENT 选项添加到名为 myoptiongroup 的选项组。

对于 Linux、macOS 或 Unix:

aws rds add-option-to-option-group \ --option-group-name "myoptiongroup" \ --options OptionName=OEM_AGENT,OptionVersion=13.1.0.0.v1,Port=3872,VpcSecurityGroupMemberships=sg-1234567890,OptionSettings=[{Name=OMS_HOST,Value=my.example.oms},{Name=OMS_PORT,Value=4903},{Name=AGENT_REGISTRATION_PASSWORD,Value=password}] \ --apply-immediately

对于 Windows:

aws rds add-option-to-option-group ^ --option-group-name "myoptiongroup" ^ --options OptionName=OEM_AGENT,OptionVersion=13.1.0.0.v1,Port=3872,VpcSecurityGroupMemberships=sg-1234567890,OptionSettings=[{Name=OMS_HOST,Value=my.example.oms},{Name=OMS_PORT,Value=4903},{Name=AGENT_REGISTRATION_PASSWORD,Value=password}] ^ --apply-immediately

步骤 2:解锁 DBSNMP 用户账户

Management Agent 使用 DBSNMP 用户账户连接到数据库,并向 Oracle Enterprise Manager 报告问题。在 CDB 中,DBSNMP 是普通用户。Management Agent 和 OEM Database Express 都需要此用户账户。默认情况下,此账户处于锁定状态。解锁此账户的过程会有所不同,具体取决于数据库使用的是非 CDB 还是 CDB 架构。

解锁 DBSNMP 用户账户
  1. 在 SQL*Plus 或其他 Oracle SQL 应用程序中,以主用户身份登录到数据库实例。

  2. 根据数据库架构,执行以下操作之一:

    数据库为非 CDB。

    运行以下 SQL 语句:

    ALTER USER dbsnmp IDENTIFIED BY new_password ACCOUNT UNLOCK;
    数据库为 CDB。

    运行以下存储过程来解锁 DBSNMP 账户:

    EXEC rdsadmin.rdsadmin_util.reset_oem_agent_password('new_password');

    如果您收到错误消息,指出该过程不存在,请重启 CDB 实例来自动安装它。有关更多信息,请参阅 重启中的数据库实例

步骤 3:将目标添加到 Management Agent 控制台

要将数据库实例添加为目标,请确保您知道端点和端口。有关查找 Amazon RDS 数据库实例的终端节点的信息,请参阅 查找 RDS for Oracle 数据库实例的端点。如果数据库使用 CDB 架构,则将 CDB$ROOT 容器单独添加为目标。

将目标添加到 Management Agent 控制台
  1. 在 OMS 控制台中,选择 SetupAdd TargetAdd Targets Manually

  2. 选择 Add Targets Declaratively by Specifying Target Monitoring Properties

  3. 对于 Target Type,选择 Database Instance

  4. 对于 Monitoring Agent (监控代理),请选择标识符与 RDS 数据库实例标识符相同的代理。

  5. 选择 Add Manually

  6. 输入 Amazon RDS 数据库实例的端点,或者从主机名列表中选择该端点。确保指定的主机名与 Amazon RDS 数据库实例的终端节点匹配。

  7. 指定以下数据库属性:

    • 对于 Target name (目标名称),输入一个名称。

    • 对于 Database system name (数据库系统名称),输入一个名称。

    • 对于 Monitor username (监控用户名),输入 dbsnmp

    • 对于监控密码,输入步骤 2:解锁 DBSNMP 用户账户中的密码。

    • 对于 Role (角色),输入 normal (正常)

    • 对于 Oracle home path (Oracle 主路径),输入 /oracle

    • 对于 Listener Machine name,已显示该代理标识符。

    • 对于 Port (端口),输入数据库端口。RDS 默认端口为 1521。

    • 对于 Database name (数据库名称),输入数据库的名称。如果数据库为 CDB,则此名称为 RDSCDB

  8. 选择 Test Connection

  9. 选择下一步。目标数据库将显示在所监控资源的列表中。

管理 Management Agent

您可以使用 Amazon RDS 过程在 Management Agent 上运行某些 EMCTL 命令。通过运行这些过程,您可以执行下面列出的任务。

注意

任务以异步方式执行。

获取 Management Agent 的状态

要获取 Management Agent 的状态,请运行 Amazon RDS 过程 rdsadmin.rdsadmin_oem_agent_tasks.get_status_oem_agent。该过程相当于 emctl status agent 命令。

以下过程创建一个任务来获取管理代理的状态,并返回任务的 ID。

SELECT rdsadmin.rdsadmin_oem_agent_tasks.get_status_oem_agent() as TASK_ID from DUAL;

要通过显示任务的输出文件来查看结果,请参阅查看正在执行的任务的状态

重新启动 Management Agent

要重新启动 Management Agent,请运行 Amazon RDS 过程 rdsadmin.rdsadmin_oem_agent_tasks.restart_oem_agent。该过程相当于运行 emctl stop agentemctl start agent 命令。

以下过程创建一个任务来重新启动管理代理并返回任务的 ID。

SELECT rdsadmin.rdsadmin_oem_agent_tasks.restart_oem_agent as TASK_ID from DUAL;

要通过显示任务的输出文件来查看结果,请参阅查看正在执行的任务的状态

列出 Management Agent 监控的目标

要列出 Management Agent 监控的目标,请运行 Amazon RDS 过程 rdsadmin.rdsadmin_oem_agent_tasks.list_targets_oem_agent。该过程相当于运行 emctl config agent listtargets 命令。

以下过程创建一个任务来列出管理代理监控的目标并返回任务的 ID。

SELECT rdsadmin.rdsadmin_oem_agent_tasks.list_targets_oem_agent as TASK_ID from DUAL;

要通过显示任务的输出文件来查看结果,请参阅查看正在执行的任务的状态

列出 Management Agent 监控的收集线程

要列出管理代理监控的所有正在运行、就绪和计划的收集线程,请运行 Amazon RDS 过程 rdsadmin.rdsadmin_oem_agent_tasks.list_clxn_threads_oem_agent。该过程相当于 emctl status agent scheduler 命令。

以下过程创建一个任务来列出收集线程并返回任务的 ID。

SELECT rdsadmin.rdsadmin_oem_agent_tasks.list_clxn_threads_oem_agent() as TASK_ID from DUAL;

要通过显示任务的输出文件来查看结果,请参阅查看正在执行的任务的状态

清除 Management Agent 的状态

要清除 Management Agent 的状态,请运行 Amazon RDS 过程 rdsadmin.rdsadmin_oem_agent_tasks.clearstate_oem_agent。该过程相当于运行 emctl clearstate agent 命令。

以下过程创建一个任务来清除管理代理的状态并返回任务的 ID。

SELECT rdsadmin.rdsadmin_oem_agent_tasks.clearstate_oem_agent() as TASK_ID from DUAL;

要通过显示任务的输出文件来查看结果,请参阅查看正在执行的任务的状态

让 Management Agent 上载其 OMS

要让 Management Agent 上载与其关联的 Oracle Management Server (OMS),请运行 Amazon RDS 过程 rdsadmin.rdsadmin_oem_agent_tasks.upload_oem_agent。该过程相当于运行 emclt upload agent 命令。

以下过程创建一个任务,使 Management Agent 上传其关联的 OMS 并返回任务的 ID。

SELECT rdsadmin.rdsadmin_oem_agent_tasks.upload_oem_agent() as TASK_ID from DUAL;

要通过显示任务的输出文件来查看结果,请参阅查看正在执行的任务的状态

为 OMS 执行 ping 操作

要为 Management Agent 的 OMS 执行 ping 操作,请运行 Amazon RDS 过程 rdsadmin.rdsadmin_oem_agent_tasks.ping_oms_oem_agent。该过程相当于运行 emctl pingOMS 命令。

以下过程创建一个任务来 Ping 管理代理的 OMS 并返回任务的 ID。

SELECT rdsadmin.rdsadmin_oem_agent_tasks.ping_oms_oem_agent() as TASK_ID from DUAL;

要通过显示任务的输出文件来查看结果,请参阅查看正在执行的任务的状态

查看正在执行的任务的状态

您可以查看 bdump 文件中的持续任务的状态。bdump 文件位于 /rdsdbdata/log/trace 目录下。每个 bdump 文件名称格式如下。

dbtask-task-id.log

如果要监控任务,请将 task-id 替换为要监控的任务的 ID。

要查看 bdump 文件的内容,请运行 Amazon RDS 过程 rdsadmin.rds_file_util.read_text_file。以下查询返回 dbtask-1546988886389-2444.log bdump 文件的内容。

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-1546988886389-2444.log'));

有关 Amazon RDS 过程 rdsadmin.rds_file_util.read_text_file 的更多信息,请参阅读取数据库实例目录中的文件

删除 Management Agent 选项

可以从数据库实例中删除 OEM Agent。删除 OEM Agent 后,您无需重新启动数据库实例。

要从数据库实例中删除 OEM Agent,请执行下列操作之一:

  • 从“OEM Agent”选项所属的选项组中删除该选项。此更改会影响使用该选项组的所有数据库实例。有关更多信息,请参阅“从选项组中删除选项”。

  • 修改数据库实例,并指定不包含“OEM Agent”选项的另一个选项组。此更改会影响单个数据库实例。您可以指定默认 (空) 选项组,或指定其他自定义选项组。有关更多信息,请参阅“修改 Amazon RDS 数据库实例”。