在适用于 Oracle 的亚马逊 RDS 定制版上安装其他软件组件

作者: 乔宾·约瑟夫 | 202

Amazon 关系数据库服务 (Amazon RDS) Custom 是一项托管数据库服务,可以灵活地自定义数据库、底层服务器和操作系统配置,以支持比典型的托管关系数据库服务需要更多控制权的应用程序。适用于 Oracle 的 Amazon RDS 自定义专为传统、自定义、打包应用程序以及需要访问底层操作系统和数据库环境的应用程序而构建。

配置 RDS Custom for Oracle 实例时,它自带的数据库环境主要由数据库二进制文件、起始数据库和数据库侦听器组成。对于某些工作负载,您可能需要在数据库服务器的主机操作系统上安装 Oracle 或其他供应商提供的其他软件组件。

借助 Amazon RDS Custom for Oracle 的灵活性,您可以自定义数据库、底层服务器和操作系统配置,以支持工作负载的各种要求。在这篇文章中,我们将讨论在不打破 RDS 自定义支持范围的情况下在 Amazon RDS Custom for Oracle 上安装常用软件组件的 分步说明和最佳实践。

安装其他软件组件和代理

为了满足各种应用程序需求或组织标准,可能需要在数据库主机上安装其他软件和代理。在推出 Amazon RDS Custom 之前,您必须在 亚马逊弹性计算云 (Amazon EC2) 上部署诸如自我管理数据库之类的工作负载。推出 Amazon RDS Custom for Oracle 是为了满足与 亚马逊 RDS for Oracle 相比,需要更多访问权限和权限的工作负载的 此类要求 。

我们从客户那里听到的关于在数据库主机上安装软件组件的一些常见要求包括:

  • 在数据库主机上安装 Oracle Enterprise Manager (OEM) 代理,在 O racle Enterprise Manager 网格控制 中发现数据库实例作为目标
  • 在数据库主机上安装 APEX 监听器以支持 Oracle Application Express (APEX ) 功能
  • 以 root 用户身份在数据库主机上安装 S-TAP 代理,使用 Guardium 数据库活动监控解决方案监控 数据库流量

在 RDS 定制版 Oracle 环境中安装软件组件的最佳实践

以下是在 RDS Custom for Oracle 环境中安装其他软件组件时的一些最佳做法和指南:

  • 应用数据库补丁的推荐做法是使用所需的补丁创建新的 自定义引擎版本 (CEV) ,并将新的 CEV 应用到实例。但是,当这种方法不可行时(例如,紧急修补方案),可以使用 OPatch 实用程序直接在 ORACLE_HOME 上应用一次性补丁。 或者,可以创建与已应用补丁对应的更新的 CEV,稍后将其应用到实例,以同步 ORACLE_HOME 和实例使用的 CEV,尽管该实例在配置后不依赖于 CEV。
  • 不要在 /rdsdbbin 装载点下安装其他软件组件,该 挂载点是为 Oracle 数据库二进制文件保留的。
  • 建议以单独的操作系统用户身份安装第三方软件和代理。还支持以 root 用户身份安装和运行软件组件和代理。与 Oracle 数据库相关的软件组件,例如 OEM 代理和 APEX 监听器,可以作为拥有 Oracle 数据库二进制文件的 rdsdb 用户进行安装。
  • 使用 /rdsdbdata 文件系统在此装载点上创建的新目录下托管其他软件组件。由于该文件系统包含在自动和手动快照备份中,因此建议在成功安装软件后删除不再需要的临时暂存文件。
  • 配置软件以在 /rdsdbdata 文件系统上创建日志和跟踪 文件,并定期清除这些文件。
  • 可以使用 crontab 将任务安排为自动运行 或自动启动任务,并且可以使用 system d 配置代理。
  • 为了避免 /mount 点的空间压力, 如果安装程序允许安装的特定软件使用该选项,则可以将软件包安装在 /mount 之外。例如,你可以使用 rpm-ivh--prefix=/rdsdbdata/software_additions 将可重定位的软件包安装到 /rdsdbdata 装载点。
  • 确认安装新的软件组件不会破坏 Oracle 数据库二进制文件的库依赖关系和内核要求。有关更多详细信息,请参阅与数据库和操作系统版本对应的 Oracle 安装文档。有关 Oracle Linux 7 上 19c 数据库的详细信息,请参阅 x86-64 支持的 Oracle Linux 7 发行版
  • 监控 Oracle 弹性区块存储 (EBS) 的 RDS 定制挂载点,例如数据量 (/rdsdbdat a)、二进制卷 ( /rdsdbb in ) 和根卷 ( / ),如 使用亚马逊 CloudWatch 指标监控适用于 Oracle 的亚马逊 RDS 定制版 中所述 ,以验证软件组件的安装和配置不会耗尽这些卷上的可用空间。
  • 建议在 RDS Custom for Oracle 实例上安装其他软件组件 之前和之后 暂停和恢复自动化 。这是为了验证在软件安装和恢复活动(包括 规模计算 ) 可以使用操作系统的最新映像后,根卷是否得到备份(在恢复自动化期间)。

在这篇文章中,我们还讨论了在 RDS Custom for Oracle 实例的主机操作系统上安装 Oracle APEX、Guardium S-TAP 代理和 OEM 代理的高级步骤。此处讨论的步骤仅供参考,以概述适用于 Oracle 的 RDS 定制环境中的安装过程。有关安装这些软件组件特定版本的详细说明,请参阅供应商发布的官方文档。

需要操作系统登录才能执行安装过程中涉及的不同活动。要 选择与 RDS 定制版 Oracle 实例的首选连接,请参阅使用 SSH 连接到 RDS 定制数据库实例 或使用 亚马逊云科技 Systems Manager 连接到 RDS 定制数据库实例。

要在多个 RDS Custom for Oracle 实例上安装软件组件,可以使用 亚马逊云科技 Systems Manager 文档简化安装过程。有关详情,请参阅 使用 亚马逊云科技 Systems Manager 的 Amazon RDS Custom f or Oracle 自动执行任务文档

在 RDS 定制版 Oracle 环境中安装 APEX 侦听器

此处详述的步骤仅供参考,说明如何在 RDS Custom for Oracle 环境中完成安装。有关根据 APEX 版本 下载和安装 Oracle APEX 的详细说明,请参阅下载和安装 Oracle APEX。

Oracle APEX 架构要求网络服务器代理浏览器和 APEX 引擎之间的请求。Oracle REST 数据服务 (ORDS) 符合这一要求,并且此 Web 服务器组件可以托管在数据库服务器上,也可以托管在与 RDS Custom for Oracle 实例连接的其他 EC2 实例上。此处列出的步骤用于在托管数据库组件的同一 RDS Custom for Oracle 实例上安装 ORDS 组件。

  1. 暂停 RDS 自定义自动化
  2. 下载并安装 Oracle APEX(在这篇文章中,我们安装了 APEX 版本 22,可以从 d ow nload.oracle.com 上下载)。
  • /rdsdbdata 装载点 中创建一个名为 s oftware_add ons 的目录来托管其他软件组件并设置相应的权限:
root>mkdir -p /rdsdbdata/sofware_addons
root>chmod a+w /rdsdbdata/sofware_addons
  • 下载 APEX 安装文件并在数据库中安装 APEX 组件:
rdsdb>cd /rdsdbdata/sofware_addons
mkdir apex
cd apex
wget https://download.oracle.com/otn_software/apex/apex_22.1.zip
unzip apex_22.1.zip
cd /rdsdbdata/sofware_addons/apex/apex

sqlplus "/ as sysdba"
-- Install APEX full development environment.
SQL>@apexins.sql SYSAUX SYSAUX TEMP /i/

-- Exit and reconnect as sysdba
sqlplus "/ as sysdba"
-- Create Administrator account
SQL>@apxchpwd.sql

Exit and reconnect as sysdba 
SQL>ALTER USER APEX_PUBLIC_USER IDENTIFIED BY <password> account unlock;

Configure RESTful services
SQL>@apex_rest_config.sql
  1. 下载并安装 ORDS(有关详细的安装步骤,请参阅 下载和安装 Oracle REST 数据服务 ):
rdsdb>
mkdir -p /rdsdbdata/sofware_addons/apex/ords
cd /rdsdbdata/sofware_addons/apex/ords
wget https://download.oracle.com/otn_software/java/ords/ords-latest.zip

unzip ords-latest.zip
cp -rp /rdsdbdata/sofware_addons/apex/apex/images/ .
  1. 按照 ORDS 的要求下载 Java 11 或更高版本:
rdsdb>mkdir -p /rdsdbdata/sofware_addons/java11
cd /rdsdbdata/sofware_addons/java11
tar zxvf  jdk-11.0.17_linux-x64_bin.tar.gz

根据甲骨文博客文章, 甲骨文APEX和ORDS现已获得甲骨文免费使用条款和条件许可 ,APEX和ORDS不需要额外的许可。向 Oracle 验证您的许可条款和条件,以确认使用 JRE for ORDS 对许可的影响。

  1. 向管理员用户提供 ORDS 安装权限:
rdsdb>sqlplus / as sysdba

SQL>@/rdsdbdata/sofware_addons/apex/ords/scripts/installer/ords_installer_privileges.sql ADMIN
  1. 准备一个环境文件来设置 Java 和 ORDS 二进制文件的路径:
cat ords.env
export PATH=/rdsdbdata/sofware_addons/java11/jdk-11.0.17/bin:$PATH:/rdsdbdata/sofware_addons/apex/ords/bin

. ords.env

  1. 配置和启动 ORDS(有关更多信息,请参阅 下载 ORDS ):
ords --config /rdsdbdata/sofware_addons/apex/ords/config install

Once the installation is completed you can check the APEX using a browser or wget.

wget localhost:8080
if you get the following message then remove the line “<entry key="security.requestValidationFunction">ords_util.authorize_plsql_gateway</entry>” from /rdsdbdata/sofware_addons/apex/ords/config/databases/default/pool.xml and restart ORDS.

HTTP request sent, awaiting response... 404 Not Found
2022-11-09 04:04:06 ERROR 404: Not Found.


rdsdb>ords  --config /rdsdbdata/sofware_addons/apex/ords/config serve

rdsdb>wget localhost:8080

Reusing existing connection to [localhost]:8080.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’

您可以使用 systemd 配置在 EC2 实例重启时自动启动 ORDS 组件。

  1. 恢复 RDS 自定义自动化

在 RDS 定制版 Oracle 环境中安装 Guardium S-TAP 代理

Guardium 是一项全面的数据保护服务,使安全团队能够自动分析数据库等敏感数据环境中发生的事情。许多客户使用 Guardium 进行数据库活动监控,它要求在数据库服务器上安装 S-TAP 代理。Guardium S-TAP 是一款安装在数据库服务器上的轻量级软件代理,用于监控数据活动。S-TAP 代理收集的信息将转发给 Guardium 收集器。讨论 S-TAP 的详细安装步骤或产品的功能和配置超出了本文的范围。有关 Guardium 的更多详细信息和架构,请参阅 IBM Guardium。

Linux-Unix :使用 RPM 安装 S-TAP 代理详细讨论了 L inux 上 S-TAP 的安装 步骤。

在本节中,我们重点介绍在安装 S-TAP 代理期间在 RDS Custom for Oracle 环境中应遵循的最佳实践。

  1. 暂停 RDS 自定义自动化
  2. 准备安装目录。S-TAP 代理会安装到 /opt/Guardium 目录中,该目录无法自定义。由于 /挂载点的可用空间有限,建议在/ rdsdbdata / 挂载点创建一个 guardium 目录并创建指向 /opt/guardi um 的软链接。 参见以下代码:
root>mkdir -p /rdsdbdata/sofware_addons/Guardium/guardium

root>ln -s /rdsdbdata/sofware_addons/Guardium/guardium /opt/guardium

root>cd /rdsdbdata/sofware_addons/Guardium
  1. 安装所有必备的 RPM 文件:
root>yum install ed
  1. 将安装 RPM 复制到 RDS Custom for Oracle 实例到 /r dsdbdata/sofware_addons/Guardi um 目录并安装 S-TAP 代理:
root>export NI_ALLOW_MODULE_COMBOS="Y"
root>rpm -i guard-stap-11.5.0.0.113097-1-rhel-7-linux-x86_64.x86_64.rpm
  1. 运行 /opt/guardium/bin/guard-config-update 完成配置,如 Linux-Unix:用于 RPM 安装和更新的 S-TAP guard-config-update 参数中所述。
  2. 自动配置系统重启时自动启动 S-TAP 代理。有关更多详细信息,请参阅 故障排除指南
  3. 恢复 RDS 自定义自动化

在 RDS 定制版 Oracle 环境中安装 OEM 代理

Oracle Enterprise Manager (OEM) 管理代理是一个软件组件,用于监视在主机上运行的目标并将该信息传达给中间层 Oracle 管理服务 (OMS)。有关更多信息,请参阅 Oracle Enterprise Manager 云控制 12c 概述 和 Oracle Enterprise Manager 云控制 13 c 概述。要在 RDS Custom for Oracle 上安装 OEM 代理,请参阅以下步骤:

  1. 准备安全组规则和防火墙规则,以允许 OMS 服务器与 OEM 代理之间所需的通信,后者将部署在 RDS Custom for Oracle 实例上。有关防火墙之间通信端口的更多详细信息,请参阅 为防火墙 配置 Enterprise Manager
  2. 从 OMS 获取代理安装文件。

如安装 Oracle 管理代理 13c 版本 1 中所述,可以从 OMS 在 RDS Custom for Oracle 实例上 安装 OEM 代理 ,有多种选择。此处的示例步骤使用 emcli get_agentimag e 选项下载代理部署文件,该文件可以复制到 RDS Custom for Oracle 实例。在 OMS 服务器上,运行以下代码:

。/emcli 登录-用户名=sysman

./emcli get_supported_platforms
./emcli get_agentimage -destination=/tmp/agentinstaller -platform=”Linux x86-64″
  1. 将代理安装文件复制到 RDS 定制版 Oracle 实例。

您可以使用 SCP 将安装文件复制到 亚马逊简单存储服务 (Amazon S3) 存储 桶或 亚马逊弹性文件系统 (Amazon EFS) 集成,将安装文件复制到 RDS Custom for Oracle 实例。有关此集成的更多信息,请参阅将适用于 Oracle 的亚马逊 RDS 定制版与亚马逊 EFS 集成

  1. 暂停 RDS 自定义自动化
  2. 准备环境并安装代理:
rdsdb>mkdir -p /rdsdbdata/software_addons/agent_software
copy the agent installation file to  /rdsdbdata/software_addons/agent_software
  1. 创建 代理主页:
rdsdb>mkdir -p /rdsdbdata/software_addons/agent_13c
  1. 使用以下内容创建文件 /rdsdbdata/Software_addons/Agent/ orainst.loc:
inventory_loc=/rdsdbbin/oraInventory
inst_group=rdsdb
  1. 安装代理(修改配置以匹配您的环境):
cd /rdsdbdata/software_addons/agent_software

./agentDeploy.sh AGENT_BASE_DIR=/rdsdbdata/software_addons/agent13c \
-force \
-ignorePrereqs \
-invPtrLoc /rdsdbdata/software_addons/agent/oraInst.loc \
AGENT_PORT=3872 \
EM_UPLOAD_PORT=4903 \
OMS_HOST=10.0.2.51 \
ORACLE_HOSTNAME=ip-10-0-3-211 \
AGENT_INSTANCE_HOME=/rdsdbdata/software_addons/agent13c/agent_inst \
AGENT_REGISTRATION_PASSWORD=password \
SCRATCHPATH=/tmp
  1. 运行 root.sh:
root> sh /rdsdbdata/software_addons/agent13c/agent_13.5.0.0.0/root.sh
  1. 成功完成安装后,验证代理是否正常:
rdsdb>/rdsdbdata/software_addons/agent13c/agent_inst/bin/emctl status agent
.
.
.
Collection Status                            : Collections enabled
Heartbeat Status                             : Ok
Last attempted heartbeat to OMS              : 2022-11-22 13:48:37
Last successful heartbeat to OMS             : 2022-11-22 13:48:37
Next scheduled heartbeat to OMS              : 2022-11-22 13:49:37

---------------------------------------------------------------
Agent is Running and Ready

/rdsdbdata/software_addons/agent13c/agent_inst/bin/emctl upload agent
Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved.
---------------------------------------------------------------
EMD upload completed successfully

默认情况下,代理配置为使用 /etc/init.d/gcstartup 脚本自动启动,如了解启动 脚本中所述

  1. 确认主机目标(适用于 Oracle 的 RDS 定制实例的主机名)在 OEM 中可见。

  1. 使用 Amazon RDS 控制台将适用于 Oracle 的 RDS 自定义实例 目标 ( 例如数据库和侦听器)添加到 OEM。
  2. 恢复 RDS 自定义自动化

清理

成功完成软件组件的安装后,清理软件运行不再需要的安装文件和临时文件。这包括诸如 apex_22.1.zip、ords-latest.zip、jdk-11.0.17_linux-x64_bin.tar.gz 和 guard-stap-11.5.0.0.113097-1-rhel-7-linux-x86_64. rpm 之类的文件,如本文所述,这些文件是为安装各种组件而准备的。

结论

如果您的工作负载需要在数据库主机上安装额外的软件模块或代理,并且首选托管服务来运行 Oracle 数据库工作负载,那么 Amazon RDS Custom for Oracle 是您的选择。在这篇文章中,我们讨论了在不打破支持范围的情况下在 Amazon RDS Custom for Oracle 上安装 OEM 代理、APEX 和 Guardium S-TAP 代理等常见软件组件的分步说明,以及在 RDS Custom for Oracle 实例上安装软件的一般最佳实践。

如果您有任何意见或问题,请将其留在评论部分。


作者简介

Jobin Joseph 是一位驻多伦多的高级数据库专家解决方案架构师。他专注于关系数据库引擎,帮助客户将其数据库工作负载迁移到 亚马逊云科技 并对其进行现代化改造。他是一名甲骨文认证大师,在甲骨文数据库方面拥有 20 年的经验。