将 Oracle 电子商务套件迁移到 Amazon RDS Custom - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 Oracle 电子商务套件迁移到 Amazon RDS Custom

创建者:Simon Cunningham(AWS)、Jaydeep Nandy(AWS)、Nitin Saxena(AWS)和 Vishnu Vinnakota(AWS)

环境:生产

源:Amazon EC2 或本地

目标:Amazon RDS Custom

R 类型:更换平台

工作负载:Oracle

技术:迁移;数据库;基础设施

Amazon Web Services:Amazon EFS;Amazon RDS;AWS Secrets Manager

Summary

Oracle 电子商务套件是一种企业资源规划 (ERP) 解决方案,用于自动化企业范围内的流程,例如财务、人力资源、供应链和制造。它具有三层架构:客户端、应用程序和数据库。以前,您必须在自行管理的 Amazon Elastic Compute Cloud(Amazon EC2)实例上运行 Oracle 电子商务套件数据库,但现在您可以从 Amazon Relational Database Service(Amazon RDS)Custom 中受益。 

适用于 Oracle 的 Amazon RDS Custom 是一项托管式数据库服务,适用于需要访问底层操作系统和数据库环境的旧版、自定义和打包应用程序。它可以自动执行数据库管理任务和操作,并使您能够作为数据库管理员访问和自定义数据库环境和操作系统。当您将 Oracle 数据库迁移至 Amazon RDS Custom 时,Amazon Web Services 会处理诸如备份任务和确保高可用性之类的繁重工作,同时您可以专注于维护 Oracle 电子商务套件的应用程序和功能。有关迁移时需要考虑的关键因素,请参阅 AWS Prescriptive Guidance 中的 Oracle 数据库迁移策略

此模式侧重于迁移步骤,即:使用 Oracle Recovery Manager(RMAN)备份以及 EC2 实例与 Amazon RDS Custom 之间的 Amazon Elastic File System(Amazon EFS)共享文件系统将 Amazon EC2 上的独立 Oracle 数据库迁移到 Amazon RDS Custom。该模式使用 RMAN 完整备份(有时也称为 0 级备份)。 为简单起见,它使用冷备份,即关闭应用程序,装入数据库而不打开。(您也可以使用 Oracle Data Guard 或 RMAN 复制进行备份。但是,此模式不包括这些选项。)

有关在 AWS 上架构 Oracle 电子商务套件以实现高可用性和灾难恢复的信息,请参阅模式使用有效备用数据库在 Amazon RDS Custom 上为 Oracle 电子商务套件设置 HA/DR 架构

注意:此模式提供指向 Oracle 支持说明的链接。您需要 Oracle Support 账户才能访问这些文档。

先决条件和限制

先决条件

  • Oracle 版本 12.1.0.2 或 19c(最低为 19.3)源数据库,在装有 Oracle Linux 7 或 Red Hat 企业 Linux(RHEL)版本 7.x 的 Amazon EC2 上运行。此模式假设源数据库名称为 VIS,Oracle 19c 的其他容器数据库名称为 VISCDB,但您可以使用其他名称。

    注意:您也可以将此模式用于 Oracle 本地源数据库,前提是本地网络与 Amazon Virtual Private Cloud(Amazon VPC)之间有适当的网络连接。

  • Oracle 电子商务套件 12.2.x 版应用程序(视觉实例)。此过程已在 12.2.11 版本上进行了测试。

  • 单个 Oracle 电子商务套件应用程序层。但是,您可以调整此模式以使用多个应用程序层。

  • 对于 Oracle 12.1.0.2,配有至少 16 GB 交换空间的 Amazon RDS Custom。否则,12c 示例 CD 将显示一条警告。(如本文档后面所述,Oracle 19c 不需要示例 CD。)

开始迁移前,请完成以下步骤:

  1. 在 Amazon RDS 控制台上,使用数据库名称 VIS(或源数据库名称)创建适用于 Oracle 数据库实例的 Amazon RDS Custom。有关说明,请参阅 AWS 文档中的使用 Amazon RDS Custom 和博客文章Amazon RDS Custom for Oracle – 数据库环境中的新控制功能。这样可以确保将数据库名称设置为与源数据库相同的名称。(如果留空,则 EC2 实例和数据库名称将设置为 ORCL。)  确保至少使用已应用于源代码的补丁来创建自定义引擎版本(CEV)。有关更多信息,请参阅 Amazon RDS 文档中的准备创建 CEV

    Oracle 19c 注意事项:目前,对于 Oracle 19c,可以自定义 Amazon RDS 容器数据库的名称。默认值为 RDSCDB。请务必使用与 EC2 源实例相同的系统 ID(SID)创建 RDS Custom Oracle 实例。例如,在这种模式中,假定 Oracle 19c SID 是源实例上的 VISCDB。因此,Amazon RDS Custom 上的目标 Oracle 19c SID 也应该是 VISCDB

  2. 为 Amazon RDS Custom 数据库实例配置足够的存储空间、vCPU 和内存,使其与 Amazon EC2 源数据库相匹配。 为此,您可以根据 vCPU 和内存来匹配 Amazon EC2 实例类型。 

  3. 创建 Amazon EFS 文件系统并将其挂载到 Amazon EC2 和 Amazon RDS Custom 实例上。 有关说明,请参阅博客文章将适用于 Oracle 的 Amazon RDS Custom 与 Amazon EFS 集成。此模式假设您已在 Amazon EC2 源数据库实例和 Amazon RDS Custom 目标数据库实例上的 /RMAN上安装了 Amazon EFS 卷,并且源和目标之间可以进行网络连接。您也可以使用 Amazon FSx 或任何共享云端硬盘来使用相同的方法。

假设

此模式假设应用程序和数据库使用的是逻辑主机名,从而减少了迁移步骤的数量。您可以调整这些步骤以使用物理主机名,但是逻辑主机名可以降低迁移过程的复杂性。有关使用逻辑主机名的优势的信息,请参阅以下支持说明:

  • 对于 12c,Oracle Support Note 2246690.1

  • 对于 19c,Oracle Support Note 2617788.1

这种模式不包括 Oracle 12c 到 19c 的升级场景,而是侧重于将在 Amazon EC2 上运行的相同版本的 Oracle 数据库迁移到适用于 Oracle 的 Amazon RDS Custom。

适用于 Oracle 的 Amazon RDS Custom 支持 Oracle Home 自定义。(Oracle Home 存储 Oracle 二进制文件。) 您可以将 /rdsdbbin/oracle 的默认路径更改为您指定的路径,例如 /d01/oracle/VIS/19c。为简单起见,此模式中的指令采用默认路径 /rdsdbbin/oracle

限制

此模式不支持以下功能和配置:

  • 将数据库 ARCHIVE_LAG_TARGET 参数设置为 60–7200 范围之外的值

  • 禁用数据库实例日志模式(NOARCHIVELOG) 

  • 关闭 EC2 实例的 EBS-optimized 属性

  • 修改附加到 EC2 实例的原定 Amazon Elastic Block Store(Amazon EBS)卷

  • 添加新的 EBS 卷或将卷类型从 gp2 更改为 gp3

  • 对 TNS ifile 的支持

  • 更改 control_file 位置和名称(必须是 /rdsdbdata/db/VISCDB_A/controlfile/control-01.ctl,其中 VISCDB 是 CDB 名称)

有关这些配置和其他不支持的配置的更多信息,请参阅 Amazon RDS 文档中的修复不支持的配置

产品版本

有关 Amazon RDS Custom 支持的 Oracle Database 版本和实例类型,请参阅 Amazon RDS Custom for Oracle 的要求和限制

架构

以下架构图表示在 AWS 的单个可用区中运行的 Oracle 电子商务套件系统。应用程序层可通过应用程序负载均衡器访问,应用程序和数据库均位于私有子网中,Amazon RDS Custom 和 Amazon EC2 数据库层使用 Amazon EFS 共享文件系统来存储和访问 RMAN 备份文件。

AWS 上单个可用区中的电子商务套件架构

工具

Amazon Web Services

  • 适用于 Oracle 的 Amazon RDS Custom 是一项托管式数据库服务,适用于需要访问底层操作系统和数据库环境的旧版、自定义和打包应用程序。它可以自动执行数据库管理任务和操作,并使您能够作为数据库管理员访问和自定义数据库环境和操作系统。 

  • Amazon Elastic File System(Amazon EFS)是一个简单、无服务器的弹性文件系统,无需管理或预调配即可添加和删除文件。此模式使用 Amazon EFS 共享文件系统来存储和访问 RMAN 备份文件。

  • AWS Secrets Manager 是一项 AWS 托管服务,可让您轻松轮换、管理和检索数据库凭证、API 密钥和其他机密信息。创建数据库后,Amazon RDS Custom 会将密钥对和数据库用户凭证存储在 Secrets Manager 中。在这种模式中,您可以从 Secrets Manager 检索数据库用户密码来创建 RDSADMINADMIN 用户以及更改 Sys 和系统密码。

其他工具

  • RMAN 是一种为 Oracle 数据库提供备份和恢复支持的工具。此模式使用 RMAN 对 Amazon EC2 上的 Oracle 源数据库执行冷备份,该数据库在 Amazon RDS Custom 上恢复。

最佳实践

  • 使用逻辑主机名。这大大减少了必须运行的克隆后脚本的数量。有关更多信息,请参阅 Oracle Support Note 2246690.1。

  • 默认情况下,Amazon RDS Custom 使用 Oracle 自动内存管理 (AMM)。 如果您想使用 Hugemem 内核,可以将 Amazon RDS Custom 配置为改用自动共享内存管理 (ASMM)。

  • 默认情况下启用 memory_max_target 参数。框架在后台使用此参数来创建只读副本。

  • 启用 Oracle 闪回数据库。此功能在失效转移(不是切换)测试场景中非常有用,可以恢复备用状态。

  • 对于数据库初始化参数,请自定义 Amazon RDS Custom 数据库实例为 Oracle 电子商务套件提供的标准 PFILE,而不是使用 Oracle 源数据库中的 SPFILE。这是因为在 Amazon RDS Custom 中创建只读副本时,空格和评论会导致问题。有关数据库初始化参数的更多信息,请参阅 Oracle Support Note 396009.1。

在接下来的操作说明部分中,我们为 Oracle 12.1.0.2 和 19c 提供了单独的说明,其中的细节有所不同。

操作说明

任务描述所需技能

关闭应用程序。

要关闭源应用程序,请使用以下命令: 

$ su - applmgr $ cd $INST_TOP/admin/scripts $ ./adstpall.sh
数据库管理员

创建 .zip 文件。

在源应用程序层上创建 appsutil.zip 文件。稍后您将使用此文件来配置 Amazon RDS Custom 数据库节点。

$ perl $AD_TOP/bin/admkappsutil.pl
数据库管理员

将 .zip 文件复制到 Amazon EFS。

appsutil.zip$INST_TOP/admin/out 复制到共享 Amazon EFS 卷(/RMAN/appsutil)。您可以使用安全复制(SCP)或其他传输机制手动传输文件。

数据库管理员
任务描述所需技能

在 Amazon EC2 上预克隆数据库层。

以 Oracle 用户身份登录并运行:

$ cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME $ perl adpreclone.pl dbTier

检查生成的日志文件以确认操作成功完成。

数据库管理员

将 appsutil.zip 复制到共享的 Amazon EFS 文件系统。

创建 tar 备份并将 $ORACLE_HOME/appsutil 复制到共享的 Amazon EFS 文件系统(例如,/RMAN/appsutil):

$ cd $ORACLE_HOME $ tar cvf sourceappsutil.tar appsutil $ cp sourceappsutil.tar /RMAN/appsutil
数据库管理员
任务描述所需技能

创建备份脚本。

对源数据库执行 RMAN 完整备份到共享的 Amazon EFS 文件系统。

为简单起见,此模式执行 RMAN 冷备份。但是,您可以修改这些步骤,使用 Oracle Data Guard 执行 RMAN 热备份,以缩短停机时间。

1. 以挂载模式启动 Amazon EC2 源数据库:

$ sqlplus / as sysdba $ SQL> shutdown immediate $ SQL> startup mount

2. 创建 RMAN 备份脚本(根据 Oracle 版本使用以下示例之一,或运行现有的 RMAN 脚本),将数据库备份到您挂载的 Amazon EFS 文件系统(本示例中的 /RMAN)。

对于 Oracle 12.1.0.2:

$ vi FullRMANColdBackup.sh #!/bin/bash . /home/oracle/.bash_profile export ORACLE_SID=VIS export ORACLE_HOME=/d01/oracle/VIS/12.1.0 export DATE=$(date +%y-%m-%d_%H%M%S) rman target / log=/RMAN/VISDB_${DATE}.log << EOF run { allocate channel ch1 device type disk format '/RMAN/visdb_full_bkp_%u'; allocate channel ch2 device type disk format '/RMAN/visdb_full_bkp_%u'; crosscheck backup; delete noprompt obsolete; BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG; backup archivelog all; release channel ch1; release channel ch2; } EOF

对于 Oracle 19c:

$ vi FullRMANColdBackup.sh #!/bin/bash . /home/oracle/.bash_profile export ORACLE_SID=VISCDB export ORACLE_HOME=/d01/oracle/VIS/19c export DATE=$(date +%y-%m-%d_%H%M%S) rman target / log=/RMAN/VISDB_${DATE}.log << EOF run { allocate channel ch1 device type disk format '/RMAN/visdb_full_bkp_%u'; allocate channel ch2 device type disk format '/RMAN/visdb_full_bkp_%u'; crosscheck backup; delete noprompt obsolete; BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG; backup archivelog all; backup current controlfile format '/RMAN/cntrl.bak'; release channel ch1; release channel ch2; } EOF
数据库管理员

运行备份脚本。

更改权限,以 Oracle 用户身份登录,然后运行脚本:

$ chmod 755 FullRMANColdBackup.sh $ ./FullRMANColdBackup.sh
数据库管理员

检查是否存在错误,并记下备份文件的名称。

查看 RMAN 日志文件中的错误。如果一切正常,请列出控制文件的备份。记下输出文件的名称。

对于 Oracle 12.1.0.2:

RMAN> connect target / RMAN> list backup of controlfile; BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 9 Full 1.11M DISK 00:00:04 23-APR-22 BP Key: 9 Status: AVAILABLE Compressed: YES Tag: TAG20220423T121011 Piece Name: /RMAN/visdb_full_bkp_100rlsbt Control File Included: Ckp SCN: 12204595396727 Ckp time: 23-APR-22

稍后,当您在 Amazon RDS Custom 上恢复数据库时,您将使用备份文件 /RMAN/visdb_full_bkp_100rlsbt

对于 Oracle 19c:

RMAN> connect target / RMAN> list backup of controlfile; BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 38 Full 17.92M DISK 00:00:01 25-NOV-22 BP Key: 38 Status: AVAILABLE Compressed: NO Tag: TAG20221125T095014 Piece Name: /RMAN/cntrl.bak Control File Included: Ckp SCN: 12204620188873 Ckp time: 23-NOV-22

稍后,当您在 Amazon RDS Custom 上恢复数据库时,您将使用备份文件 /RMAN/cntrl.bak

数据库管理员
任务描述所需技能

更改主机文件并设置主机名。

注意:本节中的命令必须以根用户身份运行。

1. 在 Amazon RDS Custom 数据库实例上编辑 /etc/hosts 文件。实现此目的的一种简单方法是从 Amazon EC2 源数据库主机文件中复制数据库和应用程序主机条目。

<IP-address> OEBS-app01.localdomain OEBS-app01 OEBS-app01log.localdomain OEBS-app01log <IP-address> OEBS-db01.localdomain OEBS-db01 OEBS-db01log.localdomain OEBS-db01log

其中 <IP-address> 是数据库节点 IP 地址,您应将其替换为 Amazon RDS Custom IP 地址。逻辑主机名后面附有 *log

2. 运行 hostnamectl 命令来更改数据库主机名: 

$ sudo hostnamectl set-hostname --static persistent-hostname

例如:

$ sudo hostnamectl set-hostname --static OEBS-db01log

有关更多信息,请参阅知识中心关于分配静态主机名的文章

3. 重启 Amazon RDS Custom 数据库实例。 不用担心会关闭数据库,因为您将在以后的步骤中将其删除。

$ reboot

4. 当 Amazon RDS Custom 数据库实例恢复后,登录并验证主机名是否已更改: 

$ hostname oebs-db01
数据库管理员

安装 Oracle 电子商务套件软件。

将 Oracle 电子商务套件推荐的 RPM 安装到 Amazon RDS Custom 数据库实例上的 Oracle 主目录。有关详细信息,请参阅 Oracle Support Note #1330701.1。以下是部分列表。每个版本的 RPM 列表都会发生变化,因此请检查并确保已安装所有必需的 RPM。

以根用户身份运行:

$ sudo yum -y update $ sudo yum install -y elfutils-libelf-devel* $ sudo yum install -y libXp-1.0.2-2.1*.i686 $ sudo yum install -y libXp-1.0.2-2.1* $ sudo yum install -y compat-libstdc++-*

在继续下一步之前,请确认所有必需的补丁都已安装。

数据库管理员

安装 VNC 服务器。

注意:对于 Oracle 19c,您可以省略此步骤,因为不再需要示例 CD;请参阅 Oracle Support Note 2782085.1。

对于 Oracle 12.1.0.2:

安装 VNC 服务器及其相关桌面软件包。这是在下一步中安装 12c 示例 CD 的必要条件。

1. 以根用户身份运行:

$ sudo yum install -y tigervnc-server $ sudo yum install -y *kde* $ sudo yum install -y *xorg*

2. 为 rdsdb 用户启动 VNC 服务器,并设置 VNC 的密码:

$ su - rdsdb $ vncserver :1 $ vncpassword
数据库管理员

安装 12c 示例 CD。

注意:对于 Oracle 19c,您可以省略此步骤,因为不再需要示例 CD;请参阅 Oracle Support Note 2782085.1。

对于 Oracle 12.1.0.2:

1. 从 https://edelivery.oracle.com/ 下载安装文件。 对于 Oracle 电子商务套件 12.2.11 – Oracle 数据库 12c 第 1 版(12.1.0.2),请查看 Linux x86-64 V100102-01.zip 的示例

2. 创建用于存储示例 CD 的目录:

$ mkdir /RMAN/12cexamples

3. 使用您选择的传输机制(例如 SCP)将示例 CD .zip 文件复制到此目录:

V100102-01.zip

4. 将所有权更改为 rdsdb

$ chown -R rdsdb:rdsdb /RMAN/12cexamples

5. 以 rdsdb 用户身份解压缩文件:

$ unzip V10010201.zip

6. 从有权访问 VNC 客户端和 Amazon RDS Custom 的客户端进行连接。请确保打开必要的网络连接和防火墙端口,以允许 VNC 访问。例如,正在 display :1 上运行的 VNC 服务器需要在与 Amazon RDS Custom EC2 主机关联的安全组上打开端口 5901。

7. 更改为复制了示例 CD 的目录:

$ cd /RMAN/12cexamples/examples

8. 运行安装程序。 请务必验证 oraInst.loc 文件的位置。 

./runInstaller -invPtrLoc /rdsdbbin/oracle.12.1.custom.r1.EE.1/oraInst.loc

9. 在安装示例 CD 的过程中使用以下参数: 

Skip Software Update Downloads Select Oracle Home 12.1.0.2 (Oracle Base = /rdsdbbin) (Software Location = /rdsdbbin/oracle/12.1.custom.r1.EE.1)

10. 安装程序包括五个带有提示的步骤。 按照这些步骤操作直到安装完成。 

数据库管理员
任务描述所需技能

暂停自动化模式。

在继续执行后续步骤之前,您必须暂停 Amazon RDS Custom 数据库实例的自动化模式,以确保自动化不会干扰 RMAN 活动。

使用以下 AWS 命令行界面(AWS CLI)命令暂停自动化。(首先确保您已配置 AWS CLI。)

aws rds modify-db-instance \ --db-instance-identifier VIS \ --automation-mode all-paused \ --resume-full-automation-mode-minute 360 \ --region eu-west-1

当您指定暂停的持续时间时,请确保为 RMAN 恢复留出足够的时间。这取决于源数据库的大小,因此请相应地修改 360 值。

数据库管理员

删除起始数据库。

删除现有的 Amazon RDS Custom 数据库。 

以 Oracle 主用户的身份运行以下命令。(除非您对其进行了自定义,否则默认用户为 rdsdb。)

$ sqlplus / as sysdba SQL> shutdown immediate; SQL> startup nomount restrict; SQL> alter database mount; SQL> drop database; SQL> exit
数据库管理员

创建用于存储数据库文件的目录。

对于 Oracle 12.1.0.2:

为数据库、控制文件、数据文件和联机日志创建目录。使用上一个命令中 control_files 参数的父目录(在本例中为 VIS_A)。以 Oracle 主用户(默认为 rdsdb)的身份运行以下命令。

$ mkdir -p /rdsdbdata/db/VIS_A/controlfile $ mkdir -p /rdsdbdata/db/VIS_A/datafile $ mkdir -p /rdsdbdata/db/VIS_A/onlinelog

对于 Oracle 19c:

为数据库、控制文件、数据文件和联机日志创建目录。使用上一个命令中 control_files 参数的父目录(在本例中为 VISCDB_A)。以 Oracle 主用户(默认为 rdsdb)的身份运行以下命令。

$ mkdir -p /rdsdbdata/db/cdb/VISCDB_A/controlfile $ mkdir -p /rdsdbdata/db/cdb/VISCDB_A/datafile $ mkdir -p /rdsdbdata/db/cdb/VISCDB_A/onlinelog $ mkdir -p /rdsdbdata/db/cdb/VISCDB_A/onlinelog/arch $ mkdir /rdsdbdata/db/pdb/VISCDB_A
数据库管理员

创建和修改 Oracle 电子商务套件的参数文件。

在此步骤中,您不会从源数据库复制服务器参数文件(SPFILE)。相反,您将使用以 Amazon RDS Custom 数据库实例创建的标准参数文件(PFILE),并添加 Oracle 电子商务套件所需参数。

当您删除数据库时,Amazon RDS 自动化会创建 init.ora 文件的备份,该备份与 Amazon RDS Custom 数据库相关联。此文件称为 oracle_pfile,位于 /rdsdbdata/config

对于 Oracle 12.1.0.2:

1. 将 /rdsdbdata/config/oracle_pfile 复制到 $ORACLE_HOME

$ cp /rdsdbdata/config/oracle_pfile $ORACLE_HOME/dbs/initVIS.ora

2. 在 Amazon RDS Custom 数据库实例上编辑 initVIS.ora 文件。验证源上的所有参数并根据需要添加任何参数。有关详细信息,请参阅 Oracle Support Note 396009.1。

重要:请确保您添加的参数中没有评论。注释会导致自动化出现问题,例如创建只读副本和发布 point-in-time 恢复 (PITR)。

3. 根据要求将与以下内容类似的参数添加到 initVIS.ora 文件中:

*.workarea_size_policy='AUTO' *.plsql_code_type='INTERPRETED' *.cursor_sharing='EXACT' *._b_tree_bitmap_plans=FALSE *.session_cached_cursors=500 *.optimizer_adaptive_features=false *.optimizer_secure_view_merging=false *.SQL92_SECURITY=TRUE *.temp_undo_enabled=true _system_trig_enabled = TRUE nls_language = american nls_territory = america nls_numeric_characters = ".," nls_comp = binary nls_sort = binary nls_date_format = DD-MON-RR nls_length_semantics = BYTE aq_tm_processes = 1 _sort_elimination_cost_ratio =5 _like_with_bind_as_equality = TRUE _fast_full_scan_enabled = FALSE _b_tree_bitmap_plans = FALSE optimizer_secure_view_merging = FALSE _optimizer_autostats_job = FALSE parallel_max_servers = 8 parallel_min_servers = 0 parallel_degree_policy = MANUAL sec_case_sensitive_logon = FALSE compatible = 12.1.0 o7_dictionary_accessibility = FALSE utl_file_dir =/tmp

4. 修改如下。这些值将取决于源系统,因此请根据您当前的设置对其进行修改。

*.open_cursors=500 *.undo_tablespace='APPS_UNDOTS1

5. 移除 SPFILE 引用。

*.spfile='/rdsdbbin/oracle/dbs/spfileVIS.ora'

备注:

  • 请勿更改 Amazon RDS Custom PFILE 为 control_filesdb_unique_name 提供的值。Amazon RDS 需要这些值。如果您将来尝试创建只读副本,偏离这些值会导致问题。

  • 默认情况下,Amazon RDS Custom 使用自动内存管理(AMM)。如果您想使用 Hugemem,可以将 Amazon RDS Custom 配置为改用自动共享内存管理(ASMM)。 

  • 默认情况下启用 memory_max_target 参数。Amazon RDS 框架在后台使用此参数来创建只读副本。

6. 运行以下 startup nomount 命令确认 initVIS.ora 文件没有问题:

SQL> startup nomount pfile=/rdsdbbin/oracle/dbs/initVIS.ora; SQL> create spfile='/rdsdbdata/admin/VIS/pfile/spfileVIS.ora' from pfile; SQL> exit

7. 为 SPFILE 创建符号链接。

$ ln -s /rdsdbdata/admin/VIS/pfile/spfileVIS.ora $ORACLE_HOME/dbs/

对于 Oracle 19c:

1. 将 /rdsdbdata/config/oracle_pfile 复制到 $ORACLE_HOME

$ cp /rdsdbdata/config/oracle_pfile $ORACLE_HOME/dbs/initVISCDB.ora

2. 在 Amazon RDS Custom 数据库实例上编辑 initVISCDB.ora 文件。验证源上的所有参数并根据需要添加任何参数。有关详细信息,请参阅 Oracle Support Note 396009.1。

重要请确保您添加的参数中没有评论。 如果有评论,它们将导致自动化出现问题,例如创建只读副本和发布 point-in-time 恢复 (PITR)。

3. 根据要求将与以下内容类似的参数添加到 initVISCDB.ora 文件中。

*.instance_name=VISCDB *.sec_case_sensitive_logon= FALSE *.result_cache_max_size = 600M *.optimizer_adaptive_plans =TRUE *.optimizer_adaptive_statistics = FALSE *.pga_aggregate_limit = 0 *.temp_undo_enabled = FALSE *._pdb_name_case_sensitive = TRUE *.event='10946 trace name context forever, level 8454144' *.workarea_size_policy='AUTO' *.plsql_code_type='INTERPRETED' *.cursor_sharing='EXACT' *._b_tree_bitmap_plans=FALSE *.session_cached_cursors=500 *.optimizer_secure_view_merging=false *.SQL92_SECURITY=TRUE _system_trig_enabled = TRUE nls_language = american nls_territory = america nls_numeric_characters = ".," nls_comp = binary nls_sort = binary nls_date_format = DD-MON-RR nls_length_semantics = BYTE aq_tm_processes = 1 _sort_elimination_cost_ratio =5 _like_with_bind_as_equality = TRUE _fast_full_scan_enabled = FALSE _b_tree_bitmap_plans = FALSE optimizer_secure_view_merging = FALSE _optimizer_autostats_job = FALSE parallel_max_servers = 8 parallel_min_servers = 0 parallel_degree_policy = MANUAL

4. 修改如下。这些值将取决于源系统,因此请根据您当前的设置对其进行修改。

*.open_cursors=500 *.undo_tablespace='UNDOTBS1'

5. 移除 SPFILE 引用:

*.spfile='/rdsdbbin/oracle/dbs/spfileVISCDB.ora'

备注:

  • 请勿更改 Amazon RDS Custom PFILE 为 control_filesdb_unique_name 提供的值。Amazon RDS 需要这些值。如果您将来尝试创建只读副本,偏离这些值会导致问题。

  • 默认情况下,Amazon RDS Custom 使用自动内存管理(AMM)。如果您想使用 Hugemem,可以将 Amazon RDS Custom 配置为改用自动共享内存管理(ASMM)。 

  • 默认情况下启用 memory_max_target 参数。Amazon RDS 框架在后台使用此参数来创建只读副本。

6. 运行以下 startup nomount 命令确认 initVISCDB.ora 文件没有问题:

SQL> startup nomount pfile=/rdsdbbin/oracle/dbs/initVISCDB.ora; SQL> create spfile='/rdsdbdata/admin/VISCDB/pfile/spfileVISCDB.ora' from pfile; SQL> exit

7. 为 SPFILE 创建符号链接。

$ ln -s /rdsdbdata/admin/VISCDB/pfile/spfileVISCDB.ora $ORACLE_HOME/dbs/
数据库管理员

从备份中恢复 Amazon RDS Custom 数据库。

对于 Oracle 12.1.0.2:

1. 使用之前在源上捕获的备份文件恢复控制文件:

RMAN> connect target / RMAN> RESTORE CONTROLFILE FROM '/RMAN/visdb_full_bkp_100rlsbt'; Starting restore at 10-APR-22 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=201 device type=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 output file name=/rdsdbdata/db/VIS_A/controlfile/control-01.ctl Finished restore at 10-APR-22

2. 对备份片段进行编目,这样您就可以发出 RMAN restore

RMAN> alter database mount; RMAN> catalog start with '/RMAN/visdb';

3. 创建用于恢复数据库的脚本:

$ vi restore.sh rman target / log=/home/rdsdb/rman.log << EOF run { set newname for database to '/rdsdbdata/db/VIS_A/datafile/%b'; restore database; switch datafile all; switch tempfile all; } EOF

4. 将源恢复到 Amazon RDS Custom 目标数据库。必须更改脚本的权限才能运行脚本,然后运行 restore.sh 脚本以恢复数据库。

$ chmod 755 restore.sh $ nohup ./restore.sh &

对于 Oracle 19c:

1. 使用之前在源上捕获的备份文件恢复控制文件:

RMAN> connect target / RMAN> RESTORE CONTROLFILE FROM '/RMAN/cntrl.bak'; Starting restore at 07-JUN-23 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=201 device type=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 output file name=/rdsdbdata/db/cdb/VISCDB_A/controlfile/control-01.ctl Finished restore at 07-JUN-23

2. 对备份片段进行编目,这样您就可以发出 RMAN restore

RMAN> alter database mount; RMAN> catalog start with '/RMAN/visdb';

如果您在使用 start with 命令时遇到问题,可以单独添加备份片段;例如: 

RMAN> catalog backuppiece '/RMAN/visdb_full_bkp_1d1e507m';

然后对每个备份片段重复该命令。

3. 创建用于恢复数据库的脚本。根据要求修改可插拔数据库的名称。根据可用的 vCPU 数量分配并行通道,以加快恢复过程。

$ vi restore.sh rman target / log=/home/rdsdb/rmancdb.log << EOF run { allocate channel c1 type disk; allocate channel c2 type disk; .... .... .... allocate channel c<N> type disk; set newname for database to '/rdsdbdata/db/cdb/VISCDB_A/datafile/%b'; set newname for database root to '/rdsdbdata/db/cdb/VISCDB_A/datafile/%f_%b'; set newname for database "PDB$SEED" to '/rdsdbdata/db/cdb/pdbseed/%f_%b'; set newname for pluggable database VIS to '/rdsdbdata/db/pdb/VISCDB_A/%f_%b'; restore database; switch datafile all; switch tempfile all; release channel c1; release channel c2; release channel c3; .... .... .... release channel c<N>; } EOF

4. 将源恢复到 Amazon RDS Custom 目标数据库。必须更改脚本的权限才能运行脚本,然后运行 restore.sh 脚本以恢复数据库。

$ chmod 755 restore.sh $ nohup ./restore.sh &
数据库管理员

检查日志文件中是否存在问题。

对于 Oracle 12.1.0.2:

1. 通过查看 rman.log 文件确认没有问题:

$ cat /home/rdsdb/rman.log

2. 确认在控制文件中注册的日志文件的路径:

SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /d01/oracle/VIS/data/log1.dbf /d01/oracle/VIS/data/log2.dbf /d01/oracle/VIS/data/log3.dbf

3. 重命名日志文件以匹配目标的文件路径。替换路径以匹配上一步的输出:

SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/data/log1.dbf' TO '/rdsdbdata/db/VIS_A/onlinelog/log1.dbf'; SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/data/log2.dbf' TO '/rdsdbdata/db/VIS_A/onlinelog/log2.dbf'; SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/data/log3.dbf' TO '/rdsdbdata/db/VIS_A/onlinelog/log3.dbf';

对于 Oracle 19c:

1. 通过查看 rmancdb.log 文件确认没有问题:

$ cat /home/rdsdb/rmancdb.log

2. 确认在控制文件中注册的日志文件的路径:

SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /d01/oracle/VIS/oradata/VISCDB/redo03.log /d01/oracle/VIS/oradata/VISCDB/redo02.log /d01/oracle/VIS/oradata/VISCDB/redo01.log

3. 重命名日志文件以匹配目标的文件路径。替换路径以匹配上一步的输出:

SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/oradata/VISCDB/redo01.log' TO '/rdsdbdata/db/cdb/VISCDB_A/onlinelog/log1.dbf'; SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/oradata/VISCDB/redo02.log' TO '/rdsdbdata/db/cdb/VISCDB_A/onlinelog/log2.dbf'; SQL> ALTER DATABASE RENAME FILE '/d01/oracle/VIS/oradata/VISCDB/redo03.log' TO '/rdsdbdata/db/cdb/VISCDB_A/onlinelog/log3.dbf';

4. 确认路径、日志文件的状态以及在控制文件中注册的组号:

SQL> column REDOLOG_FILE_NAME format a50 SQL> SELECT a.GROUP#, a.status, b.MEMBER AS REDOLOG_FILE_NAME, (a.BYTES/1024/1024) AS SIZE_MB FROM v$log a JOIN v$logfile b ON a.Group#=b.Group# ORDER BY a.GROUP#; GROUP# STATUS REDOLOG_FILE_NAME SIZE_MB 1 CURRENT /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log1.dbf 512 2 INACTIVE /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log2.dbf 512 3 INACTIVE /rdsdbdata/db/cdb/VISCDB_A/onlinelog/log3.dbf 512
数据库管理员

确认您可以打开 Amazon RDS Custom 数据库并创建 OMF 日志文件。

适用于 Oracle 的 Amazon RDS Custom 使用 Oracle 托管文件 (OMF) 来简化操作。您可以将只读副本提升为独立实例,但必须先使用 OMF 创建日志文件。这是为了确保在提升实例时使用正确的路径。有关如何提升只读副本的更多信息,请参阅 Amazon RDS 文档。尝试提升只读副本时,不使用 OMF 文件可能会导致问题。

1. 使用 resetlogs 打开数据库:

SQL> alter database open resetlogs;

注意:如果您收到错误 ORA-00392:正在清除线程 1 的日志 xx,不允许操作,请按照故障排除部分中针对 ORA-00392 的步骤进行操作。

2. 确认该数据库打开:

SQL> select open_mode from v$database; OPEN_MODE -------------------- READ WRITE

3. 创建 OMF 日志文件。使用上一个日志文件查询的输出,根据要求更改组号、组数和大小。以下示例从组 4 开始,为简单起见,添加了三个组。

SQL> alter database add logfile group 4 size 512M; Database altered. SQL> alter database add logfile group 5 size 512M; Database altered. SQL> alter database add logfile group 6 size 512M; Database altered.

4. 删除之前的非 OMF 文件。以下是您可以根据自己的要求和前述步骤中查询的输出进行自定义的示例:

SQL> alter database drop logfile group 1; System altered. SQL> alter database drop logfile group 2; System altered. SQL> alter database drop logfile group 3; System altered.

注意:如果您在尝试删除日志文件时收到 ORA-01624 错误,请参阅故障排除部分。

5. 确认您可以看到已创建的 OMF 文件。(Oracle 12.1.0.2 和 19c 的目录路径各不相同,但概念是一样的。)

SQL> select member from v$logfile; MEMBER ----------------------------------------------------- /rdsdbdata/db/cdb/VISCDB_A/onlinelog/o1_mf_4_ksrbslny_.log /rdsdbdata/db/cdb/VISCDB_A/onlinelog/o1_mf_5_ksrchw0k_.log /rdsdbdata/db/cdb/VISCDB_A/onlinelog/o1_mf_6_ksrcnl9v_.log

6. 重新启动数据库并确认实例正在使用 SPFILE:

SQL> shutdown immediate SQL> startup SQL> show parameter spfile

对于 Oracle 12.1.0.2,此查询会返回:

spfile /rdsdbbin/oracle/dbs/spfileVIS.ora

对于 Oracle 19c,该查询会返回:

spfile /rdsdbbin/oracle/dbs/spfileVISCDB.ora

7. 仅适用于 Oracle 19c,请检查容器数据库的状态,并在需要时将其打开:

SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------- ---------- 2 PDB$SEED READ ONLY NO 3 VIS MOUNTED NO SQL> alter session set container=VIS; Session altered. SQL> alter database open; Database altered. SQL> alter database save state; Database altered. SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ----- 3 VIS READ WRITE NO SQL> exit

8. 由于您没有使用 PFILE,请从 $ORACLE_HOME/dbs 中删除该 init.ora 文件:

$ cd $ORACLE_HOME/dbs

对于 Oracle 12.1.0.2,使用命令:

$ pwd /rdsdbbin/oracle/dbs $ rm initVIS.ora

对于 Oracle 19c,使用命令:

$ pwd /rdsdbbin/oracle/dbs $ rm initVISCDB.ora
数据库管理员
任务描述所需技能

从 Secrets Manager 中检索密码。

您可以在控制台中或使用 AWS CLI 执行这些步骤。以下步骤提供了控制台的说明。

1. 登录 AWS 管理控制台并在 https://console.aws.amazon.com/rds/ 上打开 Amazon RDS 控制台。

2. 在导航窗格中,选择数据库,然后选择 Amazon RDS 数据库。

3. 选择配置,并记下实例的资源 ID(格式为:db-WZ4WLCK6AOQ6TJGZKMGRCDCI3Y)。

4. 在 https://console.aws.amazon.com/secretsmanager/ 上打开 AWS Secrets Manager 控制台。

5. 选择与 do-not-delete-custom-<resource_id> 同名的密钥,其中 resource-id 指的是您在步骤 3 中记下的实例的 ID。

6. 选择 Retrieve secret value (检索密钥值)

数据库管理员

创建 RDSADMIN 用户。

RDSADMIN 是 Amazon RDS Custom 数据库实例中用于监控和编排数据库的用户。由于新手数据库已删除,目标数据库已使用 RMAN 从源中恢复,因此您必须在恢复操作后重新创建此用户,以确保 Amazon RDS Custom 监控按预期运行。您还必须为 RDSADMIN 用户创建单独的配置文件和表空间。Oracle 12.1.0.2 和 19c 的说明略有不同。

对于 Oracle 12.1.0.2:

1. 在 SQL 提示符中,输入以下命令:

SQL> set echo on feedback on serverout on SQL> @?/rdbms/admin/utlpwdmg.sql SQL> ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED PASSWORD_VERIFY_FUNCTION NULL;

2. 创建配置文件 RDSADMIN

SQL> create profile RDSADMIN LIMIT COMPOSITE_LIMIT UNLIMITED SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL UNLIMITED LOGICAL_READS_PER_SESSION UNLIMITED LOGICAL_READS_PER_CALL UNLIMITED IDLE_TIME UNLIMITED CONNECT_TIME UNLIMITED PRIVATE_SGA UNLIMITED FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LIFE_TIME UNLIMITED PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_VERIFY_FUNCTION NULL PASSWORD_LOCK_TIME 86400/86400 PASSWORD_GRACE_TIME 604800/86400;

3. 将 SYSSYSTEMDBSNMP 用户配置文件设置为 RDSADMIN

SQL> set echo on feedback on serverout on SQL> alter user SYS profile RDSADMIN; SQL> alter user SYSTEM profile RDSADMIN; SQL> alter user DBSNMP profile RDSADMIN;

4. 创建 RDSADMIN 表空间:

SQL> create bigfile tablespace rdsadmin datafile size 7M autoextend on next 1m Logging online permanent blocksize 8192 extent management local autoallocate default nocompress segment space management auto;

5. 创建 RDSADMIN 用户。将 RDSADMIN 密码替换为您之前从 Secrets Manager 获得的密码:

SQL> create user rdsadmin identified by xxxxxxxxxx Default tablespace rdsadmin Temporary tablespace temp profile rdsadmin ;

6. 向 RDSADMIN 授予权限:

SQL> grant select on sys.v_$instance to rdsadmin; SQL> grant select on sys.v_$archived_log to rdsadmin; SQL> grant select on sys.v_$database to rdsadmin; SQL> grant select on sys.v_$database_incarnation to rdsadmin; SQL> grant select on dba_users to rdsadmin; SQL> grant alter system to rdsadmin; SQL> grant alter database to rdsadmin; SQL> grant connect to rdsadmin with admin option; SQL> grant resource to rdsadmin with admin option; SQL> alter user rdsadmin account unlock identified by xxxxxxxxxxx; SQL> @?/rdbms/admin/userlock.sql SQL> @?/rdbms/admin/utlrp.sql

对于 Oracle 19c:

1. 在 SQL 提示符中,输入以下命令:

SQL> set echo on feedback on serverout on SQL> @?/rdbms/admin/utlpwdmg.sql SQL> alter profile default LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED PASSWORD_VERIFY_FUNCTION NULL;

2. 创建配置文件 RDSADMIN

注意:在 Oracle 19c 中,RDSADMIN 的前缀为 C##。这是因为数据库参数 common_user_prefix 设置为 C##。在 Oracle 12.1.0.2 中,RDSADMIN 没有前缀。

SQL> create profile C##RDSADMIN LIMIT COMPOSITE_LIMIT UNLIMITED SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL UNLIMITED LOGICAL_READS_PER_SESSION UNLIMITED LOGICAL_READS_PER_CALL UNLIMITED IDLE_TIME UNLIMITED CONNECT_TIME UNLIMITED PRIVATE_SGA UNLIMITED FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LIFE_TIME UNLIMITED PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_VERIFY_FUNCTION NULL PASSWORD_LOCK_TIME 86400/86400 PASSWORD_GRACE_TIME 604800/86400;

3. 将 SYSSYSTEMDBSNMP 用户配置文件设置为 RDSADMIN

SQL> alter user SYS profile C##RDSADMIN; SQL> alter user SYSTEM profile C##RDSADMIN; SQL> alter user DBSNMP profile C##RDSADMIN;

4. 创建 RDSADMIN 表空间:

SQL> create bigfile tablespace rdsadmin datafile size 7M autoextend on next 1m Logging online permanent blocksize 8192 extent management local autoallocate default nocompress segment space management auto;

5. 创建 RDSADMIN 用户。将 RDSADMIN 密码替换为您之前从 Secrets Manager 获得的密码。

SQL> create user C##rdsadmin identified by xxxxxxxxxx profile C##rdsadmin container=all;

6. 向 RDSADMIN 授予权限:

SQL> grant select on sys.v_$instance to c##rdsadmin; SQL> grant select on sys.v_$archived_log to c##rdsadmin; SQL> grant select on sys.v_$database to c##rdsadmin; SQL> grant select on sys.v_$database_incarnation to c##rdsadmin; SQL> grant select on dba_users to c##rdsadmin; SQL> grant alter system to C##rdsadmin; SQL> grant alter database to C##rdsadmin; SQL> grant connect to C##rdsadmin with admin option; SQL> grant resource to C##rdsadmin with admin option; SQL> alter user C##rdsadmin account unlock identified by xxxxxxxxxxx; SQL> @?/rdbms/admin/userlock.sql SQL> @?/rdbms/admin/utlrp.sql
数据库管理员

创建主用户。

由于新手数据库已删除,目标数据库已使用 RMAN 从源中恢复,因此您必须重新创建主用户。在此示例中,主用户名为 admin

对于 Oracle 12.1.0.2:

SQL> create user admin identified by <password>; SQL> grant dba to admin

对于 Oracle 19c:

SQL> alter session set container=VIS; Session altered. SQL> create user admin identified by <password>; User created. SQL> grant dba to admin; Grant succeeded.
数据库管理员

更改超级用户密码。

1. 使用您从 Secrets Manager 中检索到的密码更改系统密码。

对于 Oracle 12.1.0.2:

SQL> alter user sys identified by xxxxxxxxxxx; SQL> alter user system identified by xxxxxxxxxx;

对于 Oracle 19c:

SQL> alter user sys identified by xxxxxxxxxxx container=all; SQL> alter user system identified by xxxxxxxxxx container=all;
  1. 更改 EBS_SYSTEM 密码。

对于 Oracle 12.1.0.2:

SQL> alter user ebs_system identified by xxxxxxxxxx;

对于 Oracle 19c:

对于此版本,您还必须连接到容器数据库,以更新那里的 EBS_SYSTEM 密码。

SQL> alter session set container=vis; SQL> alter user ebs_system identified by xxxxxxxxxx; SQL> exit;

如果您不更改这些密码,Amazon RDS Custom 会显示错误消息:数据库监控用户或用户凭证已更改

数据库管理员
任务描述所需技能

创建 Oracle 电子商务套件所需目录。

1. 在 Amazon RDS Custom Oracle 数据库上,以 Oracle 主用户身份运行以下脚本,在 $ORACLE_HOME/nls/data/9idata 中创建 9idata 目录。Oracle 电子商务套件需要此目录。

perl $ORACLE_HOME/nls/data/old/cr9idata.pl

忽略该 ORA_NLS10 消息,因为您将在后续步骤中创建支持上下文的环境。

2. 复制您之前从共享的 Amazon EFS 文件系统中创建的 appsutil.tar 文件,然后将其解压缩到 Amazon RDS Custom Oracle 主目录中。 这将在 $ORACLE_HOME 目录中创建 appsutil 目录。

$ cd /RMAN/appsutil $ cp sourceappsutil.tar $ORACLE_HOME $ cd $ORACLE_HOME $ tar xvf sourceappsutil.tar appsutil

3. 复制您之前保存在 Amazon EFS 共享文件系统上的 appsutil.zip 文件。 这是您在应用程序层创建的文件。

作为 Amazon RDS Custom 数据库实例上的 rdsdb 用户:

$ cp /RMAN/appsutil/appsutil.zip $ORACLE_HOME $ cd $ORACLE_HOME

4. 解压缩 appsutil.zip 文件以在 Oracle 主目录中创建 appsutil 目录和子目录:

$ unzip -o appsutil.zip

-o 选项意味着将覆盖某些文件。

配置 tsanames.ora 和 sqlnet.ora 文件。

您必须配置 tnsnames.ora 文件,这样才能使用 Autoconfig 工具连接到数据库。在以下示例中,您可以看到该 tnsnames.ora 文件是软链接的,但默认情况下该文件为空。

$ cd $ORACLE_HOME/network/admin $ ls -ltr -rw-r--r-- 1 rdsdb database 373 Oct 31 2013 shrept.lst lrwxrwxrwx 1 rdsdb database 30 Feb 9 17:17 listener.ora -> /rdsdbdata/config/listener.ora lrwxrwxrwx 1 rdsdb database 28 Feb 9 17:17 sqlnet.ora -> /rdsdbdata/config/sqlnet.ora lrwxrwxrwx 1 rdsdb database 30 Feb 9 17:17 tnsnames.ora -> /rdsdbdata/config/tnsnames.ora

1. 创建 tnsnames.ora 条目。由于 Amazon RDS 自动化解析文件的方式,您必须确保该条目不包含任何空格、评论或多余的行。否则,在使用某些 API(例如 create-db-instance-read-replic a)时,您可能会遇到问题。使用以下内容作为示例。   

2. 根据要求更换端口、主机和 SID:

$ vi tnsnames.ora VIS=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(PORT=1521)(HOST=xx.xx.xx.xx)))(CONNECT_DATA=(SID=VIS)(SERVER=DEDICATED)))

注意:文件中不应有多余的行。如果不删除这些行,则将来在创建只读副本时可能会遇到问题。创建只读副本可能会失败,并显示错误消息:活动引发异常: HostManagerException:无法在任何主机上成功调用 restrictReplication

3. 确认可以访问数据库:

$ tnsping vis OK (0 msec)

4. 仅适用于 Oracle 19c,请更新该 sqlnet.ora 文件。不这样做将导致错误 ORA-01017:用户名/密码无效;尝试连接数据库时登录被拒绝。编辑 $ORACLE_HOME/network/admin 中的 sqlnet.ora 以匹配以下内容:

NAMES.DIRECTORY_PATH=(TNSNAMES, ONAMES, HOSTNAME) SQLNET.EXPIRE_TIME= 10 SQLNET.INBOUND_CONNECT_TIMEOUT =60 SQLNET.ALLOWED_LOGON_VERSION_SERVER=10 HTTPS_SSL_VERSION=undetermined

5. 连接测试:

$ sqlplus apps/****@vis
数据库管理员

配置数据库。

现在,您已经测试了与数据库的连接,可以使用 appsutil 实用程序配置数据库,以创建支持上下文的环境。

对于 Oracle 12.1.0.2:

1. 运行以下命令:

$ cd $ORACLE_HOME/appsutil/bin $ perl adbldxml.pl appsuser=apps Enter Hostname of Database server: oebs-db01 Enter Port of Database server: 1521 Enter SID of Database server: VIS Enter Database Service Name: VIS Enter the value for Display Variable: :1 The context file has been created at: /rdsdbbin/oracle/appsutil/VIS_oebs-db01.xml

2. 从根用户创建 oraInst.loc

$ vi /etc/oraInst.loc inventory_loc=/rdsdbbin/oracle.12.1.custom.r1.EE.1/oraInventory inst_group=database

3. 使用上一步中创建的上下文文件克隆上下文文件以设置逻辑主机名。以 rdsdb 用户身份运行:

$ cd $ORACLE_HOME/appsutil/clone/bin $ perl adclonectx.pl \ contextfile=[ORACLE_HOME]/appsutil/[current context file] \ template=[ORACLE_HOME]/appsutil/template/adxdbctx.tmp

其中,oebs-db01log 指的是逻辑主机名。例如:

$ perl adclonectx.pl \ contextfile=/rdsdbbin/oracle.12.1.custom.r1.EE.1/appsutil/VIS_oebs-db01.xml \ template=/rdsdbbin/oracle/appsutil/template/adxdbctx.tmp Target System Hostname (virtual or normal) [oebs-db01] : oebs-db01log Target System Base Directory : /rdsdbbin/oracle Target Instance is RAC (y/n) [n] : n Target System Database SID : VIS Oracle OS User [rdsdb] : Oracle OS Group [rdsdb] : database Role separation is supported y/n [n] ? : n Target System utl_file_dir Directory List : /tmp Number of DATA_TOP's on the Target System [1] : Target System DATA_TOP Directory 1 [/rdsdbbin/oracle/data] : /rdsdbdata/db/VIS_A/datafile/ Target System RDBMS ORACLE_HOME Directory [/rdsdbbin/oracle/12.1.0] : /rdsdbbin/oracle Do you want to preserve the Display [:1] (y/n) : y Do you want the target system to have the same port values as the source system (y/n) [y] ? : y The new database context file has been created : /rdsdbbin/oracle.12.1.custom.r1.EE.1/appsutil/clone/bin/VIS_oebs-db01log.xml contextfile=/rdsdbbin/oracle.12.1.custom.r1.EE.1/appsutil/clone/bin/VIS_oebs-db01log.xml

对于 Oracle 19c:

1. 运行以下命令:

$ cd $ORACLE_HOME/appsutil/bin $ perl adbldxml.pl appsuser=apps Enter Hostname of Database server: oebs-db01 Enter Port of Database server: 1521 Enter SID of Database server: VIS Enter the database listener name:L_VISCDB_001 Enter the value for Display Variable: :1 The context file has been created at: /rdsdbbin/oracle/appsutil/VIS_oebs-db01.xml

2. 从根用户创建 oraInst.loc

$ vi /etc/oraInst.loc inventory_loc=/rdsdbbin/oracle/oraInventory inst_group=database

3. 使用上一步中创建的上下文文件克隆上下文文件以设置逻辑主机名。以 rdsdb 用户身份运行:

$ cd $ORACLE_HOME/appsutil/clone/bin $ perl adclonectx.pl \ contextfile=[ORACLE_HOME]/appsutil/[current context file] \ template=[ORACLE_HOME]/appsutil/template/adxdbctx.tmp

其中,oebs-db01log 指的是逻辑主机名。例如:

$ perl adclonectx.pl \ contextfile=/rdsdbbin/oracle/appsutil/VIS_oebs-db01.xml \ template=/rdsdbbin/oracle/appsutil/template/adxdbctx.tmp Target System Hostname (virtual or normal) [oebs-db01] : oebs-db01log Target System Base Directory : /rdsdbbin/oracle Target Instance is RAC (y/n) [n] : n Target System CDB Name : VISCDB Target System PDB Name : VIS Oracle OS User [oracle] : rdsdb Oracle OS Group [dba] : database Role separation is supported y/n [n] ? : n Number of DATA_TOP's on the Target System [2] : Target System DATA_TOP Directory 1 [/d01/oracle/VISCDB] : /rdsdbdata/db/pdb/VISCDB_A Target System DATA_TOP Directory 2 [/d01/oracle/data] : /rdsdbdata/db/pdb/VISCDB_A/datafile Specify value for OSBACKUPDBA group [database] : Specify value for OSDGDBA group [database] : Specify value for OSKMDBA group [database] : Specify value for OSRACDBA group [database] : Target System RDBMS ORACLE_HOME Directory [/d01/oracle/19.0.0] : /rdsdbbin/oracle Do you want to preserve the Display [:1] (y/n) : y Do you want the target system to have the same port values as the source system (y/n) [y] ? : y Validating if the source port numbers are available on the target system.. Complete port information available at /rdsdbbin/oracle/appsutil/clone/bin/out/VIS_oebs-db01log/portpool.lst New context path and file name [VIS_oebs-db01log.xml] : /rdsdbbin/oracle/appsutil/VIS_oebs-db01log.xml Do you want to overwrite it (y/n) [n] ? : y Replacing /rdsdbbin/oracle/appsutil/VIS_oebs-db01log.xml file. The new database context file has been created : contextfile=/rdsdbbin/oracle/appsutil/VIS_oebs-db01log.xml Check Clone Context logfile /rdsdbbin/oracle/appsutil/clone/bin/CloneContext_0609141428.log for details.
数据库管理员

安装 ETCC 并运行 Autoconfig。

1. 安装 Oracle 电子商务套件技术代码级别检查器(ETCC)。 

My Oracle Support 下载补丁 17537119,然后按照 README.txt 中的说明进行操作。您将在该 $ORACLE_HOME 目录中创建一个名为 etcc 的目录,解压缩补丁以创建名为 checkMTpatch.sh 的脚本,然后运行该脚本来检查补丁版本。

2. 运行 Autoconfig 实用程序,然后传递新的逻辑主机名上下文文件。

对于 Oracle 12.1.0.2:

cd $ORACLE_HOME/appsutil/bin $ ./adconfig.sh contextfile=/rdsdbbin/oracle.12.1.custom.r1.EE.1/appsutil/clone/bin/VIS_oebs-db01log.xml

对于 Oracle 19c:

Autoconfig 需要侦听器名称以匹配 CDBNAME。因此,备份的原始侦听器配置文件将暂时使用 L_<CDBNAME>_001

$ lsnrctl stop L_VISCDB_001 $ cp -rp /rdsdbdata/config/listener.ora /rdsdbdata/config/listener.ora_orig $ vi /rdsdbdata/config/listener.ora :%s/L_VISCDB_001/VISCDB/g $ lsnrctl start VISCDB $ cd /rdsdbbin/oracle/appsutil $ . ./txkSetCfgCDB.env dboraclehome=/rdsdbbin/oracle.19.custom.r1.EE-CDB.1 Oracle Home being passed: /rdsdbbin/oracle $ echo $ORACLE_HOME /rdsdbbin/oracle.19.custom.r1.EE-CDB.1 $ export ORACLE_SID=VISCDB $ cd $ORACLE_HOME/appsutil/bin $ perl $ORACLE_HOME/appsutil/bin/txkPostPDBCreationTasks.pl -dboraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME/appsutil/log -cdbsid=VISCDB -pdbsid=VIS -appsuser=apps -dbport=1521 -servicetype=onpremise Enter the APPS Password: <apps password> Enter the CDB SYSTEM Password:<password from secrets manager>

注意:如果数据库目录已更改,请按照 Oracle Support Note 2525754.1 中的说明进行操作。

数据库管理员
任务描述所需技能

为 Amazon RDS Custom 和 Oracle 电子商务套件配置 TNS 条目。

Autoconfig 会在默认位置生成 TNS ifile。对于 Oracle 12.1.0.2(非 CDB)和 Oracle19C PDB,默认位置为 $ORACLE_HOME/network/admin/$<CONTEXT_NAME>。适用于 Oracle 19c 的 CDB 使用默认 $ORACLE_HOME/network/admin/,如在前述步骤中运行 Autoconfig 时生成的环境文件中 $TNS_ADMIN 所定义的那样。

对于 Oracle 12.1.0.2 和 19c CDB,您不会使用这些默认值,因为 Autoconfig 生成的 tnsnames.oralistener.ora 文件不符合 Amazon RDS 的要求,例如没有空格或评论。相反,您可以使用 Amazon RDS Custom 数据库提供的通用文件来确保符合系统的期望并降低出错的可能性。 

例如,Amazon RDS Custom 需要以下命名格式:

L_<INSTANCE_NAME>_001

对于 Oracle 12.1.0.2,这将是:

L_VIS_001

对于 Oracle 19c,这将是:

L_VISCDB_001

以下是您将要使用的 listener.ora 文件示例。这是在您创建 Amazon RDS Custom 数据库时生成的。此时,您尚未对此文件进行任何更改,而是将其保留为默认值。

对于 Oracle 12.1.0.2:

$ cd $ORACLE_HOME/network/admin $ cat listener.ora ADR_BASE_L_VIS_001=/rdsdbdata/log/ SID_LIST_L_VIS_001=(SID_LIST = (SID_DESC = (SID_NAME = VIS)(GLOBAL_DBNAME = VIS) (ORACLE_HOME = /rdsdbbin/oracle))) L_VIS_001=(DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = xx.xx.xx.xx))) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = 127.0.0.1)))) SUBSCRIBE_FOR_NODE_DOWN_EVENT_L_VIS_001=OFF

对于 Oracle 19c:使用侦听器名称 L_<INSTANCE_NAME>_001 恢复原始 listener.ora 文件。

$ cd $ORACLE_HOME/network/admin $ cp -rp /rdsdbdata/config/listener.ora /rdsdbdata/config/listener.ora_autoconfig $ cp -rp /rdsdbdata/config/listener.ora_orig /rdsdbdata/config/listener.ora $ cat listener.ora SUBSCRIBE_FOR_NODE_DOWN_EVENT_L_VISCDB_001=OFF ADR_BASE_L_VISCDB_001=/rdsdbdata/log/ USE_SID_AS_SERVICE_L_VISCDB_001=ON L_VISCDB_001=(DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = xx.xx.xx.xx))) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = 127.0.0.1)))) SID_LIST_L_VISCDB_001=(SID_LIST = (SID_DESC = (SID_NAME = VISCDB)(GLOBAL_DBNAME = VISCDB) (ORACLE_HOME = /rdsdbbin/oracle)))

启动标准 Amazon RDS 操作的侦听器 L_<INSTANCE_NAME>_001

$ lsnrctl stop $ lsnrctl start L_VISCDB_001

对于 Oracle 12.1.0.2:

编辑 Oracle 电子商务套件环境文件以更改 $TNS_ADMIN 路径,从而使用 Amazon RDS Custom 通用 TNS ifile。环境文件是在您之前运行 Autoconfig 时创建的。通过删除 <CONTEXT_NAME> 后缀来编辑 TNS_ADMIN 变量。 

注意:您只能在 Oracle 12.1.0.2 中编辑环境文件,因为 19c 的默认主目录是 $ORACLE_HOME/network/admin,这与 Amazon RDS Custom 的默认主目录相同。

例如,在 Oracle 12.1.0.2 中,编辑文件:

$ vi $ORACLE_HOME/VIS_oebs-db01log.env

将路径从 更改为: 

TNS_ADMIN=”/rdsdbbin/oracle/network/admin/VIS_oebs-db01log” export TNS_ADMIN

更改为:

TNS_ADMIN=”/rdsdbbin/oracle/network/admin” export TNS_ADMIN

注意:每次运行 Autoconfig 时,都必须重复此步骤,以确保使用正确的 TNS ifile。(仅限 12.1.0.2)。

对于 Oracle 19c:

1. 将数据库层上下文变量 s_cdb_tnsadmin 的值更改为 <ORACLE_HOME>/network/admin 而不是 <ORACLE_HOME>/network/admin/<CONTEXT_NAME>

注意:请勿更新 s_db_tnsadmin 上下文变量。使其仍为 <ORACLE_HOME>/network/admin/<CONTEXT_NAME>

$ . $ORACLE_HOME/VIS_oebs-db01log.env $ vi $CONTEXT_FILE

2. 保存您对 s_cdb_tnsadmin 的值所做的更改。

s_db_tnsadmins_cdb_tnsadmin 的值应类似于以下内容,PDB 名称为 VIS,数据库节点逻辑名称为 oebs-db01log

$ grep -i tns_admin $CONTEXT_FILE <TNS_ADMIN oa_var="s_db_tnsadmin">/rdsdbbin/oracle/network/admin/VIS_oebs-db01log</TNS_ADMIN> <CDB_TNS_ADMIN oa_var="s_cdb_tnsadmin">/rdsdbbin/oracle/network/admin</CDB_TNS_ADMIN>

3. 在数据库层运行 Autoconfig:

$ . $ORACLE_HOME/VISCDB_oebs-db01log.env $ export ORACLE_PDB_SID=VIS $ sqlplus "/ as sysdba" @$ORACLE_HOME/appsutil/admin/adgrants.sql APPS $ sqlplus "/ as sysdba" @$ORACLE_HOME/rdbms/admin/utlrp.sql $ . $ORACLE_HOME/VIS_oebs-db01log.env $ echo $ORACLE_SID VIS $ cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME $ ./adautocfg.sh
数据库管理员

为 rdsdb 用户设置环境。

对于 Oracle 19c,请跳过此步骤。

对于 Oracle 12.1.0.2:

现在您已经完成了 Autoconfig 和 TNS 条目,您需要通过在 rdsdb 用户配置文件中设置环境文件来加载环境文件。

更新 .bash_profile 以调用 Oracle 电子商务套件数据库 .env 文件。您需要更新配置文件以确保环境已加载。此环境文件是在您之前运行 Autoconfig 时创建的。

以下示例环境文件是在您运行 Autoconfig 时创建的:

. /rdsdbbin/oracle/VIS_oebs-db01log.env

作为 rdsdb 用户:

cd $HOME vi .bash_profile export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${ORACLE_HOME}/ctx/lib export SHLIB_PATH=${ORACLE_HOME}/lib export PATH=$PATH:${ORACLE_HOME}/bin alias sql=’rlwrap -c sqlplus / as sysdba’ . ${ORACLE_HOME}/VIS_oebs-db01log.env

注意:对于 Oracle 19c,您不必在 .bash_profile 中装载 CDB 环境。这是因为默认路径 ORACLE_HOME 设置为默认路径 $ORACLE_HOME/network/admin,即 rdsdb(Oracle 主目录)用户的默认主目录。

数据库管理员

为 Amazon RDS Custom 配置应用程序和数据库。

完成 Oracle 12.1.0.2 和 19c 的前两个步骤。每个版本的后续步骤都不同。

1. 在应用程序层上,编辑 /etc/hosts 并将数据库的 IP 地址更改为 Amazon RDS Custom IP 地址:

xx.xx.xx.xx OEBS-db01.localdomain OEBS-db01 OEBS-db01log.localdomain OEBS-db01log

由于您使用的是逻辑主机名,因此几乎可以无缝地替换数据库节点。

2. 在 Amazon RDS Custom 数据库实例上,添加或修改分配给 EC2 源实例的安全组以反映 Amazon RDS Custom 数据库实例,以确保应用程序可以访问该节点。

对于 Oracle 12.1.0.2:

3. 运行 Autoconfig。以应用程序所有者(例如 applmgr)的身份运行:

$ cd $INST_TOP/admin/scripts $ ./adautocfg.sh AutoConfig completed successfully.

4. 验证 fnd_nodes 条目:

SQL> select node_name from apps.fnd_nodes NODE_NAME -------------------------------------------------------------------------------- AUTHENTICATION OEBS-APP01LOG OEBS-DB01LOG

5. 确认您可以登录,然后启动应用程序:

$ ./adstrtal.sh

对于 Oracle 19c:

  1. 检查 PDB 是否已打开,必要时将其打开:

SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 VIS MOUNTED SQL> alter session set container=vis; SQL> alter database open; SQL> alter database save state;

2. 测试 apps 的连接:

SQL> sqlplus apps/****@vis

3. 在数据库层运行 Autoconfig:

$ . $ORACLE_HOME/VIS_oebs-db01log.env $ echo $ORACLE_SID VIS $ cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME $ ./adautocfg.sh

4. 以应用程序所有者的身份在应用程序层上运行 Autoconfig(例如,applmgr):

$ cd $INST_TOP/admin/scripts $ ./adautocfg.sh AutoConfig completed successfully.

5. 验证 fnd_nodes 条目:

SQL> select node_name from apps.fnd_nodes NODE_NAME -------------------------------------------------------------------------------- AUTHENTICATION OEBS-APP01LOG OEBS-DB01LOG

6. 启动应用程序:

$ ./adstrtal.sh
数据库管理员
任务描述所需技能

恢复自动化以确认其正常工作。

使用以下 AWS CLI 命令恢复自动化:

aws rds modify-db-instance \ --db-instance-identifier vis \ --automation-mode full \

该数据库现在由 Amazon RDS Custom 管理。例如,如果侦听器或数据库出现故障,Amazon RDS Custom 代理将重新启动它们。请运行以下命令进行测试。

停止侦听器示例:

-bash-4.2$ lsnrctl stop vis

关闭数据库示例:

SQL> shutdown immediate;
数据库管理员

验证架构、连接和维护任务。

要完成迁移,您必须至少执行以下任务。

  • 运行 FS_CLONE 以同步补丁文件系统。

  • 收集架构统计信息。 

  • 确保外部接口和系统可以连接到新的 Amazon RDS Custom 数据库。

  • 设置备份和维护计划。

  • 通过发出割接来切换文件系统,验证 AD Online Patching(ADOP)是否按预期运行。

数据库管理员

故障排除

问题解决方案

当您尝试删除日志文件时,您会收到 ORA-01624 错误。

如果您在尝试删除日志文件时会收到 ORA-01624 错误,按照这些步骤进行操作。

发出以下命令并等到要删除的日志文件的状态变为 INACTIVE。有关 V$log 中状态代码的更多信息,请参阅 Oracle 文档。以下是示例命令及其输出:

SQL> select group#, status from v$log; GROUP# STATUS ---------- ---------------- 1 ACTIVE 2 CURRENT 3 UNUSED 4 UNUSED 5 UNUSED 6 UNUSED 6 rows selected.

在此示例中,日志文件 1 是 ACTIVE,因此您必须强制切换日志文件三次,以确保之前添加的第一个新日志文件的状态为 CURRENT

SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered.

等到要删除的所有日志文件均变为 INACTIVE(如以下示例所示),然后运行该 DROP LOGFILE 命令。

SQL> select group#, status from v$log; GROUP# STATUS ---------- ---------------- 1 INACTIVE 2 INACTIVE 3 INACTIVE 4 CURRENT 5 UNUSED 6 UNUSED 6 rows selected.

使用 resetlogs 打开数据库时,您会收到 ORA-00392 错误。

如果您收到错误 ORA-00392:正在清除线程 1 的日志 xx,不允许操作,请运行以下命令(xx 替换为日志文件号),然后重新运行 open resetlogs 命令:

SQL> alter database clear logfile group xx; SQL> alter database open resetlogs;

您在使用 系统管理员 或应用程序用户连接到应用程序时遇到问题。

要确认问题,请运行以下 SQL 查询:

SQL> select dbms_java.get_jdk_version() from dual; select dbms_java.get_jdk_version() from dual ERROR at line 1: ORA-29548: Java system class reported: release of Java system classes in the database (19.0.0.0.220719 1.8) does not match that of the oracle executable (19.0.0.0.0 1.8)

根本原因:源数据库应用了多个补丁,但是 Amazon RDS Custom DB_HOME 是新安装的,或者 CEV 未包含所有补丁,因为您在创建 CEV 时没有使用必要的 RSU 补丁,例如 OJVM。要验证这一点,请检查 $ORACLE_HOME/sqlpath$ORACLE_HOME/.patch_storageopatch – lsinventory 中是否列出了源补丁的详细信息。

参考datapatch -verbose 失败并出现错误:“Patch xxxxx:存档的补丁目录为空”(文档 ID 2235541.1)

修复:将缺失的补丁相关文件从源代码($ORACLE_HOME/sqlpatch/)复制到 Amazon RDS Custom($ORACLE_HOME/sqlpatch/),然后重新运行 ./datapatch -verbose

例如:

-bash-4.2$ cp -rp 18793246 20204035 20887355 22098146 22731026 $ORACLE_HOME/sqlpatch/

或者,您可以在 CDB 和 PDB 上运行以下命令来使用变通方法:

@?/javavm/install/update_javavm_db.sql

然后在 PDB 上运行以下命令:

sql> alter session set container=vis; @?/javavm/install/update_javavm_db.sql

现在再次运行测试:

SQL> select dbms_java.get_jdk_version() from dual;

相关资源

其他信息

维护操作

使用新补丁修补 Oracle 电子商务套件数据库主页

由于 bin volume (/rdsdbbin) 是 out-of-place 升级版,因此在 CEV 升级期间,bin 卷中的内容会被丢弃。因此,在使用 CEV 执行任何升级之前,必须创建该 appsutil 目录的副本。

在 Amazon RDS Custom 源实例上,在升级 CEV 之前,请备份 $ORACLE_HOME/appsutil

注意:此示例使用 NFS 卷。但是,您可以改为使用副本 Amazon Simple Storage Service(Amazon S3)。

1. 创建用于在 Amazon RDS Custom 源实例上存储 appsutil 的目录:

$ mkdir /RMAN/appsutil.preupgrade

2. 压缩并复制到 Amazon EFS 卷:

$ tar cvf /RMAN/appsutil.preupgrade appsutil

3. 验证 tar 文件是否存在:

$ bash-4.2$ ls -l /RMAN/appsutil.preupgrade -rw-rw-r-- 1 rdsdb rdsdb 622981120 Feb  8 20:16 appsutil.tar

4. 按照 Amazon RDS 文档中升级 RDS Custom 数据库实例中的说明升级到最新的 CEV(已创建必备的 CEV)。

您也可以通过使用 OPATCH 直接进行修补。请参阅 Amazon RDS 文档的 适用于 Oracle 的 RDS Custom 的升级要求和注意事项部分。

注意:在 CEV 修补过程中,主机的 IP 地址不会更改。此过程执行 out-of-place 升级,并在启动期间将新的 bin 卷附加到同一个实例上。