I do a lot of testing in my lab environment with a lot of different Oracle products including Oracle Enterprise Manager (OEM).  One of the things that I have run into is when I reinstall my OEM system, I am usually left with several hosts with OEM agents left over on them.  Since I might want to re-install OEM on those hosts again, I needed to figure out a way to delete the OEM 13c host agent remotely  without removing any other software and leaving the Oracle inventory intact.

This just happened recently when I wanted to verify that OEM 13.3 works well with a 19.3 repository database.  So, I wanted to figure out how to setup a script to remove the OEM 13c host agent remotely from several hosts.

Note:  If I wanted to remove hosts from a running OEM server I would use the agent decommission option that is available prior to removing the agent from the host.

I found that you can remove the OEM 13c Host Agent remotely with the following command:

$<AGENT_HOME>/perl/bin/perl <AGENT_HOME>/sysman/install/AgentDeinstall.pl -agentHome <AGENT_HOME>

In my case, I installed the agent in /u01/app/oracle/agent13c and the agent was the 13.2 agent, so the AGENT_HOME is /u01/app/oracle/agent13c/agent_13.2.0.0.0.  So, I would remove it with the following command:

/u01/app/oracle/agent13c/agent_13.2.0.0.0/perl/bin/perl /u01/app/oracle/agent13c/agent_13.2.0.0.0/sysman/install/AgentDeinstall.pl -agentHome /u01/app/oracle/agent13c/agent_13.2.0.0.0

I easily scripted this to remove the OEM agent from all of my GoldenGate test systems with this:

# This script will remove agents from remote servers.

#

# etw 2019-05-22

#

for i in gg20a gg20b gg21a gg21b gg22a gg22b gg23a gg23b gghub00 gghub01

do

  ssh oracle@$i “/u01/app/oracle/agent13c/agent_13.2.0.0.0/perl/bin/perl /u01/app/oracle/agent13c/agent_13.2.0.0.0/sysman/install/AgentDeinstall.pl -agentHome /u01/app/oracle/agent13c/agent_13.2.0.0.0”

  ssh oracle@$i “ls /u01/app/oracle”

done

Once this completed, I was safely able to re-install agents on those hosts.