This wiki contains notes on installing Oracle Enterprise Manager 13.5.

Introduction

Oracle Enterprise Manager (OEM) provides a comprehensive monitoring and management solution for Oracle Database and Engineered Systems deployed in cloud and customer data centers. It gives administrators the ability to monitor and maintain Oracle applications like the Database or WebLogic.

The base version of OEM is free with the purchase of any Oracle product. It requires the use of both WebLogic and Oracle Database Enterprise Edition, but they too are free with a restricted-use license only to be used with OEM.

You will see Oracle Enterprise Manager often abbreviated as OEM or OEMCC for Cloud Control or EMGC for Grid Control. Sometimes you will see it abbreviated as OMS for Oracle Management Service, which is technically the WebLogic Server component of the larger OEM product. OEM itself is only certified to run on WebLogic Server 12.2 and Oracle Database 19c, but this tutorial will demonstrate how to safely run on the latest versions.

Database

Before we even begin to install OEM, we need to create an Enterprise Edition database.

If you're not familiar with how to create an Oracle Database, follow these instructions.

If you plan on using this in production, make sure to give the database lots of shared memory (12 GB or more).

Important: Update the database with these values:

SQL> alter system set "_allow_insert_with_update_check"=true scope=both;
SQL> alter system set session_cached_cursors=300 scope=spfile sid='*';

After making the changes, you need to restart the database...

SQL> shutdown immediate
SQL> startup

Download

On edelivery.oracle.com, search for "Enterprise Manager Base Platform - OMS 13.5.0.0.0"

Preinstallation

This tutorial assume the use of Oracle Unbreakable Enterprise Kernel (UEK) Linux 8/9, but it will work fine on other RHEL variants like CentOS or Rocky, etc.

To create an 'oracle' user and tune the system appropriately for high volume transactional based based computing.

yum -y install oracle-database-preinstall-21c

If your Linux distribution does not contain this 'preinstall' package, you can download it for free from Oracle's YUM server.

Next, create an installation directory with correct privileges, something like...

sudo mkdir -p /opt/oracle/oemcc/13.5
sudo chown -R oracle:oinstall /opt/oracle

Finally, create some environment variables and place them in the /home/oracle/.bash_profile.

They should look something like this...

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/database/19c
export OMS_HOME   =$ORACLE_BASE/oemcc/13.5/middleware
export PATH=$ORACLE_HOME/bin:$OMS_HOME/OMSPatcher:$PATH

Notice I didn't define the path for 'opatch'. With two products installed on the same machine it might get confusing as to which patching system you are using. When it comes time to patch a product, add 'opatch' to your path like so...

export PATH=$ORACLE_HOME/OPatch:$PATH
--or--
export PATH=$OMS_HOME/OPatch:$PATH

You can load these environment variables like so...

source /home/oracle/.bash_profile

Install Software Only

Download Oracle Enterprise Manager Cloud Control 13c Release 5 (13.5.0.0.0) for Linux x86-64.

As the 'oracle' user, unzip all the files and run the installer...

unzip '*.zip'
./em13500_linux_x64.bin

Choose "Install Software Only".

Why software only? The OEM installer is very picky about software prerequisites. This will give us a chance to edit some property files before we configure it.

Configuration

Now that the patches have been applied, it is time to configure OEMCC.

./middleware/sysman/install/ConfigureGC.sh

Follow the wizard...

Installation Types

  • Choose "Advanced Install"

Software Updates

  • Skip

Inventory Location

  • Inventory Location: /opt/oracle
  • Operating System Group: oinstall

Prerequisite Check

  • Check warnings

You might be missing some 'gcc' libraries.

yum install gcc
yum install glibc-devel.i686

Installation Details

  • Middleware Home Location: /opt/oracle/oemcc-13.5/middleware_home
  • Agent Base directory: /opt/oracle/oemcc-13.5/agent_base

Select Plug-ins

  • Default values are typically good enough

WebLogic Server Configuration

  • Enter passwords

Database Connection Details

  • Enter details for database we just created

Database Prerequisite Checks

  • You will encounter some errors
  • Click the "Auto Fix" button to resolve some errors
  • Fix remaining issues in the database
  • Reboot database and test again

In my particular case, I had to examine the log file:

less /opt/oracle/oemcc/13.5/middleware/cfgtoollogs/oui/emdbprereqs/LATEST/emprereqkit.out

I found and corrected these errors...

processes instance parameter

Prerequisite Recommendation = The processes instance parameter needs to be set to at least 600.

SQL> alter system set processes=600 scope=spfile sid='*';

session_cached_cursors

The session_cached_cursors instance parameter should be set to any value between 200 and 500, inclusive, will be accepted.

SQL> alter system set session_cached_cursors=200 scope=spfile sid='*';

shared_pool_size

The shared_pool_size instance parameter should be set to at least 600000000 bytes or roughly one third of the sga_target size.

Manually setting the shared_pool_size should not be necessary. I am ignoring this one... Still, if you want to, here's how (no restart required):

SQL> alter system set shared_pool_size=450M scope=both;

Check the redo log size.

The size of the EM database instance should be 600000000 bytes or greater.  Generally, there should be 3 or more redo logs available of this size.

I am using automatic management of the redo logs, so I am ignoring this one.

id_allow_insert_with_update_param

detailed_reco_id_allow_insert_with_update_param

SQL> alter system set "_allow_insert_with_update_check" = true;

Restart the database and check again...

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.

Ignore the message about AL32UTF8. It is already set.

Enterprise Manager Configuration

  • Enter passwords

Shared Location Details

  • Go with the defaults

Port Configuration Details

  • Take a screen capture of all the defined ports

Review

  • Take another screen capture

Finish

  • Take another screen capture

Congratulations, you have successfully installed Oracle Enterprise Manager 13.5. That didn't take long did it? ;-)


Patching

Download the latest patches from Oracle Support.

Under the Patches and Updates tab, search on Product or Family (Advanced).

Product: Enterprise Manager Base Platform
Release: Enterprise Manager 13.5.0.0.0
Platform: Linux x86-64

Click on the patch, download it, unzip it and look at the README.html file.

Right now, it's telling me to download the latest OMSPatcher.

Click the links, download it, and install it like so...

rm -rf $OMS_HOME/OMSPatcher
unzip p19999993_135000_Generic.zip -d $OMS_HOME

In this particular instance, the README.html file indicates to apply the following patches:

  • MLR Patch 35430934 (or its superset) which includes 32720458 and 33607709
  • Patch 34153238
  • Patch 31657681

Unzip the patches and apply them with OPatch.

emctl stop oms -all
opatch apply 35430934
opatch apply 34153238
opatch apply 31657681
emctl start oms

Now we can finally apply the OMS patches with 'omspatcher':

cd 36761595
omspatcher deploy -analyze

Congratulations! OEM is now ready to use.


Login

Use the following URL to access:

  1. Enterprise Manager Cloud Control URL: https://<host>:7803/em
    username: sysman
  2. Admin Server URL: https://<host>:7102/console
    username: weblogic

The port numbers could theoretically change, so check your screen captures for the correct info.

What's the difference between the EMCC and the Admin Server URLs?

The EMCC is the actual Oracle Enterprise Manager GUI.

If you're familiar with WebLogic, the Admin Server is the GUI that manages the application. It can start and stop the EMCC, etc. That's sort of trippy, since the EMCC can start and stop other applications. Can the EMCC start and stop itself? Possibly... At some point, we need to configure the "Node Manager".


Cleanup

Let's do a couple of housekeeping tasks...

Coherence Cluster Cache is Down

You may notice some errors with the Coherence Cluster Cache being down. This caused by some misconfiguration in WebLogic. To remove the cache targets from OEM, follow these steps:

Workaround:

1.  Bring in a new Copy of the Coherence Cluster by Refresh the GCDomain

(WLS Domain Refresh): Run the 'Refresh Weblogic Domain' built-in utility as follows:

Navigate to 'Targets' > 'Middleware'
a. Expand and click the 'Oracle Weblogic Domain' (i.e., the EMGC_GCDomain) target

b.  Navigate to the  "Refresh Weblogic Domain" in the Drop down on the GCDomain Page

Look at the top left of the screen you will see "WebLogic Domain" click on that and a Drop Down will appear. Scroll down until you see "Refresh WebLogic Domain"

c.  New Screen will appear click on "Remove Targets..." A pop up will appear that it's processing

Finding Targets - Completed Successfully
Click Close to view targets to be removed

d. Click "Close"

e.  Click "Remove Targets"

VERIFY

1.  Now navigate to the GCDomain Coherence target in the OEM Console and you should now see the Coherence Cache's removed.

Database Quickly Runs Out of Space

If you follow the default installation of Oracle 19c, it will automatically make a backup but it will forget to delete the archive log (.arc) files, eventually filling up the Fast Recovery Area (FRA) and shutting the server down. To remedy this situation...

If the database is down...

$ rman
RMAN> connect target
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO 'SBT_TAPE';
RMAN> delete obsolete;
RMAN> delete backup;
RMAN> delete force copy of archivelog all;
RMAN> exit

Unlock Accounts

SQL> alter user dbsnmp account unlock;
SQL> alter user dbsnmp identified by "PaS5W0rD";
SQL> alter user sysman identified by "PaS5W0rD";