8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | 23c | Misc | PL/SQL | SQL | RAC | WebLogic | Linux

Home » Articles » 13c » Here

Silent Upgrade of Oracle Enterprise Manager Cloud Control to 13c Release 3 (13cR3)

This article describes a silent upgrade of Enterprise Manager Cloud Control to 13c Release 3 (13cR3). In this case the source version was 12cR5, but the process is similar for any supported source version. Each upgrade potentially requires additional steps, so this is not meant as a replacement for reading the documentation.

Related articles.

Software

Download the following software:

Prerequisites

There are a lot of prerequisites in the documentation, which will vary depending on the version of the OMS you are upgrading from, the versions of the plugins you are currently using, and the versions of the agents you are using on the target hosts. The following prerequisites work when upgrading from a clean 12cR5 installation, but for anything else you should read the documented prerequisites.

Make sure the privileges for the DBMS_RANDOM package are as described in the documentation.

export ORACLE_SID=emcdb
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

sqlplus / as sysdba <<EOF

-- Switch to container if using a PDB.
ALTER SESSION SET CONTAINER = emrep;

GRANT EXECUTE ON dbms_random TO dbsnmp; 
GRANT EXECUTE ON dbms_random TO sysman;
REVOKE EXECUTE ON dbms_random FROM public;

-- Recompile invalid objects.
EXEC UTL_RECOMP.recomp_serial('SYS');
EXEC UTL_RECOMP.recomp_serial('DBSNMP');
EXEC UTL_RECOMP.recomp_serial('SYSMAN');

EXIT;
EOF

Make sure there are no invalid objects in the repository database.

SELECT owner, object_name, object_type
FROM   dba_objects 
WHERE  status = 'INVALID'
AND    owner IN ('SYS', 'SYSTEM', 'SYSMAN', 'MGMT_VIEW', 'DBSNMP', 'SYSMAN_MDS');

Make sure the OPTIMIZER_ADAPTIVE_FEATURES parameter is set to FALSE.

sqlplus / as sysdba <<EOF
ALTER SYSTEM SET optimizer_adaptive_features=FALSE;
EXIT;
EOF

Copy the emkey using the following commands, adjust as required. You will have to enter the Cloud Control sysman password.

export OMS_HOME=/u01/app/oracle/middleware/oms
$OMS_HOME/bin/emctl config emkey -copy_to_repos -sysman_pwd Welcome1
$OMS_HOME/bin/emctl status emkey -sysman_pwd Welcome1

Stop the OMS and the agent.

export OMS_HOME=/u01/app/oracle/middleware/oms
export AGENT_HOME=/u01/app/oracle/agent/agent_inst

$OMS_HOME/bin/emctl stop oms -all
$AGENT_HOME/bin/emctl stop agent

Create a directory for the new installation.

mkdir -p /u01/app/oracle/middleware2
mkdir -p /u01/app/oracle/agent2

This is a full product installation, so you need enough free space to hold a full Cloud Control installation. You can delete the old OMS later, but for a period there will be two installations on the server.

Backup your repository. In my case, Cloud Control runs on a VM, so a database backup was performed, as well as a whole VM backup.

For clarity, my starting 12cR5 installation had the following details.

HOSTNAME  : ol7-emcc.localdomain
DB Version: 12.1.0.2
ORACLE_SID: emcdb
PDB_NAME  : emrep
PORT      : 1521
URL       : https://ol7-emcc.localdomain:7803/em

Cloud Control 13c Installation and Upgrade

Create a response file for the installation process.

# Set parameters.
ORACLE_BASE=/u01/app/oracle
ORA_INVENTORY=/u01/app/oraInventory
ORACLE_HOSTNAME=${HOSTNAME}
PDB_NAME=emrep
SYS_PASSWORD=SysPassword1
UNIX_GROUP_NAME=oinstall
OLD_BASE_DIR=${ORACLE_BASE}/middleware
MW_HOME=${ORACLE_BASE}/middleware2
OMS_HOME=${MW_HOME}
GC_INST=${ORACLE_BASE}/gc_inst2
AGENT_BASE=${ORACLE_BASE}/agent2
WLS_USERNAME=weblogic
WLS_PASSWORD=Welcome1
SYSMAN_PASSWORD=${WLS_PASSWORD}
AGENT_PASSWORD=${WLS_PASSWORD}
SOFTWARE_LIBRARY=${ORACLE_BASE}/swlib
DATABASE_HOSTNAME=localhost
LISTENER_PORT=1521
SOFTWARE_DIR=/u01/software

# Create Response file.
cat > /tmp/install.rsp <<EOF
RESPONSEFILE_VERSION=2.2.1.0.0
UNIX_GROUP_NAME=${UNIX_GROUP_NAME}
INVENTORY_LOCATION=${ORA_INVENTORY}
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
INSTALL_UPDATES_SELECTION=skip
ORACLE_MIDDLEWARE_HOME_LOCATION=${MW_HOME}
ORACLE_HOSTNAME=${ORACLE_HOSTNAME}
AGENT_BASE_DIR=${AGENT_BASE}
WLS_ADMIN_SERVER_USERNAME=${WLS_USERNAME}
WLS_ADMIN_SERVER_PASSWORD=${WLS_PASSWORD}
WLS_ADMIN_SERVER_CONFIRM_PASSWORD=${WLS_PASSWORD}
NODE_MANAGER_PASSWORD=${WLS_PASSWORD}
NODE_MANAGER_CONFIRM_PASSWORD=${WLS_PASSWORD}
ORACLE_INSTANCE_HOME_LOCATION=${GC_INST}
CONFIGURE_ORACLE_SOFTWARE_LIBRARY=true
SOFTWARE_LIBRARY_LOCATION=${SOFTWARE_LIBRARY}
DATABASE_HOSTNAME=${DATABASE_HOSTNAME}
LISTENER_PORT=${LISTENER_PORT}
SERVICENAME_OR_SID=${PDB_NAME}
SYS_PASSWORD=${SYS_PASSWORD}
SYSMAN_PASSWORD=${SYSMAN_PASSWORD}
SYSMAN_CONFIRM_PASSWORD=${SYSMAN_PASSWORD}
DEPLOYMENT_SIZE=SMALL
AGENT_REGISTRATION_PASSWORD=${AGENT_PASSWORD}
AGENT_REGISTRATION_CONFIRM_PASSWORD=${AGENT_PASSWORD}
PLUGIN_SELECTION={}
b_upgrade=false
EM_INSTALL_TYPE=NOSEED
CONFIGURATION_TYPE=LATER
CONFIGURE_SHARED_LOCATION_BIP=false
EOF

Start the silent software-only installation by running the "em13300_linux64.bin" file.

${SOFTWARE_DIR}/em13300_linux64.bin -silent -responseFile /tmp/install.rsp

If you have limited space in your "/tmp" location, you can provide an alternative location for temporary files.

mkdir -p /u01/tmp

${SOFTWARE_DIR}/em13300_linux64.bin -silent -responseFile /tmp/install.rsp -J-Djava.io.tmpdir=/u01/tmp/

Once the installation completes, run the root scripts as the root user.

sh ${MW_HOME}/allroot.sh

We can now perform the upgrade. Create a response file for the upgrade process.

cat > /tmp/upgrade.rsp <<EOF
RESPONSEFILE_VERSION=2.2.1.0.0
UNIX_GROUP_NAME=${UNIX_GROUP_NAME}
INVENTORY_LOCATION=${ORA_INVENTORY}
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
INSTALL_UPDATES_SELECTION=skip
ORACLE_MIDDLEWARE_HOME_LOCATION=${MW_HOME}
ORACLE_HOSTNAME=${ORACLE_HOSTNAME}
AGENT_BASE_DIR=${AGENT_BASE}
WLS_ADMIN_SERVER_USERNAME=${WLS_USERNAME}
WLS_ADMIN_SERVER_PASSWORD=${WLS_PASSWORD}
WLS_ADMIN_SERVER_CONFIRM_PASSWORD=${WLS_PASSWORD}
NODE_MANAGER_PASSWORD=${WLS_PASSWORD}
NODE_MANAGER_CONFIRM_PASSWORD=${WLS_PASSWORD}
ORACLE_INSTANCE_HOME_LOCATION=${GC_INST}
OLD_BASE_DIR=${OLD_BASE_DIR}
CONFIGURE_ORACLE_SOFTWARE_LIBRARY=true
SOFTWARE_LIBRARY_LOCATION=${SOFTWARE_LIBRARY}
DATABASE_HOSTNAME=${DATABASE_HOSTNAME}
LISTENER_PORT=${LISTENER_PORT}
SERVICENAME_OR_SID=${PDB_NAME}
SYS_PASSWORD=${SYS_PASSWORD}
SYSMAN_PASSWORD=${SYSMAN_PASSWORD}
REPOSITORY_BACKUP_DONE=true
SYSMAN_CONFIRM_PASSWORD=${SYSMAN_PASSWORD}
DEPLOYMENT_SIZE=SMALL
AGENT_REGISTRATION_PASSWORD=${AGENT_PASSWORD}
AGENT_REGISTRATION_CONFIRM_PASSWORD=${AGENT_PASSWORD}
PLUGIN_SELECTION={}
b_upgrade=true
EM_INSTALL_TYPE=NOSEED
CONFIGURATION_TYPE=ADVANCED
CONFIGURE_SHARED_LOCATION_BIP=false
EOF

Run the configuration using the response file we just created.

${MW_HOME}/sysman/install/ConfigureGC.sh -silent -responseFile /tmp/upgrade.rsp

Wait for the upgrade to complete. This can take a long time.

With the upgrade complete you should secure the EMKey using the following command. It should tell you it has already been done, but it does no harm to run the command again to make sure.

export OMS_HOME=/u01/app/oracle/middleware2
$OMS_HOME/bin/emctl config emkey -remove_from_repos -sysman_pwd Welcome1

Check your stop/start scripts have the updated OMS home.

export MW_HOME=${ORACLE_BASE}/middleware2
export OMS_HOME=${MW_HOME}

Start the original agent. We will upgrade that in the next section.

export AGENT_HOME=/u01/app/oracle/agent/agent_inst
$AGENT_HOME/bin/emctl start agent

The login screen is available from a browser using the URL provided in the previous screen ("https://ol7-emcc.localdomain:7803/em"). Log in with the username "sysman" and the password you specified during your installation.

Login

Once logged in, you are presented with a with the "Accessibility Preference" screen. Click the "Save and Continue" button and you are presented with the the "License Agreement" screen. Click the "I Accept" button and you are presented with the homepage selector screen. On the right side of the screen it lists the post-installation setup tasks you need to work through. I have these documented in a separate article. Select the desired homepage (I chose Summary).

Homepage Selector

You are presented with the selected screen as the console homepage. it might take some time for all of the targets to be recognised as up.

Console

Agent Upgrade

If you want to perform the agent upgrade silently using WLST, there is an example of how to do this here. There rest of this section assumes you are pushing the agent upgrade from the Cloud Control interface.

Navigate to "Setup (cog icon) > Manage Cloud Control > Upgrade Agents".

Upgrade Agents

Click the "+ Add" button, highlight any agents to upgrade, then click the "OK" button.

Select Agents

When you are happy with your selection, click the "Submit" button.

Upgrade Agents

If you do not have "root" access or sudo configured to allow you to run the root scripts, click the "OK" on the warning message. The root scripts can be run after the installation completes.

Agent Upgrade Notifications

Wait while the upgrade takes place.

Agent Upgrade Status

If you need to run any root scripts manually, do so now. They are located in the agent home on each monitored machine (AGENT_HOME/agent_13.3.0.0.0/root.sh).

Click on the "Post Agent Upgrade Tasks" tab and click the "+Add" button to create a job to clean up old agents from the servers that have had their agents upgraded. This can be done immediately, or at a later date.

The main body of the upgrade is now complete.

Navigate to the "Post Upgrade Tasks" screen (Setup > Manage Cloud Control > Post Upgrade Tasks). Highlight each of the tasks in the list and click the "Start" button. This just performs some final data migration.

Startup/Shutdown

Cloud Control is set to auto-start using the "gcstartup" service. The "/etc/oragchomelist" file contains the items that will be started by the system. After the upgrade, it may list both OMS installations. If you want to use this auto-start, you will need to amend the contents of the file to make sure it is consistent with the new installation.

/u01/app/oracle/middleware2

/u01/app/oracle/agent/agent_13.3.0.0.0:/u01/app/oracle/agent/agent_inst

The path to the agent is the same as that from the previous installation. If you included a version number in the agent home, this may look a little strange.

On a simple installation the default auto-start will cause a problem as Cloud Control will attempt to start before the database has started. The service can be disabled by commenting out (using #) all the contents of the "/etc/oragchomelist" file to prevent the auto-start and use start/stop scripts described below.

If the start/stop needs to be automated, you can do it in the usual way using Linux service that calls your start/stop scripts that include the database management.

Use the following commands to turn on all components installed by this article. If you have a startup/shutdown script, remember to amend it to take account of the new paths.

#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1
export OMS_HOME=/u01/app/oracle/middleware2
export AGENT_HOME=/u01/app/oracle/agent2/agent_inst

# Start everything
$ORACLE_HOME/bin/dbstart $ORACLE_HOME

$OMS_HOME/bin/emctl start oms

$AGENT_HOME/bin/emctl start agent

Use the following commands to turn off all components installed by this article.

#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1
export OMS_HOME=/u01/app/oracle/middleware2
export AGENT_HOME=/u01/app/oracle/agent2/agent_inst

# Stop everything
$OMS_HOME/bin/emctl stop oms -all

$AGENT_HOME/bin/emctl stop agent

$ORACLE_HOME/bin/dbshut $ORACLE_HOME

Remove old OMS

If you have followed best practices when you originally installed Cloud Control and the upgraded has worked with no errors, the cleanup of old OMS installation is simple. You just remove the directory.

# Old OMS: /u01/app/oracle/middleware
# New OMS: /u01/app/oracle/middleware2

# Delete old OMS.
rm -Rf /u01/app/oracle/middleware

Check the crontab for the "oracle" user, to make sure there is no reference to the old OMS. If there is, amend it to match the new OMS location.

$ crontab -l
#0,15,30,45 * * * * /u01/app/oracle/middleware/oracle_common/ccr/bin/emCCR -cron -silent start
0,15,30,45 * * * * /u01/app/oracle/middleware2/oracle_common/ccr/bin/emCCR -cron -silent start
$

If your central agent was originally installed under the OMS home, you will have to relocate the agent before doing this. This topic is covered in full here.

For more information see:

Hope this helps. Regards Tim...

Back to the Top.