Oracle Enterprise Manager 19c Installation and Configuration on Linux – Complete Step-by-Step Guide
Learn Oracle Enterprise Manager 19c installation and configuration on Linux with this complete step-by-step guide. Install OEM 19c, configure OMS, Repository, Agents, and monitor Oracle databases.
A complete production-ready SOP for installing and configuring Oracle Enterprise Manager Cloud Control 19c on Linux from scratch. Covers OMS prerequisites, repository database preparation, OEM Cloud Control installation, agent deployment, target discovery, monitoring configuration, blackout creation, and full post-installation validation — with real commands, expected outputs, and consultant-level notes for both standard OFA and enterprise custom path conventions.
1. Document Info
| Item | Detail |
|---|---|
| OEM Version | Enterprise Manager Cloud Control 19c |
| OMS Server | emserver01 (dedicated OEM server) |
| Repository DB | EMREP (Oracle 19c database on emserver01 or separate server) |
| Agent Version | 19c (matches OMS version) |
| OS | Oracle Linux 7.x / RHEL 7.x or 8.x |
| OMS Port | 7803 (HTTPS console) |
| Agent Port | 3872 (default) |
| Upload Port | 4903 (agent to OMS communication) |
| MOS Reference | Doc ID 2349010.1 (OEM 19c Install Guide) |
| MOS Reference | Doc ID 1926545.1 (OEM Prerequisites) |
| MOS Reference | Doc ID 2219797.1 (OEM Agent Deployment) |
| Prepared By | Oracle DBA / Consultant |
2. OEM Architecture — Understand Before You Start
📝 What is Oracle Enterprise Manager Cloud Control? OEM Cloud Control is Oracle’s centralized monitoring, management, and automation platform for Oracle databases, middleware, hosts, and other Oracle products. From a single web console you can monitor hundreds of databases, receive alerts, run jobs, apply patches, manage configuration, and perform administrative tasks — all without logging into individual servers.
📝 Why use OEM instead of direct DB management? When you manage more than 5-10 databases, individual server-by-server management becomes unscalable. OEM centralizes everything — you see all databases, all alerts, all jobs from one screen. For a consultant role, OEM knowledge is essential because most enterprise clients use it.
Key OEM Components
| Component | What It Does | Where It Runs |
|---|---|---|
| OMS (Oracle Management Service) | The central application server. Hosts the web console, processes data from agents, stores configuration, runs jobs. The brain of OEM. | Dedicated OEM server |
| Repository Database (EMREP) | An Oracle database that stores all OEM data — monitoring data, configurations, job history, alerts, everything OEM needs persisted. Must be a dedicated database. | Same or separate server from OMS |
| Management Agent | A lightweight process installed on every managed server. Collects metrics, monitors targets, executes jobs, and sends data to OMS. | Every managed target server |
| OEM Console | Web browser interface to OEM. Accessed via HTTPS on port 7803. | Client browser |
| EM CLI | Command line interface for OEM. Automate OEM operations via scripts. | OMS server or any server with EM CLI installed |
| WebLogic Server | OMS runs on top of WebLogic application server (bundled with OEM installer). | OEM server (embedded) |
| Agent Upload Port | Port 4903 — agents send monitoring data to OMS through this port. Must be open in firewall. | OMS server (listens) |
| Blackout | A scheduled or immediate suppression of alerts for a target during maintenance. Prevents alert noise during patching or downtime. | Configured in OEM console or CLI |
OEM Communication Flow
Managed Servers (DB, Host, Middleware)
│
[OEM AGENT] ←── collects metrics locally
│
│ port 4903 (HTTPS upload)
▼
[OMS SERVER] ←── processes data, runs jobs, hosts console
│
│ JDBC
▼
[REPOSITORY DB] ←── stores all OEM data persistently
Browser ──── HTTPS port 7803 ────► [OMS CONSOLE]OEM Sizing Guidelines
| Environment | Targets | OMS RAM | OMS CPU | Repo DB RAM | Repo DB Storage |
|---|---|---|---|---|---|
| Small | Up to 100 | 16 GB | 4 cores | 8 GB | 200 GB |
| Medium | 100-500 | 32 GB | 8 cores | 16 GB | 500 GB |
| Large | 500-1000 | 64 GB | 16 cores | 32 GB | 1 TB |
| Very Large | 1000+ | 128 GB | 32 cores | 64 GB | 2 TB+ |
⚠️ IMPORTANT: OEM is resource-intensive. Running OMS on an underpowered server is the most common cause of OEM performance issues. Follow the sizing guidelines above. Never install OMS on a server that is also running production databases.
3. Path Conventions and Environment Details
| Item | Convention A | Convention B |
|---|---|---|
| OMS Oracle Home | /u01/app/oracle/product/OMS/19c | /oracle/OMS/19c |
| OMS Base | /u01/app/oracle | /oracle |
| Agent Oracle Home | /u01/app/oracle/agent/agent_19.x | /oracle/agent/agent_19.x |
| Agent Base | /u01/app/oracle/agent | /oracle/agent |
| Repo DB Oracle Home | /u01/app/oracle/product/19.3.0/dbhome_1 | /oracle/RDBMS/19.31 |
| Middleware Home | /u01/app/oracle/product/OMS/19c/wlserver | /oracle/OMS/19c/wlserver |
| OMS Instance | /u01/app/oracle/gc_inst | /oracle/gc_inst |
| Software Stage | /stage/oem | /stage/oem |
📝 All examples use Convention A. Substitute Convention B paths where applicable.
4. Pre-Installation Checks — OMS Server
⚠️ IMPORTANT: OEM installation is complex and the installer is strict about prerequisites. Every single pre-check must pass before starting the installer. A failed OEM installation mid-way is very difficult to clean up.
4.1 — Check OS Version and Architecture
📝 Why? OEM Cloud Control 19c is certified on specific OS versions only. Running on an unsupported OS version is not supported by Oracle and may cause unpredictable behavior.
# Check OS version
cat /etc/os-release
# Must be x86_64
uname -m
# Check kernel version
uname -rSupported OS for OEM 19c:
- Oracle Linux 6.x, 7.x, 8.x
- Red Hat Enterprise Linux 6.x, 7.x, 8.x
- SUSE Linux Enterprise 11, 12, 15
4.2 — Check RAM and Swap
📝 Why? OEM OMS is a Java application server running on WebLogic. It needs significant memory — minimum 8 GB for OMS process itself. With the repository database on the same server, plan for 16-32 GB total.
# Check total RAM
grep MemTotal /proc/meminfo
# Check available RAM right now
free -m
# Check swap
grep SwapTotal /proc/meminfoMinimum requirements:
- RAM: 8 GB (OMS only), 16 GB (OMS + Repo DB on same server)
- Swap: Equal to RAM up to 16 GB
⚠️ IMPORTANT: If RAM is less than 8 GB the OEM installer will fail the prerequisite check and refuse to proceed. There is no workaround — you must add more RAM.
4.3 — Check Disk Space
📝 Why? OEM software is large (about 8 GB just for the installer). The OMS home needs about 15 GB. The repository database needs 50-200 GB depending on how many targets you monitor and how long you retain data.
# Check all filesystems
df -hP
# Specific checks
df -hP /u01 # OMS home — need 15 GB minimum
df -hP /tmp # Installer temp — need 4 GB minimum
df -hP /var # Logs and temp — need 2 GB minimumMinimum disk requirements:
| Location | Minimum Required |
|---|---|
| OMS Oracle Home (/u01/app/oracle/product/OMS/19c) | 15 GB |
| OMS Instance (/u01/app/oracle/gc_inst) | 5 GB |
| Repository DB datafiles | 50 GB |
| /tmp (installer temp) | 4 GB |
| Software stage (/stage/oem) | 10 GB |
4.4 — Check Required OS Packages
# Check all required packages
rpm -q make \
binutils \
gcc \
libaio \
libaio-devel \
glibc \
glibc-devel \
libgcc \
libstdc++ \
libstdc++-devel \
sysstat \
compat-libcap1 \
compat-libstdc++-33 \
ksh \
unzip \
zip \
glibc-common \
libXext \
libXrender \
libXtst \
libXi \
libnsl \
nfs-utils \
smartmontools 2>&1 | grep "not installed"
# Install missing packages (as root)
yum install -y make binutils gcc libaio libaio-devel glibc glibc-devel \
libgcc libstdc++ libstdc++-devel sysstat compat-libcap1 compat-libstdc++-33 \
ksh unzip zip glibc-common libXext libXrender libXtst libXi libnsl \
nfs-utils smartmontools4.5 — Check and Set Kernel Parameters
# Check current values
/sbin/sysctl -a | grep -E \
"kernel.shmall|kernel.shmmax|kernel.shmmni|\
kernel.sem|fs.file-max|fs.aio-max-nr|\
net.ipv4.ip_local_port_range|\
net.core.rmem_default|net.core.rmem_max|\
net.core.wmem_default|net.core.wmem_max"# Add to /etc/sysctl.conf as root
vi /etc/sysctl.conf# -------------------------------------------------------
# Oracle OEM 19c Required Kernel Parameters
# Added by DBA on <date>
# -------------------------------------------------------
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576# Apply immediately
/sbin/sysctl -p
# Verify
/sbin/sysctl -a | grep -E "kernel.shmall|fs.file-max"4.6 — Check and Set OS User Limits
vi /etc/security/limits.conf# -------------------------------------------------------
# Oracle OEM User Limits
# -------------------------------------------------------
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock 3145728
oracle hard memlock 31457284.7 — Check Hostname and /etc/hosts
📝 Why is hostname critical for OEM? OEM agents connect to OMS using the hostname. If the hostname changes or does not resolve correctly, ALL agents will lose connectivity to OMS. The hostname used during OEM installation is permanently embedded in OEM configuration files.
# Check hostname
hostname
hostname -f
# Must resolve correctly
nslookup $(hostname)
nslookup $(hostname -f)
# Check /etc/hosts
grep $(hostname) /etc/hosts⚠️ IMPORTANT: The hostname used during OEM installation must be the FQDN (Fully Qualified Domain Name). If you install OEM with a short hostname and later need to use FQDN, it requires a complex reconfiguration. Always use FQDN from the start.
Correct /etc/hosts entry:
192.168.1.20 emserver01.company.com emserver014.8 — Check Required Ports Are Available
📝 Why? OEM uses specific ports. If any of these ports are already in use by another process, OEM installation will fail or OEM will not start correctly.
# Check if OEM ports are already in use
# As root
ss -tlnp | grep -E "7803|7301|7799|4903|3872|9701"
# OR using netstat
netstat -tlnp | grep -E "7803|7301|7799|4903|3872|9701"OEM required ports:
| Port | Purpose | Direction |
|---|---|---|
| 7803 | OEM Console HTTPS | Browser → OMS |
| 7301 | OMS internal HTTP | Internal |
| 7799 | WebLogic Admin Server | Internal/Admin |
| 4903 | Agent upload (HTTPS) | Agent → OMS |
| 3872 | OEM Agent port | OMS → Agent |
| 9701 | Node Manager | Internal WebLogic |
⚠️ IMPORTANT: All ports listed above must be free (not in use by any process) before starting OEM installation. If any port is in use, identify the process and either stop it or configure OEM to use different ports during installation.
4.9 — Check /etc/hosts Does Not Have localhost Mapping Issue
📝 Why? A very common OEM installation failure is caused by the server’s hostname being mapped to 127.0.0.1 in
/etc/hosts. OEM agents cannot connect to 127.0.0.1 from remote servers.
# Check for this specific issue
grep $(hostname) /etc/hosts | grep "127.0.0.1"
# If the above returns any output — it is a problem
# The server hostname must be mapped to the real IP, not 127.0.0.1Wrong (causes OEM agent connectivity issues):
127.0.0.1 emserver01.company.com emserver01Correct:
192.168.1.20 emserver01.company.com emserver01
127.0.0.1 localhost5. Repository Database Preparation
📝 What is the OEM Repository Database? The repository (EMREP) is a regular Oracle database dedicated entirely to storing OEM data — monitoring metrics, alert history, job definitions and history, target configurations, user accounts, and everything else OEM needs to persist. It must be a dedicated database — never share it with application databases.
⚠️ IMPORTANT: If the repository database is on the SAME server as OMS, install the Oracle Database software and create the EMREP database FIRST before installing OMS. OMS installer connects to the repository DB during installation.
5.1 — Create Repository Database (EMREP)
📝 Why a dedicated DB? The OEM repository grows continuously as it stores metric data. It can consume 50-200+ GB over time. A dedicated database allows you to manage its storage independently and tune it without affecting other applications.
# Create EMREP database using DBCA (silent)
su - oracle
dbca -silent \
-createDatabase \
-templateName General_Purpose.dbc \
-gdbName EMREP \
-sid EMREP \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword Oracle_123 \
-systemPassword Oracle_123 \
-createAsContainerDatabase false \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-totalMemory 8192 \
-storageType FS \
-datafileDestination /u01/app/oracle/oradata \
-redoLogFileSize 300 \
-emConfiguration NONE \
-ignorePreReqs5.2 — Configure Repository Database Parameters
📝 Why special parameters for EMREP? The OEM repository has specific requirements — it needs session_cached_cursors for PL/SQL performance, large SGA for caching metric data, and specific undo and temp sizes.
-- Connect to EMREP database
sqlplus / as sysdba
-- Check current memory settings
SHOW PARAMETER sga_target;
SHOW PARAMETER pga_aggregate_target;
-- Set required parameters for OEM repository
-- OEM installer checks these — set before installation
ALTER SYSTEM SET SESSION_CACHED_CURSORS=200 SCOPE=SPFILE;
ALTER SYSTEM SET OPEN_CURSORS=300 SCOPE=BOTH;
ALTER SYSTEM SET PROCESSES=500 SCOPE=SPFILE;
ALTER SYSTEM SET SESSION_MAX_OPEN_FILES=50 SCOPE=BOTH;
ALTER SYSTEM SET SHARED_POOL_SIZE=600M SCOPE=SPFILE;
ALTER SYSTEM SET SGA_TARGET=4G SCOPE=SPFILE;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET=1G SCOPE=SPFILE;
ALTER SYSTEM SET DB_BLOCK_SIZE=8192 SCOPE=SPFILE;
ALTER SYSTEM SET LOG_BUFFER=10485760 SCOPE=SPFILE;
ALTER SYSTEM SET UNDO_TABLESPACE='UNDOTBS1' SCOPE=BOTH;
ALTER SYSTEM SET UNDO_RETENTION=10800 SCOPE=BOTH;
ALTER SYSTEM SET RECYCLEBIN=OFF SCOPE=SPFILE;
-- Restart database to apply SPFILE changes
SHUTDOWN IMMEDIATE;
STARTUP;
-- Verify key parameters after restart
SHOW PARAMETER processes;
SHOW PARAMETER sga_target;
SHOW PARAMETER open_cursors;5.3 — Check and Extend Tablespace Sizes for Repository
📝 Why? OEM installer creates its own tablespaces in the repository database during installation. But the SYSTEM and UNDO tablespaces must have sufficient free space for the installation process itself.
sqlplus / as sysdba
set linesize 200
set pagesize 100
col tablespace_name for a25
col total_mb for 9999999
col free_mb for 9999999
col used_pct for 999.99
SELECT df.tablespace_name,
ROUND(df.bytes/1024/1024,2) total_mb,
ROUND(NVL(fs.bytes,0)/1024/1024,2) free_mb,
ROUND((1-NVL(fs.bytes,0)/df.bytes)*100,2) used_pct
FROM (SELECT tablespace_name, SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) df,
(SELECT tablespace_name, SUM(bytes) bytes
FROM dba_free_space
GROUP BY tablespace_name) fs
WHERE df.tablespace_name = fs.tablespace_name(+)
ORDER BY df.tablespace_name;-- SYSTEM tablespace must have at least 500MB free
-- Extend if needed
ALTER TABLESPACE SYSTEM ADD DATAFILE
'/u01/app/oracle/oradata/EMREP/system02.dbf' SIZE 2G AUTOEXTEND ON NEXT 500M;
-- UNDO tablespace must have at least 2GB free
ALTER TABLESPACE UNDOTBS1 ADD DATAFILE
'/u01/app/oracle/oradata/EMREP/undotbs02.dbf' SIZE 4G AUTOEXTEND ON NEXT 1G;
-- TEMP tablespace must have at least 1GB free
ALTER TABLESPACE TEMP ADD TEMPFILE
'/u01/app/oracle/oradata/EMREP/temp02.dbf' SIZE 2G AUTOEXTEND ON NEXT 500M;5.4 — Verify Repository Database is Ready
sqlplus / as sysdba
set linesize 150
set pagesize 50
col name for a12
col open_mode for a15
col log_mode for a15
-- DB must be open in ARCHIVELOG mode
SELECT name, open_mode, log_mode FROM v$database;
-- Listener must be running and DB registered
EXIT;# Test TNS connection to EMREP
tnsping EMREP
sqlplus system/Oracle_123@EMREP5.5 — Create OEM Prerequisite Check on Repository DB
📝 Why run this before OMS install? The OEM installer runs its own repository prerequisite checks during installation. Running them beforehand lets you fix issues before the installer runs — saving time.
sqlplus / as sysdba
-- Check character set — must be AL32UTF8
SELECT value FROM nls_database_parameters
WHERE parameter = 'NLS_CHARACTERSET';
-- Must show: AL32UTF8
-- Check time zone
SELECT dbtimezone FROM dual;
-- Check db_block_size (cannot be changed after creation)
SHOW PARAMETER db_block_size;
-- Must be 8192 (8KB) for OEM repository
-- Check recyclebin is off
SHOW PARAMETER recyclebin;
-- Must show: OFF
-- Check open_cursors
SHOW PARAMETER open_cursors;
-- Must be at least 3006. OEM Software Download and Staging
6.1 — Download OEM Cloud Control 19c Installer
📝 OEM 19c installer is approximately 8 GB. Download from MOS:
- Log into MOS: https://support.oracle.com
- Go to Patches and Updates
- Search for patch 32158462 (OEM Cloud Control 19c for Linux x86-64)
- Download all parts (installer comes in multiple zip files)
# Verify all installer zip files are downloaded
ls -lh /stage/oem/
# Expected files:
# em13500_linux64-1.zip
# em13500_linux64-2.zip
# em13500_linux64-3.zip
# em13500_linux64-4.zip
# em13500_linux64-5.zip
# Verify checksums against MOS download page
sha256sum /stage/oem/em13500_linux64-1.zip
sha256sum /stage/oem/em13500_linux64-2.zip
# etc.
# Unzip all parts into staging directory
cd /stage/oem
unzip -q em13500_linux64-1.zip
unzip -q em13500_linux64-2.zip
unzip -q em13500_linux64-3.zip
unzip -q em13500_linux64-4.zip
unzip -q em13500_linux64-5.zip
# Verify installer is present after extraction
ls -lh /stage/oem/em13500_linux64/
ls /stage/oem/em13500_linux64/runInstaller6.2 — Create OMS Directory Structure
# As root — create directories
mkdir -p /u01/app/oracle/product/OMS/19c
mkdir -p /u01/app/oracle/gc_inst
# Convention B
# mkdir -p /oracle/OMS/19c
# mkdir -p /oracle/gc_inst
# Set ownership
chown -R oracle:oinstall /u01/app/oracle/product/OMS
chown -R oracle:oinstall /u01/app/oracle/gc_inst
chmod -R 775 /u01/app/oracle/product/OMS
chmod -R 775 /u01/app/oracle/gc_inst
# Verify
ls -ld /u01/app/oracle/product/OMS/19c
ls -ld /u01/app/oracle/gc_inst7. OEM OMS Installation
⚠️ IMPORTANT: OEM installation takes 60-120 minutes depending on server speed. Do NOT close the terminal, do NOT interrupt the process once started. Have root access ready in a separate terminal for running root scripts when prompted.
7.1 — Create Silent Response File for OMS Installation
📝 Why silent installation? OEM’s GUI installer requires X11/display which is often unavailable on production Linux servers. Silent mode is the standard approach in real environments.
# Create response file for OMS installation
su - oracle
vi /stage/oem/em_install.rspAdd the following content:
# -------------------------------------------------------
# Oracle Enterprise Manager Cloud Control 19c
# Silent Installation Response File
# -------------------------------------------------------
# Installation type — INSTALL is fresh OMS installation
INSTALL_UPDATES_SELECTION=skip
# OMS Oracle Home location
ORACLE_MIDDLEWARE_HOME_LOCATION=/u01/app/oracle/product/OMS/19c
# OMS Oracle Home (same as middleware home for OEM 19c)
ORACLE_HOSTNAME=emserver01.company.com
# WebLogic Server credentials
WLS_ADMIN_SERVER_USERNAME=weblogic
WLS_ADMIN_SERVER_PASSWORD=Weblogic_123
WLS_ADMIN_SERVER_CONFIRM_PASSWORD=Weblogic_123
# Node Manager password
NODE_MANAGER_PASSWORD=NodeMgr_123
NODE_MANAGER_CONFIRM_PASSWORD=NodeMgr_123
# OMS instance base — where OMS runtime files go
OMS_INSTANCE_HOME=/u01/app/oracle/gc_inst
# GCDomain — WebLogic domain name for OEM
EM_GC_DOMAIN_NAME=GCDomain
# Agent base directory
AGENT_BASE_DIR=/u01/app/oracle/agent
# Repository database connection details
DATABASE_HOSTNAME=emserver01.company.com
LISTENER_PORT=1521
SERVICENAME_OR_SID=EMREP
SYS_PASSWORD=Oracle_123
# OEM repository schema credentials (created during install)
SYSMAN_PASSWORD=Sysman_123
SYSMAN_CONFIRM_PASSWORD=Sysman_123
# OEM Admin server ports
EM_UPLOAD_PORT=4903
AGENT_PORT=38727.2 — Run OMS Silent Installation
# As oracle user
su - oracle
cd /stage/oem/em13500_linux64
# Run OMS installer in silent mode
./runInstaller -silent \
-responseFile /stage/oem/em_install.rsp \
-noconfig \
-invPtrLoc /u01/app/oraInventory/oraInst.loc \
ORACLE_HOME=/u01/app/oracle/product/OMS/19c \
ORACLE_BASE=/u01/app/oracle \
-showProgress \
2>&1 | tee /tmp/ems_install.log📝 Monitor installation log in another terminal:
tail -100f /tmp/ems_install.log
# OR
tail -100f /u01/app/oracle/product/OMS/19c/install/logs/emInstall*.log⚠️ IMPORTANT: The installation takes 60-120 minutes. You will see progress output on the screen. Watch for any ERROR messages. If the installer pauses at any prerequisite check failure, note the error, fix it, and rerun.
7.3 — Run Root Scripts When Prompted
📝 Why two root scripts? Same as Oracle DB installation — OrainstRoot.sh registers the inventory, root.sh sets permissions on system-level files and starts OS-level OEM services.
# When installer prompts — open new terminal and run as root
# Step 1 — Run orainstRoot.sh first
/u01/app/oraInventory/orainstRoot.sh
# Step 2 — Run allroot.sh (OEM uses allroot.sh, not root.sh)
/u01/app/oracle/product/OMS/19c/allroot.sh📝 After root scripts complete — go back to installer terminal and press Enter to continue.
7.4 — Run OMS Configuration (emctl Configuration)
📝 Why a separate configuration step? The installer installs the OMS software. The configuration step (
-noconfigwas used above) connects to the repository database, creates the OEM schema (SYSMAN), creates all OEM tablespaces, loads initial data, and configures the WebLogic domain. This is where most of the 60-120 minutes is actually spent.
# As oracle user — run OMS configuration
su - oracle
$ORACLE_HOME/sysman/install/ConfigureGC.pl \
-responseFile /stage/oem/em_install.rsp \
2>&1 | tee /tmp/ems_config.log📝 Monitor configuration progress:
tail -100f /tmp/ems_config.logExpected success message at the end:
Enterprise Manager Cloud Control Installation Completed Successfully!
OEM URL: https://emserver01.company.com:7803/em
WebLogic Admin URL: https://emserver01.company.com:7799/console7.5 — Set OEM Environment Variables
# Add to oracle user's ~/.bash_profile on OMS server
su - oracle
vi ~/.bash_profile# -------------------------------------------------------
# Oracle OEM Environment Variables
# -------------------------------------------------------
# OMS Oracle Home
export OMS_HOME=/u01/app/oracle/product/OMS/19c
# Convention B: export OMS_HOME=/oracle/OMS/19c
# OMS Instance Home
export OMS_INSTANCE=/u01/app/oracle/gc_inst
# Convention B: export OMS_INSTANCE=/oracle/gc_inst
# Add OMS bin to PATH
export PATH=$OMS_HOME/bin:$PATH
# Useful aliases for OEM management
alias emctl='$OMS_HOME/bin/emctl'
alias emcli='$OMS_HOME/bin/emcli'
alias oms_start='$OMS_HOME/bin/emctl start oms'
alias oms_stop='$OMS_HOME/bin/emctl stop oms -all'
alias oms_status='$OMS_HOME/bin/emctl status oms'# Apply profile
. ~/.bash_profile8. Post-OMS Installation Verification
8.1 — Check OMS Status
su - oracle
# Check overall OMS status
emctl status oms
# Check OMS detailed status
emctl status oms -detailsExpected output:
Oracle Enterprise Manager Cloud Control 19c Copyright (c) 1996, 2019 Oracle Corporation.
WebTier is Up
Oracle Management Server is Up
JVMD Engine is Up8.2 — Verify OEM Console is Accessible
# Check OEM URL is responding
curl -k -I https://emserver01.company.com:7803/em
# Expected: HTTP/1.1 200 OK or 302 redirect📝 Open a browser and navigate to:
https://emserver01.company.com:7803/emLogin with:
- Username:
sysman- Password:
Sysman_123(whatever you set in response file)
8.3 — Check Repository Database Connection from OMS
su - oracle
# Check OMS can connect to repository
emctl config oms -list_repos_details
# Check SYSMAN schema status
sqlplus / as sysdba-- Connect to EMREP and check OEM schema
set linesize 200
set pagesize 100
col username for a25
col status for a15
col expiry_date for a20
SELECT username, account_status, expiry_date
FROM dba_users
WHERE username LIKE '%SYSMAN%'
OR username LIKE '%MGMT%'
ORDER BY username;What to look for: SYSMAN account must show OPEN status. If it shows EXPIRED or LOCKED, unlock and change password:
ALTER USER sysman ACCOUNT UNLOCK;
ALTER USER sysman IDENTIFIED BY Sysman_123;8.4 — Check All OEM Tablespaces in Repository
-- Connect to EMREP
sqlplus / as sysdba
set linesize 200
set pagesize 100
col tablespace_name for a30
col total_mb for 9999999
col free_mb for 9999999
col used_pct for 999.99
SELECT df.tablespace_name,
ROUND(df.bytes/1024/1024,2) total_mb,
ROUND(NVL(fs.bytes,0)/1024/1024,2) free_mb,
ROUND((1-NVL(fs.bytes,0)/df.bytes)*100,2) used_pct
FROM (SELECT tablespace_name, SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) df,
(SELECT tablespace_name, SUM(bytes) bytes
FROM dba_free_space
GROUP BY tablespace_name) fs
WHERE df.tablespace_name = fs.tablespace_name(+)
ORDER BY df.tablespace_name;OEM creates these tablespaces in the repository:
| Tablespace | Purpose |
|---|---|
| MGMT_TABLESPACE | Main OEM data |
| MGMT_ECM_DEPOT_TS | Configuration management |
| MGMT_AD4J_TS | Application Diagnostics |
9. OEM Agent Deployment
📝 Why do you need agents? OEM console can only show you what its agents report. Without an agent on a target server, OEM has no visibility into that server’s databases, hosts, listeners, or any other targets. Every server you want to monitor must have an OEM agent installed.
9.1 — Agent Deployment Methods Overview
| Method | When to Use | Requires |
|---|---|---|
| Push (Recommended) | Target is reachable via SSH from OMS server | SSH from OMS to target, oracle user on target |
| Pull (Agent Gold Image) | Large deployments, standardized rollout | Target initiates download from OMS |
| Manual (Response File) | When SSH is not available, air-gapped networks | Physical/console access to target |
| RPM | Linux only, quick deployment | Root access on target |
📝 This SOP covers the Push method — most common in enterprise environments.
9.2 — Pre-Deployment Checks on Target Server (Agent Host)
📝 Run these checks on EVERY server where you want to install the agent BEFORE attempting deployment.
# On TARGET SERVER (the server being monitored)
# Check OS version
cat /etc/os-release
# Check disk space — agent needs about 1GB
df -hP /u01/app/oracle/agent
# OR wherever you plan to install the agent
# Verify oracle user exists
id oracle
# Check hostname resolves from OMS server
# Run on OMS server:
nslookup dbserver01.company.com
ping -c 3 dbserver01.company.com
# Verify OMS can SSH to target as oracle user
# Run on OMS server:
ssh oracle@dbserver01 hostname
ssh oracle@dbserver01 date📝 SSH must work WITHOUT password from OMS server to target as oracle user. Set up SSH key equivalence if not already done:
# On OMS server as oracle user
su - oracle
# Generate SSH key if not exists
ls ~/.ssh/id_rsa || ssh-keygen -t rsa -b 2048 -N ""
# Copy public key to target server
ssh-copy-id oracle@dbserver01
# Test passwordless SSH
ssh oracle@dbserver01 hostname9.3 — Deploy Agent Using Push Method (OEM Console)
📝 Why push from console? The OEM console push method is the easiest and most reliable for individual agents or small numbers of targets. It downloads the agent software from OMS, installs it on the target, and automatically registers the target back with OMS.
Steps in OEM Console:
- Log into OEM Console:
https://emserver01.company.com:7803/em - Go to Setup → Add Target → Add Targets Manually
- Select Install Agent on Host
- Click Add to add target hosts
- Enter hostname:
dbserver01.company.com - Platform:
Linux x86-64 - Installation Base Directory:
/u01/app/oracle/agent - Instance Directory:
/u01/app/oracle/agent/agent_inst - Named Credential: Create or select oracle user SSH credentials
- Click Next then Deploy Agent
9.4 — Deploy Agent Using Command Line (agentDeploy.sh)
📝 Use this method when OEM console is not accessible or for scripted deployments.
# On OMS server as oracle user
su - oracle
# Download agent software to target using OMS-provided script
$OMS_HOME/bin/emcli login -username=sysman -password=Sysman_123
# Deploy agent to target host
$OMS_HOME/bin/emcli add_target \
-name="dbserver01.company.com" \
-type="host" \
-host="dbserver01.company.com" \
-properties="OracleHome:/u01/app/oracle/product/19.3.0/dbhome_1,port:1521"# Alternative — manual agent deployment using response file
# Generate agent response file on OMS server
su - oracle
cat > /tmp/agent_deploy.rsp << 'EOF'
OMS_HOST=emserver01.company.com
EM_UPLOAD_PORT=4903
AGENT_REGISTRATION_PASSWORD=AgentReg_123
ORACLE_HOSTNAME=dbserver01.company.com
AGENT_PORT=3872
INSTALL_TYPE=AGENT_ONLY
AGENT_BASE_DIR=/u01/app/oracle/agent
AGENT_INSTANCE_HOME=/u01/app/oracle/agent/agent_inst
EOF
# Copy agent installer to target server
scp $OMS_HOME/install/agentDeploy.sh oracle@dbserver01:/tmp/
scp -r /stage/oem/agent_software oracle@dbserver01:/tmp/
# Run agent installer on target server
ssh oracle@dbserver01 "/tmp/agentDeploy.sh \
AGENT_BASE_DIR=/u01/app/oracle/agent \
OMS_HOST=emserver01.company.com \
EM_UPLOAD_PORT=4903 \
AGENT_REGISTRATION_PASSWORD=AgentReg_123 \
-invPtrLoc /u01/app/oraInventory/oraInst.loc"9.5 — Verify Agent Installation on Target Server
# On TARGET SERVER after agent deployment
su - oracle
# Check agent home
ls -lh /u01/app/oracle/agent/agent_19*/bin/emctl
# Set agent environment
export AGENT_HOME=/u01/app/oracle/agent/agent_19.x.x.x.x
export PATH=$AGENT_HOME/bin:$PATH
# Check agent status
$AGENT_HOME/bin/emctl status agentExpected output:
Oracle Enterprise Manager Cloud Control 19c Release
Copyright (c) 1996, 2019 Oracle Corporation. All rights reserved.
---------------------------------------------------------------
Agent Version : 19.x.x.x.x
OMS Version : 19.x.x.x.x
Protocol Version : 12.1.0.1.0
Agent Home : /u01/app/oracle/agent/agent_19.x.x.x.x
Agent Log Directory : /u01/app/oracle/agent/agent_inst/sysman/log
Agent Binaries : /u01/app/oracle/agent/agent_19.x.x.x.x
Core JAR Location : /u01/app/oracle/agent/agent_19.x.x.x.x/jlib
Agent Process ID : 12345
Parent Process ID : 12344
Agent URL : https://dbserver01.company.com:3872/emd/main/
Repository URL : https://emserver01.company.com:4903/empbs/upload
Started at : 2024-01-15 10:30:00
Started by user : oracle
Last Reload : (none)
Last successful upload : 2024-01-15 10:35:00
Last attempted upload : 2024-01-15 10:35:00
Total Megabytes of XML files uploaded so far: 1.5
Number of XML files pending upload : 0
Size of XML files pending upload : 0 kB
Available disk space on upload filesystem : 45.00%
Collection Status : Collections enabled
Heartbeat Status : Ok
---------------------------------------------------------------
Agent is Running and Ready9.6 — Secure Agent Communication
📝 Why? Agent-to-OMS communication must be secured. The agent must be authorized by OMS before it can upload data. This is done via the
securecommand.
# On TARGET SERVER
su - oracle
export AGENT_HOME=/u01/app/oracle/agent/agent_19.x.x.x.x
# Secure the agent (register with OMS using password)
$AGENT_HOME/bin/emctl secure agent AgentReg_123
# Restart agent after securing
$AGENT_HOME/bin/emctl stop agent
$AGENT_HOME/bin/emctl start agent
$AGENT_HOME/bin/emctl status agent10. Target Discovery and Configuration
📝 What is target discovery? After the agent is installed, OEM does not automatically know what targets (databases, listeners, ASM instances) exist on that server. You must either let OEM auto-discover them or manually add them. Discovery scans the agent host and finds Oracle targets.
10.1 — Auto-Discover Targets via OEM Console
Steps in OEM Console:
- Go to Setup → Add Target → Configure Auto Discovery
- Select the host where agent is installed
- Click Discover Now
- OEM scans the host and lists all found Oracle targets
- Select targets to add (databases, listeners, ASM)
- Provide credentials (DB passwords for monitoring)
- Click Add Targets
10.2 — Add Database Target Manually via Command Line
# On OMS server
su - oracle
# Login to EM CLI
$OMS_HOME/bin/emcli login -username=sysman -password=Sysman_123
# Add Oracle database target
$OMS_HOME/bin/emcli add_target \
-name="ORCL_dbserver01.company.com" \
-type="oracle_database" \
-host="dbserver01.company.com" \
-credentials="UserName:dbsnmp;password:dbsnmp_123;Role:Normal" \
-properties="SID:ORCL;Port:1521;OracleHome:/u01/app/oracle/product/19.3.0/dbhome_1;MachineName:dbserver01.company.com"10.3 — Create DBSNMP User on Monitored Databases
📝 Why DBSNMP? OEM agent connects to each database using the DBSNMP account to collect monitoring metrics. DBSNMP is a dedicated low-privilege monitoring account created during database installation. It must be unlocked and have a password set before OEM can monitor the database.
-- On each MONITORED database (ORCL, etc.)
sqlplus / as sysdba
-- Check DBSNMP status
SELECT username, account_status
FROM dba_users
WHERE username = 'DBSNMP';
-- Unlock and set password
ALTER USER dbsnmp IDENTIFIED BY dbsnmp_123 ACCOUNT UNLOCK;
-- Verify
SELECT username, account_status, expiry_date
FROM dba_users
WHERE username = 'DBSNMP';
-- Test connection
CONNECT dbsnmp/dbsnmp_123
SELECT 'DBSNMP connection OK' FROM dual;10.4 — Verify Targets Are Monitored in OEM Console
📝 Check in OEM Console:
- Go to Targets → All Targets
- Filter by type (Host, Database, Listener etc.)
- Status column must show Up (green) for all targets
- Any target showing Down (red) or Unknown (grey) needs investigation
11. Monitoring Configuration
11.1 — Configure Metric Thresholds
📝 Why configure thresholds? Out-of-the-box OEM has default thresholds for metrics like CPU, tablespace usage, wait events etc. These defaults may not match your environment — for example, a 90% tablespace threshold may be too high for a fast-growing OLTP database. Always review and customize thresholds for each target.
In OEM Console:
- Go to Targets → Select your database target
- Click Oracle Database menu → Monitoring → Metric and Collection Settings
- Find the metric (e.g., Tablespace Space Used %)
- Set Warning Threshold: 80%
- Set Critical Threshold: 90%
- Click OK
Key metrics to configure thresholds for:
| Metric | Warning | Critical |
|---|---|---|
| Tablespace Space Used (%) | 80% | 90% |
| CPU Utilization (%) | 80% | 95% |
| Memory Utilization (%) | 85% | 95% |
| Response Time per Call | 1 sec | 5 sec |
| Archive Area Used (%) | 70% | 85% |
| Redo Log Switch Rate | 20/hr | 40/hr |
| Active Sessions | 80% max sessions | 90% max sessions |
11.2 — Configure Notification Rules
📝 Why? Alerts in OEM are useless if no one gets notified. Configure notification rules to send email when critical alerts fire.
In OEM Console:
- Go to Setup → Notifications → Notification Methods
- Configure SMTP server settings (your company mail relay)
- Test email connectivity
- Go to Setup → Notifications → My Notification Rules
- Create rule for Critical and Warning alerts
- Add your email address as recipient
11.3 — Set Up Monitoring Templates
📝 Why templates? When you manage many databases, applying thresholds individually is impractical. Create a monitoring template once and apply it to all databases of the same type (OLTP, Reporting, Dev etc.).
In OEM Console:
- Go to Enterprise → Monitoring → Monitoring Templates
- Click Create
- Name:
PROD_DB_Template - Target Type:
Oracle Database - Configure all thresholds in the template
- Click Apply to Targets to apply to multiple databases at once
12. Blackout Configuration
📝 What is a blackout? A blackout is an OEM-managed maintenance period during which alerts for specific targets are suppressed. During patching, OS reboots, or planned maintenance, you do not want OEM sending false alerts. Creating a blackout tells OEM to silence alerts for the specified targets during the maintenance window.
📝 Why not just ignore alerts? A blackout also stops metric collection during the window — so your historical data does not show a spike or dip caused by the maintenance. It also properly marks the target as “In Maintenance” in OEM reports.
12.1 — Create Immediate Blackout via Command Line
# On OMS server as oracle user
su - oracle
# Create immediate blackout for a database target
emctl start blackout \
<blackout_name> \
-nodelevel \
<target_name>:<target_type> \
-d <duration_in_minutes>
# Example — blackout ORCL database for 60 minutes
emctl start blackout PATCH_BLACKOUT_ORCL \
-nodelevel \
ORCL_dbserver01.company.com:oracle_database \
-d 60
# Blackout entire host including all targets on it
emctl start blackout HOST_MAINTENANCE_dbserver01 \
dbserver01.company.com:host \
-d 120
# Check blackout status
emctl status blackout PATCH_BLACKOUT_ORCL12.2 — Stop a Blackout
# Stop a running blackout
emctl stop blackout PATCH_BLACKOUT_ORCL
# Verify blackout stopped
emctl status blackout PATCH_BLACKOUT_ORCL12.3 — Create Scheduled Blackout via OEM Console
📝 Use scheduled blackouts for recurring maintenance — for example, every Sunday morning for weekly maintenance windows.
In OEM Console:
- Go to Targets → Select target
- Click Oracle Database → Control → Create Blackout
- Name:
WEEKLY_MAINTENANCE - Select target(s) to blackout
- Schedule: Repeating, Every Sunday, 02:00 AM – 06:00 AM
- Reason: Scheduled Maintenance
- Click OK
12.4 — Create Blackout via EM CLI (Scriptable)
# Create blackout using EM CLI (can be scripted for automated maintenance)
su - oracle
# Login to EM CLI
$OMS_HOME/bin/emcli login -username=sysman -password=Sysman_123
# Create blackout
$OMS_HOME/bin/emcli create_blackout \
-name="PATCH_BLACKOUT_ORCL" \
-target_list="ORCL_dbserver01.company.com:oracle_database" \
-schedule="frequency:once;duration:60" \
-reason="Database patching"
# Start the blackout
$OMS_HOME/bin/emcli start_blackout -name="PATCH_BLACKOUT_ORCL"
# Check status
$OMS_HOME/bin/emcli get_blackout_status -name="PATCH_BLACKOUT_ORCL"
# Stop the blackout when maintenance is done
$OMS_HOME/bin/emcli stop_blackout -name="PATCH_BLACKOUT_ORCL"13. OEM Startup and Shutdown Procedures
📝 Why a specific startup sequence? OEM components have dependencies. Starting them in the wrong order causes connection failures. Always follow the sequence below.
13.1 — Correct Startup Sequence
su - oracle
# STEP 1 — Start Repository Database first
# OMS cannot start without the repository database
export ORACLE_SID=EMREP
sqlplus / as sysdbaSTARTUP;
EXIT;# STEP 2 — Start Listener for repository database
lsnrctl start
# STEP 3 — Start OMS (includes WebLogic and OEM application)
emctl start oms
# STEP 4 — Verify OMS started
emctl status oms
# STEP 5 — Start agents on all managed servers
# On each managed server:
$AGENT_HOME/bin/emctl start agent
$AGENT_HOME/bin/emctl status agent13.2 — Correct Shutdown Sequence
su - oracle
# STEP 1 — Stop OMS first
# -all flag also stops the WebLogic Admin Server and Node Manager
emctl stop oms -all
# STEP 2 — Verify OMS stopped
emctl status oms
# STEP 3 — Stop Listener
lsnrctl stop
# STEP 4 — Stop Repository Database
export ORACLE_SID=EMREP
sqlplus / as sysdbaSHUTDOWN IMMEDIATE;
EXIT;⚠️ IMPORTANT: Never shut down the repository database before stopping OMS. If OMS is running and the repository DB goes down, OMS will crash ungracefully and may require a restart with
emctl stop oms -forceto recover.
14. OEM Patching
📝 OEM itself needs to be patched. Oracle releases patches for OEM OMS and agents regularly. OEM patching has its own sequence and is separate from database patching.
14.1 — Check Current OEM Version
su - oracle
# Check OMS version
emctl status oms | grep "OMS Version"
# Check agent version on any target
$AGENT_HOME/bin/emctl status agent | grep "Agent Version"14.2 — Apply OEM Plugin/Bundle Patch (Overview)
📝 OEM patching sequence:
- Download OEM patch from MOS (search for EM13c patches)
- Stop OMS
- Apply patch to OMS home using OPatch
- Start OMS
- Deploy updated agents to all managed hosts
- Verify all targets are still reporting correctly
# Stop OMS before patching
emctl stop oms -all
# Apply patch to OMS home
$OMS_HOME/OPatch/opatch apply \
-oh $OMS_HOME \
-silent \
/stage/oem_patches/<PATCHNUM>
# Start OMS after patching
emctl start oms
# Verify OMS started with new version
emctl status oms📎 OEM patch downloads: MOS → Patches & Updates → search “Enterprise Manager Base Platform”
15. Post-Installation Checks
⚠️ IMPORTANT: Complete all post-installation checks before declaring OEM ready for use by the team.
15.1 — Verify OMS is Running
su - oracle
emctl status oms
emctl status oms -detailsAll components must show UP.
15.2 — Verify OEM Console Login
# Test HTTPS connectivity
curl -k -I https://emserver01.company.com:7803/em
# Open browser and login
# URL: https://emserver01.company.com:7803/em
# Username: sysman
# Password: Sysman_12315.3 — Verify All Agents Are Up and Uploading
# On OMS server — check all agent status via EM CLI
su - oracle
$OMS_HOME/bin/emcli login -username=sysman -password=Sysman_123
$OMS_HOME/bin/emcli get_agents_statusIn OEM Console:
- Go to Setup → Manage Cloud Control → Agents
- All agents must show Up status
- Last Upload Time must be recent (within last 5 minutes)
15.4 — Verify All Targets Are Monitored
# Check target status via EM CLI
$OMS_HOME/bin/emcli get_targets \
-targets="oracle_database" \
-status=allIn OEM Console:
- Go to Targets → All Targets
- Filter by Target Type = Oracle Database
- Status must be Up for all targets
15.5 — Check Repository Database Alert Log
# Check EMREP alert log for any OEM-related errors
tail -200 /u01/app/oracle/diag/rdbms/emrep/EMREP/trace/alert_EMREP.log \
| grep -E "ORA-|Error|WARNING"15.6 — Check OMS Log Files
# OMS application log
tail -200 $OMS_INSTANCE/em/EMGC_OMS1/sysman/log/emoms.log \
| grep -E "ERROR|FATAL|Exception"
# OMS startup log
tail -200 $OMS_INSTANCE/em/EMGC_OMS1/sysman/log/emoms.trc \
| grep -E "ERROR|FATAL"
# OEM secure log
ls -lh $OMS_INSTANCE/em/EMGC_OMS1/sysman/log/15.7 — Verify WebLogic Admin Server is Running
# Check WebLogic Admin Server status
emctl status oms | grep -i weblogic
# Access WebLogic Admin Console
# URL: https://emserver01.company.com:7799/console
# Username: weblogic
# Password: Weblogic_12315.8 — Check OEM Tablespace Usage in Repository
sqlplus / as sysdba
set linesize 200
set pagesize 100
col tablespace_name for a30
col total_mb for 9999999
col free_mb for 9999999
col used_pct for 999.99
SELECT df.tablespace_name,
ROUND(df.bytes/1024/1024,2) total_mb,
ROUND(NVL(fs.bytes,0)/1024/1024,2) free_mb,
ROUND((1-NVL(fs.bytes,0)/df.bytes)*100,2) used_pct
FROM (SELECT tablespace_name, SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) df,
(SELECT tablespace_name, SUM(bytes) bytes
FROM dba_free_space
GROUP BY tablespace_name) fs
WHERE df.tablespace_name = fs.tablespace_name(+)
ORDER BY used_pct DESC;⚠️ IMPORTANT: MGMT_TABLESPACE must have at least 20% free at all times. If it reaches 85% — add a datafile immediately. A full MGMT_TABLESPACE causes OEM to stop recording metrics and may crash OMS.
15.9 — Verify Notification Setup Works
📝 Test that email alerts actually get delivered before trusting OEM to alert you.
# Send test notification from OEM Console
# Setup → Notifications → Notification Methods → Test
# Enter your email address and click Test
# OR from command line — force a test alert
su - oracle
$OMS_HOME/bin/emcli login -username=sysman -password=Sysman_123
$OMS_HOME/bin/emcli send_test_notification -admin_username=sysman15.10 — Configure OEM Repository Backup
⚠️ IMPORTANT: The OEM repository database (EMREP) must be backed up regularly. If EMREP is lost and there is no backup, you lose ALL OEM configuration — all targets, thresholds, jobs, historical data, everything. EMREP backup is as critical as production database backup.
# Add EMREP to RMAN backup schedule
su - oracle
export ORACLE_SID=EMREP
rman target /-- Configure RMAN for EMREP
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
-- Take immediate backup
BACKUP DATABASE PLUS ARCHIVELOG;
LIST BACKUP SUMMARY;
EXIT;16. Quick Reference Card
| Task | Command |
|---|---|
| Check OMS status | emctl status oms |
| Check OMS detailed | emctl status oms -details |
| Start OMS | emctl start oms |
| Stop OMS | emctl stop oms -all |
| Restart OMS | emctl stop oms -all && emctl start oms |
| Start agent | $AGENT_HOME/bin/emctl start agent |
| Stop agent | $AGENT_HOME/bin/emctl stop agent |
| Check agent status | $AGENT_HOME/bin/emctl status agent |
| Secure agent | $AGENT_HOME/bin/emctl secure agent <password> |
| Upload agent data now | $AGENT_HOME/bin/emctl upload agent |
| Reload agent | $AGENT_HOME/bin/emctl reload agent |
| EM CLI login | emcli login -username=sysman -password=Sysman_123 |
| List all targets | emcli get_targets |
| List agents status | emcli get_agents_status |
| Start blackout | emctl start blackout <name> <target>:<type> -d <mins> |
| Stop blackout | emctl stop blackout <name> |
| Check blackout | emctl status blackout <name> |
| OEM Console URL | https://emserver:7803/em |
| WebLogic Console | https://emserver:7799/console |
| OMS log file | $OMS_INSTANCE/em/EMGC_OMS1/sysman/log/emoms.log |
| Agent log file | $AGENT_HOME/../agent_inst/sysman/log/gcagent.log |
| Check SYSMAN status | SELECT username,account_status FROM dba_users WHERE username='SYSMAN'; |
| Unlock SYSMAN | ALTER USER sysman ACCOUNT UNLOCK; |
| DBSNMP unlock | ALTER USER dbsnmp IDENTIFIED BY pwd ACCOUNT UNLOCK; |
| Check EMREP tablespace | SELECT tablespace_name,used_pct FROM ... (space query) |
| Patch OMS | opatch apply -oh $OMS_HOME -silent <PATCHDIR> |
| Check OEM version | emctl status oms | grep "OMS Version" |
| RMAN backup EMREP | BACKUP DATABASE PLUS ARCHIVELOG; |
| MOS OEM Install Guide | Doc ID 2349010.1 |
| MOS OEM Prerequisites | Doc ID 1926545.1 |
| MOS Agent Deployment | Doc ID 2219797.1 |
This SOP covers everything you need to install and configure Oracle Enterprise Manager Cloud Control 19c on Linux without referring to any other source. Always size the OMS server correctly before installation, always use FQDN for the OMS hostname, always back up the repository database, configure blackouts before every maintenance window, and always verify all agents are uploading data after any OEM maintenance activity.


