Oracle Enterprise Manager 13c Release 4 – Time to Upgrade – First Experiences

The roll-out of the newest Oracle Enterprise Manager 13 Release 4 is a few days old, about time to try out the upgrade process in my ESXi lab environment.

First: This blog post about the OEM upgrade process is based on my own experience.

Software

https://www.oracle.com/enterprise-manager/downloads/cloud-control-downloads.html

Documents

https://docs.oracle.com/en/enterprise-manager/cloud-control/enterprise-manager-cloud-control/13.4/emupg/index.html

The Environment

  • Oracle Enterprise Manager 13.3 running on Oracle Linux 7.6 – OEM Patchlevel January 2020 – Non-HA
  • Oracle Enterprise Edition Repository 19.6.0 Single Tenant Database 
  • Oracle Restart / ASM 19.6.0
  • Additional Oracle Linux Server with 19.3.0 Container Databases
  • All targets up and running
  • My Oracle Support connected
  • Software staged directory in /u01/app/oracle/stage/em13cr4 and permission changed to execute bin file (chmod u+x em13400_linux64.bin).
oracle@kestenholz:/u01/app/oracle/stage/em13cr4/ [oms1303] ll
total 12429656
drwxr-xr-x 2 oracle oinstall       4096 Feb  2 12:13 .
drwxr-xr-x 3 oracle oinstall         21 Feb  2 20:13 ..
-rw-r--r-- 1 oracle oinstall 2109004737 Feb  2 12:11 em13400_linux64-2.zip
-rw-r--r-- 1 oracle oinstall 2047749474 Feb  2 12:11 em13400_linux64-3.zip
-rw-r--r-- 1 oracle oinstall 2117312528 Feb  2 12:12 em13400_linux64-4.zip
-rw-r--r-- 1 oracle oinstall  808014516 Feb  2 12:12 em13400_linux64-5.zip
-rw-r--r-- 1 oracle oinstall 2143125187 Feb  2 12:13 em13400_linux64-6.zip
-rw-r--r-- 1 oracle oinstall 1879163226 Feb  2 12:14 em13400_linux64-7.zip
-rwxr-x--- 1 oracle oinstall 1623577684 Feb  2 12:10 em13400_linux64.bin

Prerequisites

It’s important to verify the changed prerequisites – Chapter 3 – Prerequisites for Upgrading to Enterprise Manager Cloud Control 13c Release 4 – I had do disable all adaptive features in the repository pluggable database:

alter system set "_optimizer_nlj_hj_adaptive_join"= FALSE scope=both
sid='*';
alter system set "_optimizer_strans_adaptive_pruning" = FALSE
scope=both sid='*';
alter system set "_px_adaptive_dist_method" = OFF scope=both sid='*';
alter system set "_sql_plan_directive_mgmt_control" = 0 scope=both
sid='*';
alter system set "_optimizer_dsdir_usage_control" = 0 scope=both
sid='*';
alter system set "_optimizer_use_feedback" = FALSE scope=both sid='*';
alter system set "_optimizer_gather_feedback" = FALSE scope=both
sid='*';
alter system set "_optimizer_performance_feedback" = OFF scope=both
sid='*';

Restart the database after the changed settings.From my view this sentence here is wrong is the documentation (my database has version 19.6.0):

If your Management Repository is using Oracle Database 12.2 or higher, none of these parameters need to be set. 

Why? If these parameters are not set, the installer refuses working.

EMKEY Copy Requirements

The Key was copied to the repository. It well be removed after the successful upgrade.

oracle@kestenholz: [oms1303] $ORACLE_HOME/bin/emctl config emkey -copy_to_repos
Oracle Enterprise Manager Cloud Control 13c Release 3
Copyright (c) 1996, 2018 Oracle Corporation.  All rights reserved.
Enter Enterprise Manager Root (SYSMAN) Password :
The EMKey has been copied to the Management Repository. This operation will cause the EMKey to become unsecure.
After the required operation has been completed, secure the EMKey by running "emctl config emkey -remove_from_repos".

Run Installer

Start the Oracle Universal Installer

The OMS is down now (emctl stop oms -all). Start the installer.

oracle@kestenholz:/u01/app/oracle/stage/em13cr4/ [oms1303] ./em13400_linux64.bin

My Oracle Support Details

I am a registered user in My Oracle Support, I get enough information every week… I don’t enable this checkbox.

Software Updates

At the moment, there are no updates available. Maybe in future there will be any patches available for auto apply during the installation/upgrade process.

Installation Type

Upgrade an existing Enterprise Manager system, this one is my existing installation.

 

Installation Details

Enter a new Middleware Home Location.

Database Connection Details

Enter the SYS and SYSMAN password of the running repository. DDMP (Deferred Data Migration) Jobs are enabled. According the documentation, these jobs are running in the background when the OEM is starting up during the upgrade process to convert old data to the new format. If you have a huge amount of data in your earlier release, then the upgrade can take longer. You can run this job – if disabled – later as Post Upgrade Tasks.

Warnings

I will change to SHA communication later.

The repository has 19.6.0, all required patches are included.

I confirm that the JVMD engine is stopped, this has happened by stopping the OMS.

I had to stop the agent which was running on the management server.

Fix Parameter Settings by the Installer

For my environment, I let the installer fix this settings.

Plug-in Upgrade

Here we see the already installed plugins, they will be upgraded too.

Select Plug-ins

I don’t ant to install additional plug-ins.

Extend WebLogic Server Domain

Enter the password for the weblogic user and define the OMS Instance Base Location.

Enterprise Manager Shared Location Details

My Oracle Enterprise Manager doesn’t run in a high availability setup, I don’t need any shared location.

Port Configuration Details

I use the settings from the existing installation.

Review

Let’s start the upgrade!

Repository Upgrade failed

The upgrade process fails at the step where the repository has to be upgraded.

View Log – ORA-01950

When I scroll up the provided log from the installer, I see this error message here:

The schema manager logfile located in the 13.4 subdirectory $ORACLE_HOME/sysman/log/schemamanager confirms this error.

oracle@kestenholz:/u01/app/oracle/product/em13cr4/sysman/log/schemamanager/m_020220_0947_PM/m_020220_0947_PM.PREUPGRADE/ [oms1303] grep 1950 *
emschema.log.PREUPGRADE:SEVERE: ERROR:ORA-01950: no privileges on tablespace 'USERS'
grep: RCU2020-02-02_21-47_829509113: Is a directory
rcu.log:Sun Feb 2 21:47:41.519 CET 2020 ERROR assistants.rcu.Rcu: oracle.sysman.assistants.rcu.backend.action.AbstractAction::handleNonIgnorableError: Received Non-Ignorable Error: ORA-01950: no privileges on tablespace 'USERS'
rcu.log:Sun Feb 2 21:47:41.520 CET 2020 ERROR assistants.rcu.Rcu: oracle.sysman.assistants.common.dbutil.jdbc.JDBCEngine::onException: SQLException: ORA-01950: no privileges on tablespace 'USERS'
rcu.log:java.sql.SQLSyntaxErrorException: ORA-01950: no privileges on tablespace 'USERS'
rcu.log:oracle.sysman.assistants.common.dbutil.SQLFatalErrorException: java.sql.SQLSyntaxErrorException: ORA-01950: no privileges on tablespace 'USERS'
rcu.log:Caused by: java.sql.SQLSyntaxErrorException: ORA-01950: no privileges on tablespace 'USERS'
rcu.log:Caused by: oracle.sysman.assistants.common.dbutil.SQLFatalErrorException: java.sql.SQLSyntaxErrorException: ORA-01950: no privileges on tablespace 'USERS'
rcu.log:Caused by: java.sql.SQLSyntaxErrorException: ORA-01950: no privileges on tablespace 'USERS'

At this point, this is curious, because in 13.3, there were no objects of the SYSMAN in the USERS tablespace. All objects are located in OEM tablespaces with the MGMT prefix. Here is a list of objects in a repository where an Oracle Enterprise Manager 13c Release 3 is up and running.

SQL> select owner,segment_type,tablespace_name,count(*) from dba_segments where owner='SYSMAN' group by owner,segment_type,tablespace_name order by 1,2,3;

OWNER                SEGMENT_TYPE       TABLESPACE_NAME                  COUNT(*)
-------------------- ------------------ ------------------------------ ----------
SYSMAN               INDEX              MGMT_AD4J_TS                           18
SYSMAN               INDEX              MGMT_ECM_DEPOT_TS                      10
SYSMAN               INDEX              MGMT_TABLESPACE                      1701
SYSMAN               INDEX PARTITION    MGMT_AD4J_TS                          192
SYSMAN               INDEX PARTITION    MGMT_ECM_DEPOT_TS                      15
SYSMAN               INDEX PARTITION    MGMT_TABLESPACE                      1515
SYSMAN               LOB PARTITION      MGMT_ECM_DEPOT_TS                      15
SYSMAN               LOB PARTITION      MGMT_TABLESPACE                       203
SYSMAN               LOBINDEX           MGMT_AD4J_TS                            1
SYSMAN               LOBINDEX           MGMT_ECM_DEPOT_TS                      37
SYSMAN               LOBINDEX           MGMT_TABLESPACE                       159
SYSMAN               LOBSEGMENT         MGMT_AD4J_TS                            1
SYSMAN               LOBSEGMENT         MGMT_ECM_DEPOT_TS                      37
SYSMAN               LOBSEGMENT         MGMT_TABLESPACE                       159
SYSMAN               NESTED TABLE       MGMT_TABLESPACE                         7
SYSMAN               TABLE              MGMT_AD4J_TS                           13
SYSMAN               TABLE              MGMT_ECM_DEPOT_TS                      11
SYSMAN               TABLE              MGMT_TABLESPACE                      1053
SYSMAN               TABLE PARTITION    MGMT_AD4J_TS                          192
SYSMAN               TABLE PARTITION    MGMT_TABLESPACE                       622

20 rows selected.

The solution is simple. Just grant the permissions for the USERS tablespace to SYSMAN and retry the installation progress.But, don’t ask me why SYSMAN creates now objects in USERS…

SQL> ALTER USER sysman QUOTA UNLIMITED ON users;

User altered.

After a while, you can see new created tables and indexes in tablespace USERS for user SYSMAN.

SQL> select owner,segment_type,tablespace_name,count(*) from dba_segments where owner='SYSMAN' group by owner,segment_type,tablespace_name order by 1,2,3;

OWNER                SEGMENT_TYPE       TABLESPACE_NAME                  COUNT(*)
-------------------- ------------------ ------------------------------ ----------
SYSMAN               INDEX              MGMT_AD4J_TS                           18
SYSMAN               INDEX              MGMT_ECM_DEPOT_TS                      10
SYSMAN               INDEX              MGMT_TABLESPACE                      1753
SYSMAN               INDEX              USERS                                   7
SYSMAN               INDEX PARTITION    MGMT_AD4J_TS                          192
SYSMAN               INDEX PARTITION    MGMT_ECM_DEPOT_TS                      15
SYSMAN               INDEX PARTITION    MGMT_TABLESPACE                      1537
SYSMAN               LOB PARTITION      MGMT_ECM_DEPOT_TS                      15
SYSMAN               LOB PARTITION      MGMT_TABLESPACE                       205
SYSMAN               LOBINDEX           MGMT_AD4J_TS                            1
SYSMAN               LOBINDEX           MGMT_ECM_DEPOT_TS                      37
SYSMAN               LOBINDEX           MGMT_TABLESPACE                       181
SYSMAN               LOBSEGMENT         MGMT_AD4J_TS                            1
SYSMAN               LOBSEGMENT         MGMT_ECM_DEPOT_TS                      37
SYSMAN               LOBSEGMENT         MGMT_TABLESPACE                       181
SYSMAN               NESTED TABLE       MGMT_TABLESPACE                         7
SYSMAN               TABLE              MGMT_AD4J_TS                           13
SYSMAN               TABLE              MGMT_ECM_DEPOT_TS                      11
SYSMAN               TABLE              MGMT_TABLESPACE                      1079
SYSMAN               TABLE              USERS                                  53
SYSMAN               TABLE PARTITION    MGMT_AD4J_TS                          192
SYSMAN               TABLE PARTITION    MGMT_TABLESPACE                       625

22 rows selected.

The repository upgrade step runs fine now, the whole upgrade process continuous.

Finish

After while, yes we did it, the root script execution is the last task. 

Script execution.

# /u01/app/oracle/product/em13cr4/allroot.sh

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

Starting to execute /u01/app/oracle/product/em13cr4/root.sh ......
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/em13cr4

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
/etc exist
/u01/app/oracle/product/em13cr4
Finished execution of  /u01/app/oracle/product/em13cr4/root.sh ......

The Enterprise Manager is now running with Release 4.

About Enterprise Manager

Next steps are

  • upgrade the Oracle agents
  • uninstall the old OEM software –  btw, the installer already detaches the old ORACLE_HOME from Oracle’s central inventory for you and removes the emkey from the repository 🙂

Summary

This is a lab environment, not a huge setup with hundreds of targets. But we can see here two important points for the upgrade process. a) read the manual and disable all adaptive features, even when you have an 19c database and b) user SYSMAN needs permission on the USERS tablespace. This is very unusual and should be corrected from my side. But now, enjoy Oracle Enterprise Manager 13c Release 4!