This blog entry is not really anything special. But I had one error and noticed something that is perhaps not entirely uninteresting.
For my presentation at the DOAG database in Rust, I installed an agent on a MySQL host. OK, MySQL is also Oracle, but no Oracle database 😉
I did not do this via the GUI / webconsole, but manually via the agentDeploy.sh script. I copied the agent software to my MySQL host and created the following responsefile:
The host and the operating system were installed for MySQL not for Oracle. Therefor I got some of prerequisite checks warnings and errors.
My first try looked like:
[sqlbar@mysql01 agent_sw]$ ./agentDeploy.sh AGENT_BASE_DIR=/mysql/app/oracle/agent RESPONSE_FILE=/mysql/software/agent_sw/agent_bar.rsp
The space available is .... 9642 MB
Executing command : /mysql/app/oracle/agent/agent_24.1.0.0.0/jdk/jre/bin/java -classpath /mysql/app/oracle/agent/agent_24.1.0.0.0/jlib/agentInstaller.jar:/mysql/app/oracle/agent/agent_24.1.0.0.0/oui/modules/OraInstaller.jar oracle.sysman.agent.installer.AgentInstaller /mysql/app/oracle/agent/agent_24.1.0.0.0 /mysql/software/agent_sw /mysql/app/oracle/agent $args -prereq
AGENT_ins home is:AGENT_BASE_DIR=/mysql/app/oracle/agentoraclehome is:/mysql/app/oracle/agent/agent_24.1.0.0.0
log loction is setlog
The oraclehome /mysql/app/oracle/agent/agent_24.1.0.0.0
Agent deployment log location: /mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/agentDeploy/agentDeploy_2025-01-17_10-35-05-AM.log
Agent deployment completed successfully.
Validating the OMS Host and Port completed.
/mysql/software/agent_sw/agentcore.bin -ignoreSysPrereqs -prereqChecker -entryPoint oracle.sysman.top.agent_Complete -silent -ignoreSysPrereqs -detailedExitCodes -responseFile /mysql/app/oracle/agent/agentInstall.rsp -J-DORACLE_HOSTNAME=mysql01 -J-DAGENT_PORT=3872 -J-Djava.io.tmpdir=/mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/prereqlogs -J-DAGENT_BASE_DIR=/mysql/app/oracle/agent -J-DOMS_HOST=oem24ai -J-DEM_UPLOAD_PORT=4903
Launcher log file is /mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/prereqlogs/OraInstall2025-01-17_10-35-22AM/launcher2025-01-17_10-35-22AM.log.
Checking swap space: must be greater than 512 MB. Actual 2047 MB Passed
Checking if this platform requires a 64-bit JVM. Actual 64 Passed (-d64 flag is not required)
Checking temp space: must be greater than 300 MB. Actual 8370 MB Passed
Preparing to launch the Oracle Universal Installer from /mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/prereqlogs/OraInstall2025-01-17_10-35-22AM
Oracle Prerequisite Checker Version 13.9.4.0.0 Production
Copyright (C) 1999, 2024, Oracle and/or its affiliates.
Starting execution of prerequisite checks
Total No of checks: 11
Performing check for CertifiedVersions_agent
Is the software certified on the current operating system?
Expected result: One of oracle-8, oracle-7, SuSE-11, SuSE-12, SuSE-15, redhat-7, redhat-8, oracle-9, ubuntu-22, debian-11
Actual Result: redhat-8.10
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for Packages_agent
Are the required packages installed on the current operating system?
Checking for make-3.82-21; Not found. Failed
Checking for binutils-2.23; found binutils-2.30-123.0.2.el8-x86_64. Passed
Checking for libaio-0.3.109-12; found libaio-0.3.112-1.el8-x86_64. Passed
Checking for glibc-common-2.17-55; found glibc-common-2.28-251.0.2.el8_10.5-x86_64. Passed
Checking for libstdc++-4.8.2-16; found libstdc++-8.5.0-22.0.1.el8_10-x86_64. Passed
Checking for sysstat-10.1.5-4; Not found. Failed
Checking for libnsl-2.28-18; Not found. Failed
Check complete. The overall result of this check is: Failed
Check complete: Failed
Problem: Some required packages are missing.
Recommendation: You may actually have installed packages which have obsoleted these, in which case you can successfully continue with the install. If you have not, it is recommended that you do not continue.
========================================================
Performing check for CompatibilityCheck
Is the software compatible with the current operating system?
sourceLoc is :/mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/prereqlogs/OraInstall2025-01-17_10-35-22AM/stage/shiphomeproperties.xml
ARU ID is:226
Platform is :x86_64
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for AvailableInventorySpace
Checking for sufficient disk space in the Inventory Location
Expected result: 100.0MB
Actual Result: 4711MB
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for InventoryWritableCheck
Checking for write permissions on the inventory.
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for TZRegionCheck
Checking TimeZone settings...
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for AgentBaseDirCheck
Is the ownership of the agent base directory valid?
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for PortCheck
Checking for port availability and hostname validity...
Host name to check mysql01
Host name is not valid
Getting Inet Addresses for host mysql01
Trying for host : mysql01/**.**.**.** and port : 3874
Trying for host : /**.**.**.** and port : 3874
** Agent Port Check completed successfully.**
Agent port to use 3874
===Expected Result final Port 3874 must be available on all IP addresses associated with host mysql01.
Expected result: Port 3872 must be available on all IP addresses associated with host mysql01.
Actual Result: 3874
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for OracleHomeCheck
Checking whether the old oracle home entry is present in the central inventory ...
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for CheckHostName
Is the host name valid?
value of oracle_hostname:mysql01
Expected result: Fully qualified domain name, for example foo.mydomain.com
Actual Result: mysql01. Ensure that you provide a fully qualified domain name.
Check complete. The overall result of this check is: Failed
Check complete: Failed
Problem: The host name specified for the installation or retrieved from the system is incorrect.
Recommendation: Ensure that your host name meets the following conditions:
(1) Does NOT contain localhost.localdomain.
(2) Does NOT contain any IP address.
(3) Ensure that the /etc/hosts file has the host details in the following format.
<IP address> <host.domain> <short hostname>
If you do not have the permission to edit the /etc/hosts file,
then while invoking the installer pass the host name using the argument ORACLE_HOSTNAME.
========================================================
Performing check for CheckOMSHostandPort
Checking for the OMS Host and EM Upload Port
Expected result: OMS Host: oem24ai, EM Upload Port: **** provided is valid
Actual Result: OMS Host: oem24ai, EM Upload Port: **** provided is valid
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
PrereqChecks complete
The log(s) can be found here: /mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/prereqlogs/OraInstall2025-01-17_10-35-22AM.
ERROR: Installer execution failed (2).
Agent Prereqs failed.
Check the logs at /mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/prereqlogs
OK, let’s install the needed packages. (The installation of the needed package you should know, so I do not show this here. If not please ask your system administrator… )
Second try:
[sqlbar@mysql01 agent_sw]$ ./agentDeploy.sh AGENT_BASE_DIR=/mysql/app/oracle/agent RESPONSE_FILE=/mysql/software/agent_sw/agent_bar.rsp -force
The space available is .... 9642 MB
Executing command : /mysql/app/oracle/agent/agent_24.1.0.0.0/jdk/jre/bin/java -classpath /mysql/app/oracle/agent/agent_24.1.0.0.0/jlib/agentInstaller.jar:/mysql/app/oracle/agent/agent_24.1.0.0.0/oui/modules/OraInstaller.jar oracle.sysman.agent.installer.AgentInstaller /mysql/app/oracle/agent/agent_24.1.0.0.0 /mysql/software/agent_sw /mysql/app/oracle/agent $args -prereq
AGENT_ins home is:AGENT_BASE_DIR=/mysql/app/oracle/agentoraclehome is:/mysql/app/oracle/agent/agent_24.1.0.0.0
log loction is setlog
The oraclehome /mysql/app/oracle/agent/agent_24.1.0.0.0
Agent deployment log location: /mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/agentDeploy/agentDeploy_2025-01-17_10-47-31-AM.log
Agent deployment completed successfully.
Validating the OMS Host and Port completed.
-force
/mysql/software/agent_sw/agentcore.bin -ignoreSysPrereqs -prereqChecker -entryPoint oracle.sysman.top.agent_Complete -silent -ignoreSysPrereqs -detailedExitCodes -responseFile /mysql/app/oracle/agent/agentInstall.rsp -J-DORACLE_HOSTNAME=mysql01 -J-DAGENT_PORT=3872 -J-Djava.io.tmpdir=/mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/prereqlogs -J-DAGENT_BASE_DIR=/mysql/app/oracle/agent -J-DOMS_HOST=oem24ai -J-DEM_UPLOAD_PORT=4903
Launcher log file is /mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/prereqlogs/OraInstall2025-01-17_10-47-45AM/launcher2025-01-17_10-47-45AM.log.
Checking swap space: must be greater than 512 MB. Actual 2047 MB Passed
Checking if this platform requires a 64-bit JVM. Actual 64 Passed (-d64 flag is not required)
Checking temp space: must be greater than 300 MB. Actual 8370 MB Passed
Preparing to launch the Oracle Universal Installer from /mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/prereqlogs/OraInstall2025-01-17_10-47-45AM
Oracle Prerequisite Checker Version 13.9.4.0.0 Production
Copyright (C) 1999, 2024, Oracle and/or its affiliates.
Starting execution of prerequisite checks
Total No of checks: 11
Performing check for CertifiedVersions_agent
Is the software certified on the current operating system?
Expected result: One of oracle-8, oracle-7, SuSE-11, SuSE-12, SuSE-15, redhat-7, redhat-8, oracle-9, ubuntu-22, debian-11
Actual Result: redhat-8.10
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for Packages_agent
Are the required packages installed on the current operating system?
Checking for make-3.82-21; found make-1:4.2.1-11.el8-x86_64. Passed
Checking for binutils-2.23; found binutils-2.30-123.0.2.el8-x86_64. Passed
Checking for libaio-0.3.109-12; found libaio-0.3.112-1.el8-x86_64. Passed
Checking for glibc-common-2.17-55; found glibc-common-2.28-251.0.2.el8_10.5-x86_64. Passed
Checking for libstdc++-4.8.2-16; found libstdc++-8.5.0-22.0.1.el8_10-x86_64. Passed
Checking for sysstat-10.1.5-4; found sysstat-11.7.3-13.0.2.el8_10-x86_64. Passed
Checking for libnsl-2.28-18; found libnsl-2.28-251.0.2.el8_10.5-x86_64. Passed
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for CompatibilityCheck
Is the software compatible with the current operating system?
sourceLoc is :/mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/prereqlogs/OraInstall2025-01-17_10-47-45AM/stage/shiphomeproperties.xml
ARU ID is:226
Platform is :x86_64
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for AvailableInventorySpace
Checking for sufficient disk space in the Inventory Location
Expected result: 100.0MB
Actual Result: 4705MB
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for InventoryWritableCheck
Checking for write permissions on the inventory.
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for TZRegionCheck
Checking TimeZone settings...
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for AgentBaseDirCheck
Is the ownership of the agent base directory valid?
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for PortCheck
Checking for port availability and hostname validity...
Host name to check mysql01
Host name is not valid
Getting Inet Addresses for host mysql01
Trying for host : mysql01/**.**.**.** and port : 3874
Trying for host : /**.**.**.** and port : 3874
** Agent Port Check completed successfully.**
Agent port to use 3874
===Expected Result final Port 3874 must be available on all IP addresses associated with host mysql01.
Expected result: Port 3874 must be available on all IP addresses associated with host mysql01.
Actual Result: 3874
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for OracleHomeCheck
Checking whether the old oracle home entry is present in the central inventory ...
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
Performing check for CheckHostName
Is the host name valid?
value of oracle_hostname:mysql01
Expected result: Fully qualified domain name, for example foo.mydomain.com
Actual Result: mysql01. Ensure that you provide a fully qualified domain name.
Check complete. The overall result of this check is: Failed
Check complete: Failed
Problem: The host name specified for the installation or retrieved from the system is incorrect.
Recommendation: Ensure that your host name meets the following conditions:
(1) Does NOT contain localhost.localdomain.
(2) Does NOT contain any IP address.
(3) Ensure that the /etc/hosts file has the host details in the following format.
<IP address> <host.domain> <short hostname>
If you do not have the permission to edit the /etc/hosts file,
then while invoking the installer pass the host name using the argument ORACLE_HOSTNAME.
========================================================
Performing check for CheckOMSHostandPort
Checking for the OMS Host and EM Upload Port
Expected result: OMS Host: oem24ai, EM Upload Port: **** provided is valid
Actual Result: OMS Host: oem24ai, EM Upload Port: **** provided is valid
Check complete. The overall result of this check is: Passed
Check complete: Passed
========================================================
PrereqChecks complete
The log(s) can be found here: /mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/prereqlogs/OraInstall2025-01-17_10-47-45AM.
ERROR: Installer execution failed (2).
Agent Prereqs failed.
Check the logs at /mysql/app/oracle/agent/agent_24.1.0.0.0/cfgtoollogs/prereqlogs
Uff – again the error because of the hostname.
My /etc/hosts file looked like this (in reality there is an ip adress 😉 )
And in my lab I do not have a domainname for my hosts, so I do not have any fully qualified domain name. I simple named my host “mysql01”. And in the output of the installation process there is the following statement: “If you do not have the permission to edit the /etc/hosts file, then while invoking the installer pass the host name using the argument ORACLE_HOSTNAME.“ I know this parameter for an installation of the OEM itself, but not for an agent installation, but OK.
So let’s use the help of the agentDeploy.sh script:
[sqlbar@mysql01 agent_sw]$ ./agentDeploy.sh -help
Usage : agentDeploy.sh AGENT_BASE_DIR OMS_HOST EM_UPLOAD_PORT [AGENT_REGISTRATION_PASSWORD RESPONSE_FILE AGENT_INSTANCE_HOME -prereqOnly -softwareOnly -invPtrLoc -help -debug -configOnly -ignorePrereqs -noRollBack -executeRootsh PROPERTIES_FILE]
AGENT_BASE_DIR - Agent base directory location
OMS_HOST - OMS Hostname
EM_UPLOAD_PORT - OMS Upload Port
AGENT_REGISTRATION_PASSWORD - Agent registration password to secure the agent
RESPONSE_FILE - Response file location
AGENT_INSTANCE_HOME - Agent instance home is the location of agent state directory
PLUGIN_RSPFILE - Response file location used for plugin configuration
PROPERTIES_FILE - Agent properties file location that contains the property name and property value which will be set during the deployment
s_agentHomeName - Customized agent home name, if not passed default home name will be assigned
-prereqOnly - Agent installer will be invoked in prereq mode
-softwareOnly - Installs only the files
-invPtrLoc - Inventory pointer location file
-help - Usage
-debug - More debug messages will be logged
-configOnly - Performs agent configuration only
-forceConfigure - Performs agent configuration even if oms is unavailable
-ignorePrereqs - Skips the agent prereqs
-LOG_DIR - Customize log location by passing LOG_DIR=/scratch/log
Example1:
agentDeploy.sh AGENT_BASE_DIR=/scratch/agent OMS_HOST=hostname.domain.com EM_UPLOAD_PORT=1000 AGENT_REGISTRATION_PASSWORD=2Bor02B4
This command is expected to do the complete agent install and configuration with the provided inputs.
Example2:
agentDeploy.sh AGENT_BASE_DIR=/scratch/agt RESPONSE_FILE=/scratch/agent.rsp -softwareOnly -invPtrLoc /scratch/agent/oraInst.loc -debug
This command is expected to copy the agent bits to the agent base directory.
Example3:
agentDeploy.sh AGENT_BASE_DIR=/scratch/agent OMS_HOST=hostname.domain.com EM_UPLOAD_PORT=1000 -forceConfigure
This command is expected to do the agent install and also force the agent configuration even though the oms host and port are not available.
Example4:
agentDeploy.sh AGENT_BASE_DIR=/scratch/agent AGENT_INSTANCE_HOME=/scratch/agent/agent_inst -configOnly
This command is expected to do the agent configuration only with the provided inputs.
Example5:
agentDeploy.sh AGENT_BASE_DIR=/scratch/agent s_agentHomeName=myAgent -ignorePrereqs
This command is expected to skip the prereqs and then continue with the agent deployment also notice in the inventory that instead of the default home name, myAgent home name will be assigned for the agent home.
Example6:
agentDeploy.sh AGENT_BASE_DIR=/scratch/agent PLUGIN_RSPFILE=/scratch/plugin.txt PROPERTIES_FILE=/scratch/agent.properties
Let's say the content of the /scratch/agent.properties file is enableAutoTuning=false, then this command with deploy and configure the agent with the enableAutoTuning property set.
Interesting, there is no entry for the parameter ORACLE_HOSTNAME… hm…
I checked the installation and then I noticed, that the oraInventory was created in the HOME-directory of the installing user. That is not that, what I wanted – uff.
A symbolic link could be a solution, but I don’t think that’s a good idea. Symbolic links usually cause problems sooner or later.
As an Oracle DBA I always let the installer create the oraInventory in /u01/app/ or /opt/app or something similiar. But here I have a non-Oracle database host.
My agent installation, in this example, is /mysql/app/oracle/agent. That is not really a recommended path, but this is only my lab 😉 So, I decided to let the installer create the oraInvenory under /mysql/app/
But first I had to deinstall the agent, but that is not really difficult.
Additionally I downloaded the plugin for the Oracle Database Appliance, because I wanted to have this during installation.
So, I started the installation with the following parameters, where -J-Djava.io.tmpdir points to a directory with enouph space and the PLUGIN_LOCATION points to the directory, where the Oracle Database Appliance plugin OPAR-file resides.
After a while the installation started. I choosed the “Advanced Install”
I skipped Software Updates.
Because I checked the system with the EM Prerequisite Kit, I ignored the warning about ip_local_port_range.
I filled in the Middleware home, the home of the agent and the hostname.
Then I got the following warning:
In my lab, I do not have a full qualified name, so I ignored it.
Because I started the installer with the parameter PLUGIN_LOCATION, I could choose the Oracle Database Appliance plugin.
Without the parameter and the OPAR-file, the choice to install the plugin does not appear.
I just filled in the needed weblogic configuration details
Then I provided the needed database information. I do not use SSL in my lab, so I leaved all blank
Then I decided to use the user SYS. You can here provide another username to avoid using SYS for reporitory operations.
Although I before ran the EM Prerequisite Kit, I got again a warning about the shared_pool_size. It should be at least 1024 M, so I changed this in my database.
SQL> show parameter shared_pool_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
shared_pool_size big integer 512M
SQL> alter system set shared_pool_size=1024M;
System altered.
SQL> alter session set container=emrep_pdb;
Session altered.
SQL> show parameter shared_pool_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
shared_pool_size big integer 512M
SQL> alter system set shared_pool_size=1024M;
System altered.
After changing this parameter in the database, the pre-checks ran fine.
And again (it happened also with OEM 13.5), Oracle warns about the characterset. My database has form the start the needed character set AL32UTF8.
Why is the character set check not included in the pre-checks? This is unsettling and irritating, because I then checked the character set again in the database anyway.
SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
PARAMETER VALUE
-------------------------------------------------- --------------------------------------------------
NLS_CHARACTERSET AL32UTF8
So, everything is fine – but confusing 😉
Then I provided the needed OEM configuration details
Path to the Oracle Software Library, remember, if you install two OEMs, this location must be shared on both hosts!
Then I used the default ports, in this screen you can edit your own ports
After the port screen, I saw the summary. Do not forget to check it!
Then the installation started. It took a while…
As all configuation assistants ran fine, I ran the root-script
After I confirmed the run of the root-script, the installation was successfully completed
That’s it!
I think, in the installation, there were neither a suprise nor something new. If all requirements are met, the installation runs fine and without any problem.
The questioner had the problem that the EM Prerequisite Kit was checking the kernel version of the operating system. This is a normal and necessary check. However the Kit found a version 4.x, but the Kit checked for version 5.x.
My recommendation was to open an SR, because either in the documentation of OEM24ai nor on MOS there was any information about the necessary kernel version.
In the morning the questioner (thanks to Charles M) had opened an SR at MOS and got the answer, that this is a bug.
So, if you get the same error, when you use the the EM Prerequisite Kit, you can ignore this error.
Maybe the same error occurs when you install OEM, because the same checks were made during installation. So, I think you can than ignore that there, too.
Last week I found by chance the Oracle Enterprise 24ai release 24.1.0.0 for download at edelivery.oracle.com. Today OEM24 is also available for download at https://www.oracle.com/enterprise-manager/downloads/
If you want to patch OEM with the latest release updates, you can find them very easily. There are various MOS notes that help you to find the current RU for the OEM. The easiest way is to use the MOS note:Enterprise Manager 13.5 Main Release Update List (Includes Plug-ins) (Doc ID 2760230.2)
But the RU only patches OEM itself, not the agents and not the Weblogic server. For the agent there is also the possibility to find the patch on the mentioned note. It is important to patch the agents promptly with the same RU after patching the OEM .
But where can you quickly and easily find the current PSU for the weblogic server on which OEM is installed? There is also a MOS note for this:My Oracle Support Recommended Patches for Oracle WebLogic Server and Oracle Fusion Middleware Products (Doc ID 859115.1) It describes how to search for the corresponding PSU.
Personally, I find that confusing 😉 In the OEM itself you have the possibility to look for all patches that should still be installed, not only for Weblogic. And here I would like to show you how I do this. I find this way easier 😉
My OEM is in the so-called “offline patching” mode. I download the current catalog (em_catalog.zip) via Setup – Provisioning and Patching – Offline Patching.
As soon as the associated job (Refresh From My Oracle Support) has run, you can view the recommended patches.
Find the recommended patches
In OEM go to “Enterprise – Provisioning and Patching – Patches & Updates”. The page looks very similar to the patch search in MOS. Under the link All Recommendations you will find all patches.
Depending on which target types are available in the OEM, all recommended patches are listed on the following page, including the one for Weblogic.
Using the patch number, you can now download and install the corresponding patch from MOS.