Skip to main content

Oracle Enterprise Manager 13.5 Installation

Oracle Enterprise Manager 13.5 installation on Linux

Introduction

Oracle Enterprise Manager (OEM) is Oracle's unified management platform for overseeing the full Oracle technology stack. It enables administrators to monitor, configure, and optimize Oracle Databases, Oracle Middleware, Oracle Applications, and Oracle Engineered Systems from a single console. OEM streamlines critical operations such as patching, configuration management, performance diagnostics, and lifecycle automation, keeping Oracle workloads secure, reliable, and high-performing. This article walks through configuring OEM on a Linux environment step by step.

Prerequisites

Below are the minimum requirements for a Linux environment:

  • CPU: 2 cores
  • RAM: 10GB
  • Disk space: 45GB (/u01) and 50GB (/oem)
  • OEM binary, downloadable here.
  • Root user or sudo access.
  • Firewall disabled.

Environment Used in This Guide

Hostname oem.oraeasy.com / 192.168.1.33
OS OL 7.3
OEM Version 13c Release 5 (13.5)
OMS Home /oem/app/oracle/middleware
Agent Base /oem/app/oracle/agent
Repository Database Name OEMDB
Database Version 19.27.0
Oracle Home /u01/app/oracle/product/19c/db_home

Step 1: Verify Redo Log Groups

The repository database needs enough redo log groups to avoid log file sync waits during installation. Check the current group count and size, add more groups if needed, then retire the undersized originals.


SQL> select name,open_mode,log_mode from v$database;

NAME      OPEN_MODE            LOG_MODE
--------- -------------------- ------------
OEMDB     READ WRITE           ARCHIVELOG

SQL> SELECT group#, status,bytes/1024/1024 AS size_mb FROM v$log ORDER BY group#; 

    GROUP# STATUS	size_mb
---------- ---------	------
         1 INACTIVE	200
         2 CURRENT	200
         3 INACTIVE	200

SQL> ALTER DATABASE ADD LOGFILE GROUP 4 '/u01/app/oracle/oradata/OEMDB/redo04.log' SIZE 1G;

Database altered.

SQL> ALTER DATABASE ADD LOGFILE GROUP 5 '/u01/app/oracle/oradata/OEMDB/redo05.log' SIZE 1G;

Database altered.

SQL> ALTER DATABASE ADD LOGFILE GROUP 6 '/u01/app/oracle/oradata/OEMDB/redo06.log' SIZE 1G;

Database altered.

SQL> SELECT group#, status FROM v$log ORDER BY group#; 

    GROUP# STATUS
---------- ----------------
         1 INACTIVE
         2 CURRENT
         3 INACTIVE
         4 UNUSED
         5 UNUSED
         6 UNUSED

6 rows selected.

SQL> ALTER DATABASE DROP LOGFILE GROUP 1;

Database altered.

SQL> alter system switch logfile;

System altered.

SQL> SELECT group#, status FROM v$log ORDER BY group#;

    GROUP# STATUS
---------- ----------------
         2 ACTIVE
         3 INACTIVE
         4 ACTIVE
         5 ACTIVE
         6 CURRENT

SQL> ALTER DATABASE DROP LOGFILE GROUP 3;

Database altered.

SQL> alter system checkpoint;

System altered.

SQL> SELECT group#, status FROM v$log ORDER BY group#;

    GROUP# STATUS
---------- ----------------
         2 INACTIVE
         4 INACTIVE
         5 CURRENT
         6 INACTIVE

SQL> ALTER DATABASE DROP LOGFILE GROUP 2;

Database altered.

SQL> ALTER DATABASE ADD LOGFILE GROUP 7 '/u01/app/oracle/oradata/OEMDB/redo07.log' SIZE 1G;

Database altered.

SQL> SELECT group#, status FROM v$log ORDER BY group#;

    GROUP# STATUS
---------- ----------------
         4 INACTIVE
         5 CURRENT
         6 INACTIVE
         7 UNUSED

Step 2: Verify the TNS Service and SYS Password

Confirm the repository database is reachable over the network and that the SYS credentials work before starting the installer.


[oracle@oem ~]$ tnsping oemdb

TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 16-AUG-2025 12:25:05

Copyright (c) 1997, 2025, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oem.oraeasy.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oemdb)))
OK (10 msec)
[oracle@oem ~]$
[oracle@oem ~]$ sqlplus sys@oemdb as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Aug 16 12:25:09 2025
Version 19.27.0.0.0

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

Enter password:

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

SQL> def
DEFINE _DATE           = "16-AUG-25" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "oemdb" (CHAR)
DEFINE _USER           = "SYS" (CHAR)
DEFINE _PRIVILEGE      = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1927000000" (CHAR)
DEFINE _EDITOR         = "vi" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0" (CHAR)
DEFINE _O_RELEASE      = "1927000000" (CHAR)
SQL>
SQL> select name,open_mode from v$database;

NAME      OPEN_MODE
--------- --------------------
OEMDB     READ WRITE

Step 3: Adjust Repository Database Parameters

OEM's repository has a specific set of parameter requirements. Back up the current settings with a pfile first, then apply the changes and bounce the database.


SQL> select name,open_mode,log_mode from v$database;

NAME      OPEN_MODE            LOG_MODE
--------- -------------------- ------------
OEMDB     READ WRITE           ARCHIVELOG

SQL> create pfile='/home/oracle/oemdb.ora' from spfile;

File created.

SQL> show parameter _allow_insert_with_update_check
SQL> show parameter session_cached_cursors

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
session_cached_cursors               integer     50

SQL> show parameter shared_pool_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
shared_pool_size                     big integer 0

SQL> show parameter processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     1
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
global_txn_processes                 integer     1
job_queue_processes                  integer     40
log_archive_max_processes            integer     4
processes                            integer     300
SQL>
SQL> show parameter "_allow_insert_with_update_check"

SQL> alter system set "_allow_insert_with_update_check"=true scope=both;

System altered.

SQL> alter system set session_cached_cursors=200 scope=spfile;

System altered.

SQL> alter system set shared_pool_size=600M scope=spfile;

System altered.

SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit                  big integer 2G
pga_aggregate_target                 big integer 0
SQL>
SQL> alter system set processes=600 scope=spfile;

System altered.

SQL> shut immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.

Total System Global Area 1979711112 bytes
Fixed Size                  8941192 bytes
Variable Size            1358954496 bytes
Database Buffers          603979776 bytes
Redo Buffers                7835648 bytes
Database mounted.
Database opened.
SQL>
SQL> show parameter _allow_insert_with_update_check

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
_allow_insert_with_update_check      boolean     TRUE

SQL> show parameter session_cached_cursors

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
session_cached_cursors               integer     200

SQL> show parameter shared_pool_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
shared_pool_size                     big integer 608M
SQL>
SQL> show parameter processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     1
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
global_txn_processes                 integer     1
job_queue_processes                  integer     40
log_archive_max_processes            integer     4
processes                            integer     600

Step 4: Create Required Directories and Place the Binary


[oracle@oem ~]$ mkdir -p /oem/app/oracle/middleware
[oracle@oem ~]$ mkdir -p /oem/app/oracle/agent
[oracle@oem ~]$
[oracle@oem ~]$ ll /oem/app/oracle/
total 0
drwxr-xr-x. 2 oracle oinstall 6 Aug 16 12:18 agent
drwxr-xr-x. 2 oracle oinstall 6 Aug 16 12:18 middleware
[oracle@oem ~]$
[oracle@oem ~]$ cd /oem/software/
[oracle@oem software]$
[oracle@oem software]$ ls -lrth
total 8.0G
-rwxrwxr-x. 1 oracle oinstall 1.5G Aug 16 12:19 em13500_linux64.bin
-rwxrwxr-x. 1 oracle oinstall 1.8G Aug 16 12:19 em13500_linux64-2.zip
-rwxrwxr-x. 1 oracle oinstall 2.0G Aug 16 12:19 em13500_linux64-3.zip
-rwxrwxr-x. 1 oracle oinstall 1.4G Aug 16 12:19 em13500_linux64-4.zip
-rwxrwxr-x. 1 oracle oinstall 1.4G Aug 16 12:19 em13500_linux64-5.zip

[oracle@oem software]$

Step 5: Start the Installation

The installer needs about 12GB of free space to extract into. If /tmp doesn't have that much, point it at another location with enough room.


[oracle@oem software]$ pwd
/oem/software
[oracle@oem software]$
[oracle@oem software]$ ./em13500_linux64.bin
ERROR: Temporary directory /tmp does not have enough free space. At least 12289 MB of free space are required.
Please input another directory or [Exit]: /u01/software/temp
Launcher log file is /u01/software/temp/OraInstall2025-08-16_12-28-40PM/launcher2025-08-16_12-28-40PM.log.
Extracting the installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . .
. . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . Done Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed Checking swap space: must be greater than 512 MB. Actual 4095 MB Passed Checking if this platform requires a 64-bit JVM. Actual 64 Passed (64-bit not required) Preparing to launch the Oracle Universal Installer from /u01/software/temp/OraInstall2025-08-16_12-28-40PM ScratchPathValue :/u01/software/temp/OraInstall2025-08-16_12-28-40PM Aug 16, 2025 12:34:18 PM org.apache.sshd.common.io.DefaultIoServiceFactoryFactory getIoServiceProvider INFO: No detected/configured IoServiceFactoryFactory using Nio2ServiceFactoryFactory .......................................................................................

Step 6: Walk Through the OEM Installer

Now the GUI installer window will open. Follow the steps below.

Select Advanced Install, then click Next.

OEM installer type selection screen with Advanced Install chosen

Select Skip, then click Next.

OEM installer software updates screen with Skip selected

Click Ignore to dismiss the prerequisite warnings.

OEM installer prerequisite check warnings screen

Click Next.

OEM installer installation type screen

Provide the OMS Home, Agent Base directory, and OEM server hostname, then click Next.

Setting OMS Home, Agent Base, and hostname in the OEM installer

Click Next.

OEM installer configuration summary continuation screen

Provide the password, then click Next.

Entering the installer password screen

Provide the repository database details, then click Next.

Entering repository database connection details in the OEM installer

Click Auto Fix.

OEM installer Auto Fix option for repository prerequisites

Click Next.

OEM installer continuing after Auto Fix

Click OK.

OEM installer confirmation dialog

Provide the SYSMAN and Agent Registration passwords, then click Next.

Setting SYSMAN and Agent Registration passwords in the OEM installer

Click Next.

OEM installer plug-in selection screen

Click Next.

OEM installer options review screen

Review the details, then click Install.

OEM installer final review and Install button

Note: The full installation can take 5-6 hours. Keep an eye on the database alert log during this stretch to catch any failure early.

Monitor the installation progress and related logs.

OEM installation progress screen
OEM installation progress continuing

If the installation appears to hang at this stage, as shown below, check whether the SYSMAN schema's optimizer statistics are locked and gather them if needed.

OEM installer appearing to hang during OMS configuration

Check Whether Stats Are Locked:
SQL> SELECT stattype_locked FROM dba_tab_statistics WHERE owner = 'SYSMAN'; STATT ----- ALL ALL ALL ALL ALL ALL ALL ALL ALL ALL ALL .... .... .... 5930 rows selected. Unlock the Stats and Gather Them:
SQL> EXEC DBMS_STATS.unlock_schema_stats('SYSMAN'); PL/SQL procedure successfully completed. SQL> SELECT stattype_locked FROM dba_tab_statistics WHERE owner = 'SYSMAN'; STATT ----- .... .... .... 5930 rows selected. SQL> EXEC DBMS_STATS.gather_schema_stats('SYSMAN'); PL/SQL procedure successfully completed.

Wait a while and the installation will move forward.

OEM installation resuming after stats gather

Execute the script as the root user, then click OK.

Prompt to run the root configuration script during OEM install

[root@oem ~]# /oem/app/oracle/middleware/allroot.sh

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

Starting to execute /oem/app/oracle/middleware/root.sh ......
Check /oem/app/oracle/middleware/install/root_oem.oraeasy.com_2025-08-16_18-19-43.log for the output of root script

Finished product-specific root actions.
/etc exist
Finished execution of  /oem/app/oracle/middleware/root.sh ......

Starting to execute /oem/app/oracle/agent/agent_13.5.0.0.0/root.sh ......

Finished product-specific root actions.
/etc exist
Finished execution of  /oem/app/oracle/agent/agent_13.5.0.0.0/root.sh ......
[root@oem ~]#

Installation is now complete. Review the details, then click Close.

OEM installer completion summary screen

Step 7: Check the OMS and Agent Status


[oracle@oem ~]$ cd /oem/app/oracle/middleware/bin
[oracle@oem bin]$ ./emctl status oms
Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved.
WebTier is Up
Oracle Management Server is Up
JVMD Engine is Up
[oracle@oem bin]$
[oracle@oem bin]$ ./emctl status oms -details
Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved.
Enter Enterprise Manager Root (SYSMAN) Password :
Console Server Host        : oem.oraeasy.com
HTTP Console Port          : 7788
HTTPS Console Port         : 7803
HTTP Upload Port           : 4889
HTTPS Upload Port          : 4903
EM Instance Home           : /oem/app/oracle/gc_inst/em/EMGC_OMS1
OMS Log Directory Location : /oem/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://oem.oraeasy.com:7803/em
Upload URL: https://oem.oraeasy.com:4903/empbs/upload

WLS Domain Information
Domain Name            : GCDomain
Admin Server Host      : oem.oraeasy.com
Admin Server HTTPS Port: 7102
Admin Server is RUNNING

Oracle Management Server Information
Managed Server Instance Name: EMGC_OMS1
Oracle Management Server Instance Host: oem.oraeasy.com
WebTier is Up
Oracle Management Server is Up
JVMD Engine is Up
[oracle@oem bin]$

[oracle@oem bin]$ cd /oem/app/oracle/agent/agent_13.5.0.0.0/bin
[oracle@oem bin]$ ./emctl status agent
Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved.
---------------------------------------------------------------
Agent Version          : 13.5.0.0.0
OMS Version            : 13.5.0.0.0
Protocol Version       : 12.1.0.1.0
Agent Home             : /oem/app/oracle/agent/agent_inst
Agent Log Directory    : /oem/app/oracle/agent/agent_inst/sysman/log
Agent Binaries         : /oem/app/oracle/agent/agent_13.5.0.0.0
Core JAR Location      : /oem/app/oracle/agent/agent_13.5.0.0.0/jlib
Agent Process ID       : 3038
Parent Process ID      : 2742
Agent URL              : https://oem.oraeasy.com:3872/emd/main/
Local Agent URL in NAT : https://oem.oraeasy.com:3872/emd/main/
Repository URL         : https://oem.oraeasy.com:4903/empbs/upload
Started at             : 2025-08-16 19:21:59
Started by user        : oracle
Operating System       : Linux version 4.1.12-61.1.18.el7uek.x86_64 (amd64)
Number of Targets      : 35
Last Reload            : (none)
Last successful upload                       : 2025-08-16 20:04:16
Last attempted upload                        : 2025-08-16 20:04:16
Total Megabytes of XML files uploaded so far : 0.14
Number of XML files pending upload           : 0
Size of XML files pending upload(MB)         : 0
Available disk space on upload filesystem    : 60.96%
Collection Status                            : Collections enabled
Heartbeat Status                             : Ok
Last attempted heartbeat to OMS              : 2025-08-16 20:06:20
Last successful heartbeat to OMS             : 2025-08-16 20:06:20
Next scheduled heartbeat to OMS              : 2025-08-16 20:07:20

---------------------------------------------------------------
Agent is Running and Ready
[oracle@oem bin]$

Step 8: Log In to the OEM Console

Open the console URL and sign in with the SYSMAN credentials set during installation.

https://192.168.1.33:7803/em

Oracle Enterprise Manager login page

Provide the credentials, then click Login.

Entering SYSMAN credentials on the OEM login page

Accept the license agreement.

OEM license agreement acceptance screen

This lands on the welcome page.

Oracle Enterprise Manager welcome page after first login

Click Enterprise, then Summary.

Navigating to the Enterprise Summary page in OEM
OEM Enterprise Summary dashboard

Step 9: Start and Stop OEM Services

These are the day-to-day commands for controlling OMS and the agent. Make sure the repository database and its listener are running before starting OMS.


Set the Environment:
[oracle@oem ~]$ export OMS_HOME=/oem/app/oracle/middleware [oracle@oem ~]$ export AGENT_HOME=/oem/app/oracle/agent/agent_13.5.0.0.0 To Start:
[oracle@oem ~]$ $OMS_HOME/bin/./emctl start oms [oracle@oem ~]$ $OMS_HOME/bin/./emctl start agent To Stop:
[oracle@oem ~]$ $OMS_HOME/bin/./emctl stop oms [oracle@oem ~]$ $OMS_HOME/bin/./emctl stop agent

Troubleshooting: OMS Fails to Start Due to a Missing Library

During this installation, OMS failed to start because of a missing shared library. The steps below walk through diagnosing and fixing that specific issue. If you hit the same error, don't close the installer GUI window while working through this.

Check the OEM Installer Log


INFO: oracle.sysman.top.oms:Copyright (c) 1996, 2021 Oracle Corporation. All rights reserved. 
INFO: oracle.sysman.top.oms:Starting Oracle Management Server... 
INFO: oracle.sysman.top.oms:WebTier Could Not Be Started. 
INFO: oracle.sysman.top.oms:Error Occurred: WebTier Could Not Be Started. 
INFO: oracle.sysman.top.oms:Please check /oem/app/oracle/gc_inst/em/EMGC_OMS1/sysman/log/emctl.log for error details SEVERE: 
	oracle.sysman.top.oms:Starting of OMS failed. 

Check the OHS Log


[oracle@oem bin]$ tail -50 /oem/app/oracle/gc_inst/user_projects/domains/GCDomain/system_components/OHS/ohs_nm.log
2025-08-16 16:16:06  INFO   OHS-0   Domain initialized for /oem/app/oracle/gc_inst/user_projects/domains/GCDomain  
2025-08-16 16:16:07  INFO   OHS-4112   Creating instance ohs1  
2025-08-16 16:16:10  INFO   OHS-4114   Updating instance ohs1  
2025-08-16 17:13:18  INFO   OHS-4018   Starting server ohs1  
2025-08-16 17:13:18  INFO   OHS-0   Running /oem/app/oracle/middleware/ohs/bin/launch httpd -DOHS_MPM_WORKER -d  /oem/app/oracle/gc_inst/user_projects/domains/GCDomain/config/fmwconfig/components/OHS/instances/ohs1 -k start -f  /oem/app/oracle/gc_inst/user_projects/domains/GCDomain/config/fmwconfig/components/OHS/instances/ohs1/httpd.conf  
2025-08-16 17:13:19  INFO   OHS-0   /oem/app/oracle/middleware/ohs/bin/httpd: error while loading shared libraries: libclntshcore.so.12.1: 
cannot open shared object file: No such file or directory

That's the root cause: OHS (Oracle HTTP Server) can't find the Oracle client library libclntshcore.so.12.1.

Confirm LD_LIBRARY_PATH in setDomainEnv.sh


[oracle@oem bin]$ cat /oem/app/oracle/gc_inst/user_projects/domains/GCDomain/bin/setDomainEnv.sh|grep LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

Link the libclntshcore Library File

The 19c home has a newer version of the same library under a different filename, so a symlink resolves the mismatch without installing anything extra.


[oracle@oem lib]$ ln -s /u01/app/oracle/product/19c/db_home/lib/libclntshcore.so.19.1 libclntshcore.so.12.1
[oracle@oem lib]$ ls -l /oem/app/oracle/middleware/ohs/lib/libclntshcore.so.*
lrwxrwxrwx. 1 oracle oinstall 61 Aug 16 17:56 /oem/app/oracle/middleware/ohs/lib/libclntshcore.so.12.1 -> /u01/app/oracle/product/19c/db_home/lib/libclntshcore.so.19.1

Stop and Start OMS Manually


[oracle@oem lib]$ cd /oem/app/oracle/middleware/bin
[oracle@oem bin]$ ./emctl stop oms -all
Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved.
Stopping Oracle Management Server...
WebTier Could Not Be Stopped
Oracle Management Server Successfully Stopped
AdminServer Failed to be Stopped
Check Admin Server log file for details: /oem/app/oracle/gc_inst/user_projects/domains/GCDomain/servers/EMGC_ADMINSERVER/logs/EMGC_ADMINSERVER.out
Oracle Management Server is Down
JVMD Engine is Down
[oracle@oem bin]$
[oracle@oem bin]$ ./emctl start oms
Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved.
Starting Oracle Management Server...
WebTier Successfully Started
Oracle Management Server Successfully Started
Oracle Management Server is Up
JVMD Engine is Up
[oracle@oem bin]$

Click Retry on the Installer

With OMS confirmed running manually, go back to the still-open installer GUI window and click Retry to let it pick up where it left off.

Thank you for reading!

I hope this content has been helpful to you. Your feedback and suggestions are always welcome. Feel free to leave a comment or reach out with any queries.

Abhishek Shrivastava

Oracle DBA with hands-on experience managing production Data Guard, RAC, GoldenGate, and APEX environments. I write practical, tested installation and troubleshooting guides based on real deployment work.

📧 Email: oraeasyy@gmail.com
🌐 Website: www.oraeasy.com

Follow Us

Comments