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:
#--------------------------------------------------------------------------------
#Following are mandatory parameters
#--------------------------------------------------------------------------------
OMS_HOST=oem24ai
EM_UPLOAD_PORT=****
AGENT_REGISTRATION_PASSWORD=****
#--------------------------------------------------------------------------------
#Following are optional parameters
#--------------------------------------------------------------------------------
#b_startAgent=<Value Unspecified>
AGENT_BASE_DIR=/mysql/app/oracle/agent
AGENT_INSTANCE_HOME=/mysql/app/oracle/agent/agent_inst
AGENT_PORT=3874
ORACLE_HOSTNAME=mysql01
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 😉 )
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
**.**.**.** mysql01 mysql01
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.
OK, let’s try with the parameter ORACLE_HOSTNAME
[sqlbar@mysql01 agent_sw]$ ./agentDeploy.sh AGENT_BASE_DIR=/mysql/app/oracle/agent ORACLE_HOSTNAME=mysql01 RESPONSE_FILE=/mysql/software/agent_sw/agent_bar.rsp -force
But that didn’t help either.
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…
So, let’s try with the Parameter -ignorePrereqs
[sqlbar@mysql01 agent_sw]$ ./agentDeploy.sh AGENT_BASE_DIR=/mysql/app/oracle/agent RESPONSE_FILE=/mysql/software/agent_sw/agent_bar.rsp -ignorePrereqs -force
That worked! Fine.
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.
[sqlbar@mysql01:/mysql/app/oracle/agent] $ /mysql/app/oracle/agent/agent_24.1.0.0.0/perl/bin/perl /mysql/app/oracle/agent/agent_24.1.0.0.0/sysman/install/AgentDeinstall.pl -agentHome /mysql/app/oracle/agent/agent_24.1.0.0.0
Then I installed the agent like the steps before, but at this try I used the parameter INVENTORY_LOCATION. The specified directory must already exist.
[sqlbar@mysql01 agent_sw]$ ./agentDeploy.sh AGENT_BASE_DIR=/mysql/app/oracle/agent RESPONSE_FILE=/mysql/software/agent_sw/agent_bar.rsp -ignorePrereqs -force INVENTORY_LOCATION=/mysql/app/oraInventory
That worked fine. The agent was installed successfully and the oraInventory was created on the right directory.
This paramater can also be used in the GUI / webconsole:

All other fields have to filled up as usally.
Hope, that helps!
