Upgrade EM from 13.5 to 24ai (24.1.0.0.0)

Probably you saw the note from Tim Hall and Julian Frey about the release of the new version of Enterprise Manager 24ai (24.1.0.0.0). It was released on the Oracle edelivery site, but the documentation is not out yet, documentation was released and can be accessed here. But I recommend registering at Oracle Enterprise Manager Technology Forum 2024 to check what it is the new version and what to expect when using the EM 24ai.

Where (and what) download

The EM 24ai is available at edelivery and after login there, you need to search for the “Enterprise Manager Base Platform – OMS” to see the list:

You need to download the “Enterprise Manager Base Platform – OMS 24.1.0.0.0” and I recommend the “Enterprise Manager Base Platform – OMS – Extraction Instructions by platform 24.1.0.0.0”. And for the EM you can download for several platforms (here I am using the Linux x86-64).

Read the Readme

The first step is basically to read the readme, the file “V1046984-01.zip” which represents the “Enterprise Manager Base Platform – OMS – Extraction Instructions by platform 24.1.0.0.0”. Below you can see how to do it, and what is inside:

[oracle@oemsrv ~]$ cd /u01/install/24.1/Instructions-Linux/
[oracle@oemsrv Instructions-Linux]$ 
[oracle@oemsrv Instructions-Linux]$ ls -l
total 4
-rw-r--r-- 1 oracle oinstall 762 Dec 12 19:10 V1046984-01.zip
[oracle@oemsrv Instructions-Linux]$
[oracle@oemsrv Instructions-Linux]$ unzip -q V1046984-01.zip
[oracle@oemsrv Instructions-Linux]$
[oracle@oemsrv Instructions-Linux]$ ls -l
total 8
-rw-r--r-- 1 oracle oinstall 1249 Dec  9 08:55 README_EM_24100_Shiphome_Extraction_linux86-64.txt
-rw-r--r-- 1 oracle oinstall  762 Dec 12 19:10 V1046984-01.zip
[oracle@oemsrv Instructions-Linux]$
[oracle@oemsrv Instructions-Linux]$
[oracle@oemsrv Instructions-Linux]$ cat README_EM_24100_Shiphome_Extraction_linux86-64.txt
Oracle Enterprise Manager 24ai Release 1 for Linux x86-64 bit

This document contains information on the Oracle Enterprise Manager 24ai Release 1 Shiphome extraction information.

Extraction of Oracle Enterprise Manager 24ai Release 1 Shiphome
============================================================================================================

Downloading the files
---------------------
1. Download the all shiphome zips files, for each platform there are 5 files example as shown below

/scratch/V123451-01.zip
/scratch/V123452-01.zip
/scratch/V123453-01.zip
/scratch/V123454-01.zip
/scratch/V123455-01.zip

2. The downloaded files are compressed with the zip format. Use any unzip tool to uncompress the file, or download a utility from eDelivery http://updates.oracle.com/unzips/unzips.html. This will generate the compressed zip files.

# cd /scratch

#unzip V123451-01.zip
#unzip V123452-01.zip
#unzip V123453-01.zip
#unzip V123454-01.zip
#unzip V123455-01.zip

Uncompressing the .zip files will create shiphome files ending with .bin & .zip extension.

3. Start installation using the executable binary

For example
# ./em24100_linux64.bin

Follow the install flow as provided in the Enterprise Manager Basic Installation Guide.

[oracle@oemsrv Instructions-Linux]$

And as read above, the instructions for installation are to unzip all the files in the same directory and call the installer.

Before starting the upgrade

The first thing to know is that my current EM is the 13.5.0.24, the last one available. And you need to be, at least, using the 13.5.0.22 to be able to do the upgrade:

So, if you need to patch your current EM, you can use my previous post where I show how to patch the EM from 13.5.0.20 to 13.5.0.24 (link here).

Here, my EM is a simple test lab, with not so many targets and plugins deployed. The upgrade process is quite simple but can vary based on the plugins that have been deployed in your environment. The post show one way, and I had no access to the documentation, to see additional options or troubleshooting. Use this post as a guide and adapt it to your needs.

Upgrade the EM to 24ai

Using the readme that we saw before, I unzip the version in the same folder:

[oracle@oemsrv ~]$ cd /u01/install/24.1/Base/
[oracle@oemsrv Base]$ ls -l
total 8229540
-rw-r--r-- 1 oracle oinstall 1624006261 Dec 12 19:01 V1046951-01.zip
-rw-r--r-- 1 oracle oinstall 1532547469 Dec 12 19:01 V1046952-01.zip
-rw-r--r-- 1 oracle oinstall 1921746284 Dec 12 19:03 V1046953-01.zip
-rw-r--r-- 1 oracle oinstall 1679195404 Dec 12 19:04 V1046954-01.zip
-rw-r--r-- 1 oracle oinstall 1669545916 Dec 12 19:05 V1046955-01.zip
[oracle@oemsrv Base]$
[oracle@oemsrv Base]$ unzip -q V1046951-01.zip
[oracle@oemsrv Base]$ unzip -q V1046952-01.zip
[oracle@oemsrv Base]$ unzip -q V1046953-01.zip
[oracle@oemsrv Base]$ unzip -q V1046954-01.zip
[oracle@oemsrv Base]$ unzip -q V1046955-01.zip
[oracle@oemsrv Base]$
[oracle@oemsrv Base]$
[oracle@oemsrv Base]$ ls -l
total 16459392
-r--r--r-- 1 oracle oinstall 1532547277 Dec  5 11:20 em24100_linux64-2.zip
-r--r--r-- 1 oracle oinstall 1921746092 Dec  5 11:20 em24100_linux64-3.zip
-r--r--r-- 1 oracle oinstall 1679195212 Dec  5 11:21 em24100_linux64-4.zip
-r--r--r-- 1 oracle oinstall 1669545724 Dec  5 11:22 em24100_linux64-5.zip
-r-xr-xr-x 1 oracle oinstall 1624325096 Dec  5 11:23 em24100_linux64.bin
-rw-r--r-- 1 oracle oinstall 1624006261 Dec 12 19:01 V1046951-01.zip
-rw-r--r-- 1 oracle oinstall 1532547469 Dec 12 19:01 V1046952-01.zip
-rw-r--r-- 1 oracle oinstall 1921746284 Dec 12 19:03 V1046953-01.zip
-rw-r--r-- 1 oracle oinstall 1679195404 Dec 12 19:04 V1046954-01.zip
-rw-r--r-- 1 oracle oinstall 1669545916 Dec 12 19:05 V1046955-01.zip
[oracle@oemsrv Base]$

And after that, we can call the “em24100_linux64.bin”:

[oracle@oemsrv ~]$ /u01/install/24.1/Base/em24100_linux64.bin
Launcher log file is /tmp/OraInstall2024-12-13_08-35-36PM/launcher2024-12-13_08-35-36PM.log.
Extracting the installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Done
Checking monitor: must be configured to display at least 256 colors.  Actual unknown.   Failed <<<<
Checking swap space: must be greater than 512 MB.   Actual 4059 MB    Passed
Checking if this platform requires a 64-bit JVM.   Actual 64    Passed (-d64 flag is not required)

Some system prerequisite checks failed.
You must fulfill these requirements before continuing.

Continue? (yes [y] / no [n]) [n]
y
You have confirmed that the product can be installed on this platform.
Continuing with the installation.


Preparing to launch the Oracle Universal Installer from /tmp/OraInstall2024-12-13_08-35-36PM

This will start the GUI, with the first options:

Below I selected the “Upgrade End-to-End” (since I want to have a full upgrade EM+DB+Agent executed in one procedure only), and the EM that I want to upgrade:

For the next, you can see that I skipped the auto updates:

And after it will check for the requirements:

In my case just one warning linked to the range of ports that needed to be opened, and I ignored it:

The next is to select where you will install the EM 24ai and the Agent as well. The upgrade process is out-of-place, meaning that everything is installed in one separate folder and the EM catalog is upgraded. So, you will need to create these folders and point them here (besides the disk space too):

As I told you before, my lab is simple, so, the database runs on the same machine. As you can see below, it will ask the sys and sysman password to connect to your EM database and upgrade it. For me is a simple environment and I do not use SSL connections (between EM and database) my backups were already done before starting the procedure:

After it will request if you want to upgrade the EM catalog using the sysuser or not (if you have another user with SYSDBA), you can use it. Here I am using SYS:

After, additional checks will be made and failures can be reported:

Fixing oracle.sysman.csa

The “oracle.sysman.csa” needs to be removed from the agent. To do that we need to call the emcli to remove it. If you try to call the command that the installer asks you to use, it will fail:

[oracle@oemsrv ~]$ $OMS_HOME/bin/emcli undeploy_plugin_from_agent -plugin="oracle.sysman.csa" -agent_names=oemsrv
Error: The command name "undeploy_plugin_from_agent" is not a recognized command.
Run the "help" command for a list of recognized commands.
You may also need to run the "sync" command to synchronize with the current OMS.
[oracle@oemsrv ~]$

The point is that you need to login first and after call the command:

[oracle@oemsrv ~]$ $OMS_HOME/bin/emcli login -username=sysman
Enter password

Login successful
[oracle@oemsrv ~]$
[oracle@oemsrv ~]$ $OMS_HOME/bin/emcli undeploy_plugin_from_agent -plugin="oracle.sysman.csa" -agent_names="oemsrv.oralocal:3872"
Plug-in undeployment from the Management Agents is in progress
Use "emcli get_plugin_deployment_status -plugin=oracle.sysman.csa" to track the plug-in undeployment status.
[oracle@oemsrv ~]$

Look above that I am deploying from the agent running on the same server as EM. And I recommend to remove from all agents. And since it is a requirement you can have issues in case you use it.

We can follow up the process using the command below (several times until you see the “Status” as Success):

[oracle@oemsrv ~]$ $OMS_HOME/bin/emcli get_plugin_deployment_status -plugin=oracle.sysman.csa
Plug-in Deployment/Undeployment Status

Destination          : Management Agent - oemsrv.oralocal:3872
Plug-in Name         : Oracle CSA
Version              : 13.5.0.0.0
ID                   : oracle.sysman.csa
Content              : Plug-in
Action               : Undeployment
Status               : Undeploying
Steps Info:
---------------------------------------- ------------------------- ------------------------- ----------
Step                                     Start Time                End Time                  Status
---------------------------------------- ------------------------- ------------------------- ----------
Submit job for undeployment              12/13/24 12:15:50 AM CET  12/13/24 12:15:50 AM CET  Success

Initialize                               12/13/24 12:15:56 AM CET  12/13/24 12:15:56 AM CET  Success

Delete target                            12/13/24 12:15:56 AM CET  12/13/24 12:15:56 AM CET  Success

---------------------------------------- ------------------------- ------------------------- ----------

Destination          : Management Agent - oemsrv.oralocal:3872
Plug-in Name         : Oracle CSA
Version              : 13.5.0.0.0
ID                   : oracle.sysman.csa
Content              : Discovery
Action               : Undeployment
Status               : Undeploying
Steps Info:
---------------------------------------- ------------------------- ------------------------- ----------
Step                                     Start Time                End Time                  Status
---------------------------------------- ------------------------- ------------------------- ----------
Initialize                               12/13/24 12:15:56 AM CET  12/13/24 12:15:56 AM CET  Success

Delete target                            12/13/24 12:15:56 AM CET  12/13/24 12:15:56 AM CET  Success

---------------------------------------- ------------------------- ------------------------- ----------
[oracle@oemsrv ~]$
[oracle@oemsrv ~]$ $OMS_HOME/bin/emcli get_plugin_deployment_status -plugin="oracle.sysman.csa"
Plug-in Deployment/Undeployment Status

Destination          : Management Agent - oemsrv.oralocal:3872
Plug-in Name         : Oracle CSA
Version              : 13.5.0.0.0
ID                   : oracle.sysman.csa
Content              : Plug-in
Action               : Undeployment
Status               : Success
Steps Info:
---------------------------------------- ------------------------- ------------------------- ----------
Step                                     Start Time                End Time                  Status
---------------------------------------- ------------------------- ------------------------- ----------
Submit job for undeployment              12/13/24 12:15:50 AM CET  12/13/24 12:15:50 AM CET  Success

Initialize                               12/13/24 12:15:56 AM CET  12/13/24 12:15:56 AM CET  Success

Delete target                            12/13/24 12:15:56 AM CET  12/13/24 12:15:56 AM CET  Success

Deconfigure plug-in from Management Agent 12/13/24 12:15:56 AM CET  12/13/24 12:17:34 AM CET  Success

Update inventory                         12/13/24 12:15:56 AM CET  12/13/24 12:17:34 AM CET  Success

---------------------------------------- ------------------------- ------------------------- ----------

Destination          : Management Agent - oemsrv.oralocal:3872
Plug-in Name         : Oracle CSA
Version              : 13.5.0.0.0
ID                   : oracle.sysman.csa
Content              : Discovery
Action               : Undeployment
Status               : Success
Steps Info:
---------------------------------------- ------------------------- ------------------------- ----------
Step                                     Start Time                End Time                  Status
---------------------------------------- ------------------------- ------------------------- ----------
Initialize                               12/13/24 12:15:56 AM CET  12/13/24 12:15:56 AM CET  Success

Delete target                            12/13/24 12:15:56 AM CET  12/13/24 12:15:56 AM CET  Success

Deconfigure plug-in from Management Agent 12/13/24 12:17:34 AM CET  12/13/24 12:20:35 AM CET  Success

Update inventory                         12/13/24 12:17:34 AM CET  12/13/24 12:20:35 AM CET  Success

---------------------------------------- ------------------------- ------------------------- ----------
[oracle@oemsrv ~]$

Fixing oracle.sysman.orhc

The next is to remove the “oracle.sysman.orhc” from the server side. Here, the OMS will restart as part of the process and you can process using the command below (if the command report that not exist, please login as demonstrated in the previous example):

[oracle@oemsrv ~]$ $OMS_HOME/bin/emcli undeploy_plugin_from_server -plugin="oracle.sysman.orhc"
Enter repository DB sys password:

Undeployment of plug-in from the management servers is in progress
Use " emcli get_plugin_deployment_status -plugin=oracle.sysman.orhc " to track plug-in un-deployment status.

Note: Un-deployment of plug-in on Management Server will require downtime.
      All currently connected users will be disconnected from the Enterprise Manager.
      During downtime period, users will not be able to connect to Enterprise Manager and
      Enterprise Manager will not monitor any targets.
      Use " emctl status oms -details " to track un-deployment status during downtime.
[oracle@oemsrv ~]$

And we can check the progress:

[oracle@oemsrv ~]$ $OMS_HOME/bin/emcli get_plugin_deployment_status -plugin=oracle.sysman.orhc
Plug-in Deployment/Undeployment Status

Destination          : Management Server - oemsrv.oralocal:4889_Management_Service
Plug-in Name         : Oracle ORAchk Healthchecks
Version              : 13.4.1.0.0
ID                   : oracle.sysman.orhc
Content              : Plug-in
Action               : Undeployment
Status               : Undeploying
Steps Info:
---------------------------------------- ------------------------- ------------------------- ----------
Step                                     Start Time                End Time                  Status
---------------------------------------- ------------------------- ------------------------- ----------
Submit job for undeployment              12/13/24 12:22:49 AM CET  12/13/24 12:22:49 AM CET  Success

Initialize                               12/13/24 12:23:04 AM CET  12/13/24 12:23:05 AM CET  Success

Validate plug-in home                    12/13/24 12:23:05 AM CET  12/13/24 12:23:07 AM CET  Success

Perform custom preconfiguration          12/13/24 12:23:07 AM CET  12/13/24 12:23:10 AM CET  Success

Delete plug-in's metadata                12/13/24 12:23:10 AM CET  N/A                       Running

---------------------------------------- ------------------------- ------------------------- ----------
[oracle@oemsrv ~]$
[oracle@oemsrv ~]$ $OMS_HOME/bin/emcli get_plugin_deployment_status -plugin=oracle.sysman.orhc
Error: The connection to the OMS is broken or has been actively interrupted by the OMS (usually due to a communication timeout). Check the log files for further details
[oracle@oemsrv ~]$

As you can see above, the command will report unavailability, and this is expected since OMS was restarted. To continue to check the progress we need to use the command below:

[oracle@oemsrv ~]$ $OMS_HOME/bin/emctl status oms -details
Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved.
Console Server Host        : oemsrv.oralocal
HTTP Console Port          : 7788
HTTPS Console Port         : 7803
HTTP Upload Port           : 4889
HTTPS Upload Port          : 4903
EM Instance Home           : /u02/app/oracle/gc_inst/em/EMGC_OMS1
OMS Log Directory Location : /u02/app/oracle/gc_inst/em/EMGC_OMS1/sysman/log
OMS is not configured with SLB or virtual hostname
Agent Upload is locked.
OMS Console is locked.
Active CA ID: 1
Console URL: https://oemsrv.oralocal:7803/em
Upload URL: https://oemsrv.oralocal:4903/empbs/upload

WLS Domain Information
Domain Name            : GCDomain
Admin Server Host      : oemsrv.oralocal
Admin Server HTTPS Port: 7102
Admin Server is RUNNING

Oracle Management Server Information
Managed Server Instance Name: EMGC_OMS1
Oracle Management Server Instance Host: oemsrv.oralocal
WebTier is Up

Oracle Management Server status is down possibly because plug-ins are being deployed or undeployed from it. Use -details option to get more details about the plug-in deployment status.
Plug-in Deployment/Undeployment Status

Destination          : Management Server - oemsrv.oralocal:4889_Management_Service
Plug-in Name         : Oracle ORAchk Healthchecks
Version              : 13.4.1.0.0
ID                   : oracle.sysman.orhc
Content              : Plug-in
Action               : Undeployment
Status               : Undeploying
Steps Info:
---------------------------------------- ------------------------- ------------------------- ----------
Step                                     Start Time                End Time                  Status
---------------------------------------- ------------------------- ------------------------- ----------
Submit job for undeployment              12/13/24 12:22:49 AM CET  12/13/24 12:22:49 AM CET  Success

Initialize                               12/13/24 12:23:04 AM CET  12/13/24 12:23:05 AM CET  Success

Validate plug-in home                    12/13/24 12:23:05 AM CET  12/13/24 12:23:07 AM CET  Success

Perform custom preconfiguration          12/13/24 12:23:07 AM CET  12/13/24 12:23:10 AM CET  Success

Delete plug-in's metadata                12/13/24 12:23:10 AM CET  12/13/24 12:23:30 AM CET  Success

Stop management server                   12/13/24 12:23:31 AM CET  12/13/24 12:24:43 AM CET  Success

Deconfigure plug-in from middle tier     12/13/24 12:24:43 AM CET  12/13/24 12:24:49 AM CET  Success

Deconfigure plug-in from Management Repository 12/13/24 12:24:49 AM CET  12/13/24 12:25:30 AM CET  Success

Update inventory                         12/13/24 12:25:30 AM CET  12/13/24 12:25:30 AM CET  Success

Start management server                  12/13/24 12:25:30 AM CET  N/A                       Running

---------------------------------------- ------------------------- ------------------------- ----------
[oracle@oemsrv ~]$
[oracle@oemsrv ~]$ $OMS_HOME/bin/emctl status oms -details
Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved.
Console Server Host        : oemsrv.oralocal
HTTP Console Port          : 7788
HTTPS Console Port         : 7803
HTTP Upload Port           : 4889
HTTPS Upload Port          : 4903
EM Instance Home           : /u02/app/oracle/gc_inst/em/EMGC_OMS1
OMS Log Directory Location : /u02/app/oracle/gc_inst/em/EMGC_OMS1/sysman/log
OMS is not configured with SLB or virtual hostname
Agent Upload is locked.
OMS Console is locked.
Active CA ID: 1
Console URL: https://oemsrv.oralocal:7803/em
Upload URL: https://oemsrv.oralocal:4903/empbs/upload

WLS Domain Information
Domain Name            : GCDomain
Admin Server Host      : oemsrv.oralocal
Admin Server HTTPS Port: 7102
Admin Server is RUNNING

Oracle Management Server Information
Managed Server Instance Name: EMGC_OMS1
Oracle Management Server Instance Host: oemsrv.oralocal
WebTier is Up
Oracle Management Server is Up
JVMD Engine is Up
[oracle@oemsrv ~]$

As seen above, after some time the status from OMS will stop showing the progress for the plugin removal and we can come back to use the get_plugin_deployment_status again (you need to login again):

[oracle@oemsrv ~]$ $OMS_HOME/bin/emcli get_plugin_deployment_status -plugin=oracle.sysman.orhc
Error: Session expired. Run emcli login to establish a session.
[oracle@oemsrv ~]$ $OMS_HOME/bin/emcli login -username=sysman
Enter password :

Login successful
[oracle@oemsrv ~]$ $OMS_HOME/bin/emcli get_plugin_deployment_status -plugin=oracle.sysman.orhc
Plug-in Deployment/Undeployment Status

Destination          : Management Server - oemsrv.oralocal:4889_Management_Service
Plug-in Name         : Oracle ORAchk Healthchecks
Version              : 13.4.1.0.0
ID                   : oracle.sysman.orhc
Content              : Plug-in
Action               : Undeployment
Status               : Failed
Steps Info:
---------------------------------------- ------------------------- ------------------------- ----------
Step                                     Start Time                End Time                  Status
---------------------------------------- ------------------------- ------------------------- ----------
Submit job for undeployment              12/13/24 12:22:49 AM CET  12/13/24 12:22:49 AM CET  Success

Initialize                               12/13/24 12:23:04 AM CET  12/13/24 12:23:05 AM CET  Success

Validate plug-in home                    12/13/24 12:23:05 AM CET  12/13/24 12:23:07 AM CET  Success

Perform custom preconfiguration          12/13/24 12:23:07 AM CET  12/13/24 12:23:10 AM CET  Success

Delete plug-in's metadata                12/13/24 12:23:10 AM CET  12/13/24 12:23:30 AM CET  Success

Stop management server                   12/13/24 12:23:31 AM CET  12/13/24 12:24:43 AM CET  Success

Deconfigure plug-in from middle tier     12/13/24 12:24:43 AM CET  12/13/24 12:24:49 AM CET  Success

Deconfigure plug-in from Management Repository 12/13/24 12:24:49 AM CET  12/13/24 12:25:30 AM CET  Success

Update inventory                         12/13/24 12:25:30 AM CET  12/13/24 12:25:30 AM CET  Success

Start management server                  12/13/24 12:25:30 AM CET  12/13/24 12:31:27 AM CET  Success

Remove plug-in's Oracle home             12/13/24 12:31:27 AM CET  12/13/24 12:32:18 AM CET  Failed

---------------------------------------- ------------------------- ------------------------- ----------

Diagnostic information for the failed step
---------------------------------------- ------------------------- ------------------------- ----------
Step name            : Remove plug-in's Oracle home
Log file             : /u02/app/oracle/middleware/cfgtoollogs/pluginca/plugin_undeployment_4/deinstall_2024-12-13_00-22-58.log
Trace file           : /u02/app/oracle/middleware/cfgtoollogs/pluginca/plugin_undeployment_4/deinstall_2024-12-13_00-22-58.log
Host name            : oemsrv.oralocal
Error message        : Server-side plug-in undeployment failed for plug-in oracle.sysman.orhc:13.4.1.0.0:0 with the message Error occurred while deleting plug-in Oracle Home: Error: Plugin featureset deinstallation failed for oracle.sysman.orhc.oms.plugin:13.4.1.0.0. Plug-in configuration for any dependent plug-ins (if any are chosen) will also be aborted. Contact Oracle Support
---------------------------------------- ------------------------- ------------------------- ----------
[oracle@oemsrv ~]$

As you can see above it failed. But failed in the last step while removing the folder from O.S. Since the installation is out-of-place for EM 24ai, is possible to continue since the metadata about the plugin was marked as removed. If fails for another reason, please contact Oracle support.

Fixing emkey

The emkey needs to be stored inside the EM catalog for the upgrade. It is not the case that is a security flaw, but is needed for the upgrade process. Ignore the message that EMKey “configured properly”. This is the expected behavior for normal usage, but not for the upgrade.

So, we need to load it inside the repository:

[oracle@oemsrv ~]$ $OMS_HOME/bin/emctl status emkey
Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved.
Enter Enterprise Manager Root (SYSMAN) Password :
The EMKey is configured properly.
[oracle@oemsrv ~]$
[oracle@oemsrv ~]$
[oracle@oemsrv ~]$ $OMS_HOME/bin/emctl config emkey -copy_to_repos
Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved.
Enter Enterprise Manager Root (SYSMAN) Password :
The EMKey has been copied to the Management Repository. This operation will cause the EMKey to become unsecure.
After the required operation has been completed, secure the EMKey by running "emctl config emkey -remove_from_repos".
[oracle@oemsrv ~]$
[oracle@oemsrv ~]$ $OMS_HOME/bin/emctl status emkey
Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved.
Enter Enterprise Manager Root (SYSMAN) Password :
The EMKey  is configured properly, but is not secure. Secure the EMKey by running "emctl config emkey -remove_from_repos".
[oracle@oemsrv ~]$

If you get some issues, you can check this note from MOS EM13C : emkey copy failed with error “Failed to get the EMKey from Management Repository” (Doc ID 2543058.1).

Fixing job_queue_processes

The job_queue_processes parameter for the database/pdb that stores your EM catalog needs to be 0. It is an easy fix and prevents any job from being executed during the upgrade (on the database side):

[oracle@oemsrv ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Dec 13 20:41:33 2024
Version 19.22.0.0.0

Copyright (c) 1982, 2023, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.22.0.0.0

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 OEMPDB                         READ WRITE NO
SQL> alter session set container = OEMPDB;

Session altered.

SQL> show parameter job_queue_processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes                  integer     50
SQL> alter system set job_queue_processes = 0 scope = memory sid = '*';

System altered.

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.22.0.0.0
[oracle@oemsrv ~]$

Continuing the Upgrade the EM to 24ai

After that, we can continue the process and you can recheck and have a clean list:

And going next it will tell info about the JVM:

The next will check the plugins that you have deployed at EM:

And you need to choose to upgrade them:

After will request the weblogic password and the base for gc_inst folder:

Next, it will process and ask you if want to change some ports:

Continuing you will have the review:

And the installation/upgrade will start:

In my case, in the last step, I had one error related to the Agent upgrade:

And checking for the log I saw an error related to the update of the inventory (STEP: updateInventory):

INFO: oracle.sysman.top.oms:The Agent emStateDir location passed is /u02/app/oracle/agent241/agent_inst
INFO: oracle.sysman.top.oms: The log file is /u02/app/oracle/agent241/agent_inst/install/logs/agentplugindeploy_2024_12_13_23_43_51.log
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:46:26 PM oracle.sysman.upgrade.agent.UpgradeAgentInstaller runUpgradeConfig
INFO: oracle.sysman.top.oms:INFO: Command: /u02/app/oracle/agent241/agent_24.1.0.0.0/perl/bin/perl -I /u02/app/oracle/agent241/agent_24.1.0.0.0/perl/lib /u02/app/oracle/agent241/agent_24.1.0.0.0/bin/AgentPluginDeploy.pl -ignoreUnzip  -oracleHome /u02/app/oracle/agent241/agent_24.1.0.0.0 -agentDir /u02/app/oracle/agent241/agent_24.1.0.0.0 -pluginIdsInfoFile /u02/app/oracle/agent/agent_inst/install/plugins_upgrade.txt -action upgrade -forceConfigure -dont_restart -emStateDir /u02/app/oracle/agent241/agent_inst -emctlPath /u02/app/oracle/agent241/agent_inst/bin/emctl_upgrade completed with status=0
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:46:26 PM oracle.sysman.upgrade.agent.UpgradeAgentInstaller runUpgradeConfig
INFO: oracle.sysman.top.oms:INFO: Command: /u02/app/oracle/agent241/agent_24.1.0.0.0/perl/bin/perl -I /u02/app/oracle/agent241/agent_24.1.0.0.0/perl/lib /u02/app/oracle/agent241/agent_24.1.0.0.0/bin/AgentPluginDeploy.pl -ignoreUnzip  -oracleHome /u02/app/oracle/agent241/agent_24.1.0.0.0 -agentDir /u02/app/oracle/agent241/agent_24.1.0.0.0 -pluginIdsInfoFile /u02/app/oracle/agent/agent_inst/install/plugins_upgrade.txt -action upgrade -forceConfigure -dont_restart -emStateDir /u02/app/oracle/agent241/agent_inst -emctlPath /u02/app/oracle/agent241/agent_inst/bin/emctl_upgrade completed successfully.
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:46:26 PM oracle.sysman.upgrade.agent.UpgradeAgentInstaller runUpgradeConfig
INFO: oracle.sysman.top.oms:INFO: Executing command: /u02/app/oracle/agent241/agent_inst/bin/emctl_upgrade update_inventory plugin
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:46:27 PM oracle.sysman.upgrade.agent.AgentInstallerUtil$StreamGobbler run
INFO: oracle.sysman.top.oms:INFO: Oracle Enterprise Manager 24ai Release 1
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:46:27 PM oracle.sysman.upgrade.agent.AgentInstallerUtil$StreamGobbler run
INFO: oracle.sysman.top.oms:INFO: Copyright (c) 1996, 2024 Oracle Corporation.  All rights reserved.
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:46:30 PM oracle.sysman.upgrade.agent.AgentInstallerUtil$StreamGobbler run
INFO: oracle.sysman.top.oms:INFO: EMD update_inventory plugin failed: Agent may be running (status=3)
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:46:30 PM oracle.sysman.upgrade.agent.AgentInstallerUtil$StreamGobbler run
INFO: oracle.sysman.top.oms:INFO: Plugin homes:
…
…
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:47:03 PM oracle.sysman.upgrade.agent.AgentInstallerUtil$StreamGobbler run
INFO: oracle.sysman.top.oms:INFO: Agent is already running
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:47:03 PM oracle.sysman.upgrade.agent.AgentInstallerUtil$StreamGobbler run
INFO: oracle.sysman.top.oms:INFO: Plugin homes:
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:47:03 PM oracle.sysman.upgrade.agent.AgentInstallerUtil$StreamGobbler run
INFO: oracle.sysman.top.oms:INFO: Plugin homes:
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:47:03 PM oracle.sysman.upgrade.agent.AgentInstallerUtil execCommand
INFO: oracle.sysman.top.oms:SEVERE: STDERR:
INFO: oracle.sysman.top.oms:
INFO: oracle.sysman.top.oms:STDOUT=
INFO: oracle.sysman.top.oms:
INFO: oracle.sysman.top.oms:Oracle Enterprise Manager Cloud Control 13c Release 5
INFO: oracle.sysman.top.oms:Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved.
INFO: oracle.sysman.top.oms:Agent is already running
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:47:03 PM oracle.sysman.upgrade.agent.AgentInstallerUtil restoreDir
INFO: oracle.sysman.top.oms:INFO: /u02/app/oracle/agent/agent_inst/bin/emctl start agent completed with status=0
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:47:03 PM oracle.sysman.upgrade.agent.AgentInstallerUtil writeFile
INFO: oracle.sysman.top.oms:INFO: Writing following contents to /u02/app/oracle/agent/agent_inst/install/logs/error.txt file:
INFO: oracle.sysman.top.oms:CAUSE: The emctl update_inventory plugin command failed.
INFO: oracle.sysman.top.oms:STEP: updateInventory
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:47:03 PM oracle.sysman.upgrade.agent.UpgradeAgentInstaller configAgent
INFO: oracle.sysman.top.oms:INFO: Agent Upgrade configuration end time:2024-12-13_23-47-03-PM
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:47:03 PM oracle.sysman.upgrade.agent.UpgradeAgentInstaller configAgent
INFO: oracle.sysman.top.oms:INFO: Agent Upgrade Installer exited with exit code:1
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:47:03 PM oracle.sysman.upgrade.AgentUpgradeAssistant main
INFO: oracle.sysman.top.oms:SEVERE: Agent Upgrade Configuration has failed
INFO: oracle.sysman.top.oms:Dec 13, 2024 11:47:03 PM oracle.sysman.upgrade.AgentUpgradeAssistant main
INFO: oracle.sysman.top.oms:INFO: AgentUpgradeConfiguration:agent configuration finished with status = false
INFO: oracle.sysman.top.oms:Process exited with code 1
SEVERE: oracle.sysman.top.oms:Logging Error details:
SEVERE: oracle.sysman.top.oms:Agent Upgrade Configuration failed.
INFO: oracle.sysman.top.oms:AgentUpgradeConfiguration:agent configuration finished with status = false
INFO: oracle.sysman.top.oms:AgentUpgradeConfiguration:agent upgrade configuration finished with status false

And checking the log was possible to see that there was no critical/blocker step. The upgrade was running fine, with moves and file deletion. May be related to some timeout (my lab is not server grade) while waiting to stop the old agent. So, I retried and it worked after that. BUT, in your case (case occurs) read the logs and open SR if needed:

And I executed the allroot.sh script as requested:

[root@oemsrv ~]# /u02/app/oracle/middleware241/oms_home/allroot.sh

Starting to execute allroot.sh .........

Starting to execute /u02/app/oracle/middleware241/oms_home/root.sh ......
Check /u02/app/oracle/middleware241/oms_home/install/root_oemsrv.oralocal_2024-12-13_23-56-13-186987179.log for the output of root script
Finished execution of  /u02/app/oracle/middleware241/oms_home/root.sh ......


Starting to execute /u02/app/oracle/agent241/agent_24.1.0.0.0/root.sh ......

Finished product-specific root actions.
/etc exist
Finished execution of  /u02/app/oracle/agent241/agent_24.1.0.0.0/root.sh ......
[root@oemsrv ~]#
[root@oemsrv ~]# cat /u02/app/oracle/middleware241/oms_home/install/root_oemsrv.oralocal_2024-12-13_23-56-13-186987179.log
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u02/app/oracle/middleware241/oms_home
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
/etc exist
/u02/app/oracle/middleware241/oms_home
[root@oemsrv ~]#

And after, everything was fine and with success:

And here in this RAW output file, you can see the information that appears in the sessions where you called the em24100_linux64.bin. Even calling in one Friday 13, was fine. After the installation, all the logs from /tmp will be copied to your oraInvenotry (/u02/app/oraInventory/logs in my case). The agent log will be copied to your cfgtoollogs/oui of your new agent home folder (/u02/app/oracle/agent241/agent_24.1.0.0.0/cfgtoollogs/oui/ in my case).

New interface

The process of login continues the same and the interface is pretty similar to the previous one.

I do not have Engineered Systems monitored by this EM, but the plugins changed a lot for them (please see the event in which I hinted you to participate). And the architecture of the agent as well. Now, more types of deployment are available and can be used.

Conclusion

The upgrade process from EM 13.5 to EM 24ai (24.1.0.0.0) is quite simple. I used the method end-to-end that install and update everything in one step. My environment is quite simple and not complex, so, was simple to upgrade the agent and plugins. The official documentation was not released yet (when I published this post – I will add it here when it’s available docs was released, can be checked here) , so, part of the process I needed to base how was done in 13.5.

If you have special plugins and a complex system I expect more difficulty in upgrading due to some missing requirements. And please, in case of doubts or blocker issues, open on SR with support.

 

Disclaimer: “The postings on this site are my own and don’t necessarily represent my actual employer positions, strategies, or opinions. The information here was edited to be useful for general purposes, and specific data and identifications were removed to allow reach the generic audience and to be useful for the community. Post protected by copyright.

Leave a Reply

Your email address will not be published. Required fields are marked *