Easy EM12c Agent Deployment on Windows
One of the greatest advancements in EM12c from previous Enterprise Manager versions is the auto-deployment. I have a number of clients with Windows environments and upon another recent search on Google, I found that there was a consistent and solid recommendation of installing Cygwin, (or another shell emulator installation) to utilize the auto-deploy. There is a large amount of work that is required to perform the pre-requisites to then take advantage of the auto-deploy, so I’m thrilled when I see someone recommend using the silent installation with Windows installation. I’m aware that I, along with others, have created posts that demonstrate silent deployments, but not JUST for Windows, so here it is!
The Software Library
A silent deploy demands a software library for a download the agent zip file to. This must be pre-configured beforehand.
To configure the software library, log into the EM12c environment and go to the software library:
In the Software Library administration section, click on ADD.
Enter a name and location for the software library, ensure you’ve already created the folder names in Windows to ensure success.
Click on OK
You will see the software library in the list:
You will now use this directory to download the agent deployment zip files to.
Download the Agent Deployment Files
Deployment is done by the Enterprise Manager Command Line Interface, (EMCLI). The emcli is ready with EM12c, release 2, but you need to set the environment up to support the emcli. The JAVA_HOME must be set before your Windows emcli will work correctly. Either set it in the environment variables or set it at the command line. It must be java 1.6 or greater to work with emcli.
set JAVA_HOME=C:\Progra~2\Java\jre7
Log into the EMCLI as SYSMAN or user with agent deployment privs:
E:\app\oracle\em12c\oms\BIN>emcli login -username=sysman Enter password : Login successful
Syncronize the EMCLI so that it is up to date with the repository:
E:\app\oracle\em12c\oms\BIN>emcli sync Synchronized successfully
Query the repository to get what agents are in the repository:
E:\app\oracle\em12c\oms\BIN>emcli get_supported_platforms Getting list of platforms ... Check the logs at E:\app\oracle\em12c\gc_inst\em\EMGC_OMS1\sysman\emcli\setup/.emcli/agent.log About to access self-update code path to retrieve the platforms list.. Getting Platforms list ... ----------------------------------------------- Version = 12.1.0.2.0 Platform = Microsoft Windows x64 (64-bit) ----------------------------------------------- Platforms list displayed successfully.
Deploy the Agent
OK, time to download it to the software drive. The syntax asks for the destination, which we list, along with the exact name of the platform of the agent that we want and the version:
emcli get_agentimage -destination=E:/sw_lib/12.2 –platform="Microsoft Windows x64 (64-bit)" –version=12.1.0.2.0
Platform:Microsoft Windows x64 (64-bit) Destination:e:\swlib === Partition Detail === Space free : 20 GB Space required : 1 GB Check the logs at E:\app\oracle\em12c\gc_inst\em\EMGC_OMS1\sysman\emcli\setup/.emcli/get_agentimage_2013-10-24_12-55-31-PM.log
A zip file now resides in the download folder:
Copy this file over to the target server that you wish to deploy the EM12c agent to and unzip the file:
You will see a list of files, (depending on version of EM12c, output may vary some…) but there are two files you are mainly interested in:
agentDeploy.bat Batch file to deploy the agent.
agent.rsp Agent response file that requires configuration.
The agent.rsp requires the following changes made:
OMS_HOST=OMS_ORCL.com #OMS Host Server name EM_UPLOAD_PORT=4800 #Upload port for OMS AGENT_REGISTRATION_PASSWORD=pssword #You can add a new one in security if you don't already have. AGENT_INSTANCE_HOME=E:\app\agent12c #Installation directory on new target AGENT_PORT=3872 #Agent port b_startAgent=true ORACLE_HOSTNAME=TRGT_ORCL.com #Name of target host s_agentHomeName=TRGT_ORCL #Name of the target in EM12c
Save the changes and execute the batch file to deploy the agent:
agentDeploy.bat AGENT_BASE_DIR=E:\app RESPONSE_FILE=E:\app\12.1.0.2.0_AgentCore\agent.rsp
E:\12.1.0.2.0_AgentCore_233>agentDeploy.bat AGENT_BASE_DIR=E:\app RESPONSE_FILE=E:\12.1.0.2.0_AgentCore_233\agent.rsp E:\12.1.0.2.0_AgentCore_233 Present working directory:E:\12.1.0.2.0_AgentCore_233 Archive location:E:\12.1.0.2.0_AgentCore_233 directory AGENT_BASE_DIR AGENT_BASE_DIR E:\app Agent base directory:E:\app E:\app RESPONSE_FILE E:\12.1.0.2.0_AgentCore_233\agent.rsp Agent base directory:E:\app OMS Host: Agent image loc : "E:\12.1.0.2.0_AgentCore_233" E:\app configonlyfalse Reading the properties file: "E:\12.1.0.2.0_AgentCore_233"\agentimage.properties 1 file(s) copied. This is the version 12.1.0.2.0 This is the type core This is the aru id 233 "Validating the OMS_HOST & EM_UPLOAD_PORT" "E:\app\core\12.1.0.2.0" "Executing command : E:\app\core\12.1.0.2.0\jdk\bin\java -classpath E:\app\core\12.1.0.2.0\jlib\agentInstaller.jar:E:\app\core\12.1.0.2.0\oui\jlib\OraInstaller.jar oracle.sysman.agent.installer.AgentInstaller E:\app\core\12.1.0.2.0 "E:\12.1.0.2.0_AgentCore
Validating oms host & port with url: http://OMS_ORCL.com:4800/empbs/genwallet Validating oms host & port with url: https://OMS_ORCL.com:4800/empbs/genwallet Return status:3 "E:\12.1.0.2.0_AgentCore_233"\12.1.0.2.0_PluginsOneoffs_233.zip "Executing command : E:\app\core\12.1.0.2.0\jdk\bin\java -classpath E:\app\core\12.1.0.2.0\jlib\OraInstaller.jar:E:\app\core\12.1.0.2.0\sysman\jlib\emInstaller.jar:E:\app\core\12.1.0.2.0\jlib\xmlparserv2.jar:E:\app\core\12.1.0.2.0\jlib\srvm.jar:E:\app\core
Executing agent install prereqs... Executing command: E:\app\core\12.1.0.2.0\oui\bin\setup.exe -ignoreSysPrereqs -prereqchecker -silent -ignoreSysPrereqs -waitForCompletion -prereqlogloc E:\app\core\12.1.0.2.0\cfgtoollogs\agentDeploy -entryPoint oracle.sysman.top.agent_Complete -detailedEx Prereq Logs Location:E:\app\core\12.1.0.2.0\cfgtoollogs\agentDeploy\prereq<timestamp>.log Agent install prereqs completed successfully
Cloning the agent home... Executing command: E:\app\core\12.1.0.2.0\oui\bin\setup.exe -ignoreSysPrereqs -clone -forceClone -silent -waitForCompletion -nowait ORACLE_HOME=E:\app\core\12.1.0.2.0 -responseFile E:\12.1.0.2.0_AgentCore_233\agent.rsp AGENT_BASE_DIR=E:/app AGENT_BASE_DIR Clone Action Logs Location:C:\Program Files\Oracle\Inventory\logs\cloneActions<timestamp>.log Cloning of agent home completed successfully
Attaching sbin home... Executing command: E:\app\core\12.1.0.2.0\oui\bin\setup.exe -ignoreSysPrereqs -attachHome -waitForCompletion -nowait ORACLE_HOME=E:\app\sbin ORACLE_HOME_NAME=sbin12c1 -force Attach Home Logs Location:E:\app\core\12.1.0.2.0\cfgtoollogs\agentDeploy\AttachHome<timestamp>.log Attach home for sbin home completed successfully.
Updating home dependencies... Executing command: E:\app\core\12.1.0.2.0\oui\bin\setup.exe -ignoreSysPrereqs -updateHomeDeps -waitForCompletion HOME_DEPENDENCY_LIST={E:\app\sbin:E:\app\core\12.1.0.2.0,} -invPtrLoc E:\app\core\12.1.0.2.0\oraInst.loc -force Update Home Dependencies Location:E:\app\core\12.1.0.2.0\cfgtoollogs\agentDeploy\UpdateHomeDeps<timestamp>.log Update home dependency completed successfully.
Performing the agent configuration... Executing command: E:\app\core\12.1.0.2.0\oui\bin\runConfig.bat ORACLE_HOME=E:\app\core\12.1.0.2.0 RESPONSE_FILE=E:\app\core\12.1.0.2.0\agent.rsp ACTION=configure MODE=perform COMPONENT_XML={oracle.sysman.top.agent.11_1_0_1_0.xml} RERUN=true Configuration Log Location:E:\app\core\12.1.0.2.0\cfgtoollogs\cfgfw\CfmLogger<timestamp>.log Agent Configuration completed successfully Agent deployment log location: E:\app\core\12.1.0.2.0\cfgtoollogs\agentDeploy\agentDeploy_2013-10-24_13-26-41-PM.log Agent deployment completed successfully. E:\12.1.0.2.0_AgentCore_233>E:\12.1.0.2.0_AgentCore_233
A couple times, you will see the Oracle Installer come up and you may see an error with an opportunity to close the program or repair. Choose to not close and let it continue, it’s an issue as the Installer attempts to login in without direct admin privileges, but it does recover.
You have now deployed the agent successfully and you can now log back into your EM12c and see the target host you just deployed. If you have auto-discovery, the secondary targets will be discovered and configuration completed or you can manually discover targets from this point.
This is all there is to deploying in Windows and not one Cygwin installation in sight! 🙂
Last time I used pull method to deployment a 12c agent onto windows host. But it looks like still some bugs in the deployment scripts.
http://docs.oracle.com/cd/E24628_01/install.121/e24089/install_agent_usng_rsp.htm#BABBFAAD
1. download the bat script from https://oms_server/em/install/getAgentImage?script=bat
2. install the curl from http://curl.haxx.se/dlwiz/?type=bin&os=Win64&flav=MinGW64
download it and unzip. and move it to c:\curl
3.change the curl path in the agentpull.bat to correct one
4.verify the pull scripts
-showPlatforms
5. wirte a repository file
LOGIN_USER=sysman
LOGIN_PASSWORD=xxxxx
PLATFORM=”Microsoft Windows x64 (64-bit)”
VERSION=12.1.0.2.0
AGENT_REGISTRATION_PASSWORD=xxxxxxx
6. using this command to pull the agent
must put AGENT_REGISTRATION_PASSWORD here
AgentPull.bat RSPFILE_LOC=C:\stage\agent.rsp AGENT_REGISTRATION_PASSWORD=xxxxxx AGENT_BASE_DIR=C:\oracle\agent
Hi Kellyn,
I’ve given your EM12c example a shot, thanks for the post !
In your example .rsp file you state port EM_UPLOAD_PORT=4800 (Target side), but how do I determine which port# I should use ? Port 4800 seems to be non-responsive on the OMS server.
On the OMS Server I checked the C:\orabase\gc_inst\em\EMGC_OMS1\emgc.properties file, which contains a number of port assignments. I see no transparency here when it comes to ponting out the correct EM_UPLOAD_PORT in the .rsp file.
Maybe I’m barking up the wrong tree ?? I get the following error:
D:\orabase\swlib>agentDeploy.bat AGENT_BASE_DIR=D:\orabase\agentbase RESPONSE_FI
LE=D:\orabase\swlib\agent.miracle.rsp
D:\orabase\swlib
Present working directory:D:\orabase\swlib
Archive location:D:\orabase\swlib directory
AGENT_BASE_DIR
AGENT_BASE_DIR
D:\orabase\agentbase
Agent base directory:D:\orabase\agentbase
D:\orabase\agentbase
RESPONSE_FILE
D:\orabase\swlib\agent.miracle.rsp
Agent base directory:D:\orabase\agentbase
OMS Host:
Agent image loc : “D:\orabase\swlib”
D:\orabase\agentbase configonlyfalse
Reading the properties file: “D:\orabase\swlib”\agentimage.properties
1 file(s) copied.
This is the version 12.1.0.3.0
This is the type core
This is the aru id 233
“Validating the OMS_HOST & EM_UPLOAD_PORT”
“D:\orabase\agentbase\core\12.1.0.3.0”
“Executing command : D:\orabase\agentbase\core\12.1.0.3.0\jdk\bin\java -classpat
h D:\orabase\agentbase\core\12.1.0.3.0\jlib\agentInstaller.jar:D:\orabase\agentb
ase\core\12.1.0.3.0\oui\jlib\OraInstaller.jar oracle.sysman.agent.installer.Agen
tInstaller D:\orabase\agentbase\core\12.1.0.3.0 “D:\orabase\swlib” D:\orabase\ag
entbase -prereq”
The image file D:\orabase\agentbase\core\12.1.0.3.0\jdk\bin\java.exe is valid, b
ut is for a machine type other than the current machine.
“Validating OMS_HOST & EM_UPLOAD_PORT failed.”
My .rsp file looks like this:
EM_INSTALL_TYPE=”AGENT”
OMS_HOST=xxxxxxxxx016.xxx.xxx#OMS Host Server name
EM_UPLOAD_PORT=4800 #Upload port for OMS
AGENT_REGISTRATION_PASSWORD=yyyyyyyyy #You can add a new one in security if you don’t already have.
AGENT_INSTANCE_HOME=D:\orabase\agentbase #Installation directory on new target
AGENT_PORT=3872 #Agent port
b_startAgent=true
ORACLE_HOSTNAME=xxxxxxxx223.xxx.xxx#Name of target host
s_agentHomeName=xxxxxxxx223 #Name of the target in EM12c
BR
Joe
thanks for this post ,
I have a question on deploying agent on windows failover cluster as after i deploy the agent on the two cluster nodes i followed document 464191.1 for deploy the agent on virtual host, but the problem i faild to install the plugin on the virtual host and this documention doesn’t help me in this issue.
thanks again.
Pingback: ASH Analytics- Activity Focused on SQL Data, Part I - Oracle - Oracle - Toad World
Thank you very much for your posting. It was very helpful. I was able to successfully deploy a OEM 12c agent to a Windows Server 2008 R2 server and I’m able to confirm the status of the 12c agent [emctl.bat status agent]. The final remaining problem that I have is that the host is not showing up in the “managed hosts” in OEM. I even tried to setup the discovery to discover the Windows Server 2008 R2 host running the 12c agent and still does not show up in the “hosts” section of the OEM web application. Is there something that I’m missing?
Perfect document, installed agent following it, thanks a ton.
It’s going to be end of mine day, except before end I am reading this great article to improve my
know-how.
This a very helpful article. God bless you.
How do you deinstall the host agent in windows deployed with the push method? There is no AgentDeinstall.pl script( as per Oracle docs)
Hi
Can you please let me know if I can follow the documentation Doc ID 464191.1 related to the installation of the OEM Agent 12c (12.1.0.3.0) on SQL server 2005 cluster database (windows 2003R2 OS 64-bit). I have successfully installed the OEM 12c agent on other non-cluster Windows servers using the curl package. I am not receiving any proper response from Oracle
Thank you
KR
Kellyn,
Most importantly thank you for all of the work that you do with OEM. The DBA Kevlar site is always accurate and it is really helpful.
Have you done any work with the OEM 12c R3 agent on Windows? This article discusses OEM 12c R2. When I tried following these instructions, I succeeded in installing the agent on Windows, but so far, the agent still throws errors when I attempt to bring it online and make it communicate with the OMS.
Thanks,
R3
Hi
I installed the OEM Agent on one of our Windows server using the curl package. I would like to uninstall the agent. Can you please tell me the instructions how to uninstall the agent
Thank you very much….. and one more quick question from my side … I am receiving these alerts
Metrics “Database Time Spent Waiting (%)” is at 76.417 for event class “Commit”
Metrics “Database Time Spent Waiting (%)” is at 76.417 for event class “Network”
“Others” etc. I tried to disable them from the template but still they have appeared and also I tried to change the critical to 100% and Warning to 99% from the database using a PL/SQL script and still it hasn’t worked (I still got “Database time spent waiting (%) is at 44.76 for event class”) . Finally I disabled them from the database and it worked like a Charm. Can you please let me know if there is any PL/SQL script that I need to execute from the database so that I receive the alerts only at 99% and 100%
Thank you
GKR
I’m not surprised that this is your most popular post of 2014! I must confess I am totally puzzled as to why almost everyone thinks Cygwin, psexec or some other remote installer / Unix emulator is absolutely required, and goes to such lengths to try to use them. As far as I can see, Cygwin etc. would only be needed in an environment where the DBA doesn’t have access to the Windows Oracle database server at OS level, and therefore has to jump through such hoops. Do you have any ideas about this?
Thanks for busting the myth and showing us the way!
Thank you, Penny! 🙂
To be fair, people get that idea because the Oracle installation documentation says to use one of those (cygwin or psexec) as two methods for installing on Windows hosts, and provide step by step instructions for doing so. The documentation also lists the ‘Add Hosts Target Wizard’ as the first preferred method for doing mass deployments, which requires Cygwin in order to work on Windows hosts.
http://docs.oracle.com/cd/E24628_01/install.121/e22624/install_agent.htm#CACJEFJI
We used Cygwin on our Windows hosts until Heartbleed, then removed all Cygwin installs and have been doing it the way this post suggests ever since – so thank you for the insight presented here.
It would be most welcome if the ‘Add Host Target Wizard’ worked out of the box for Windows hosts without the need for 3rd party libraries or utilities.
Shops that run Windows expect a setup/install .exe, double click, bring up an installer, enter credentials/path, click install, done – the way it was in OEM 10.
Windows is a “lost” OS in the support world and I’ll continue working to get the best support for all OS platforms and hope for better. For those of us that supported Windows, along with other platforms, you recognize that there are different requirements and if you work with those, then you have success.
Thanks for the reply – that (“lost”) seems like an apt description – those of us who have to support Oracle on Windows appreciate the effort. We can’t convert everyone to *nix based hosts, so we do what we can.
Yes this is the way I’ve been doing this as well. I run the install as administrator.
I secure my agent – or try to as the install shows agent configuration failed status=1 – so I did a emctl secure agent which did the trick. Not sure why this happens though
when i generate the script to deploy agent in AIX, the zip 12.1.0.4.0_PluginsOneoffs_212.zip is not good :s
E:GRID12omsBIN>emcli get_agentimage -destination=C:Agent_GRIDAIX -platform=”IBM AIX on POWER Systems (64-bit)” -ver
sion=12.1.0.4.0
=== Partition Detail ===
Space free : 13 GB
Space required : 1 GB
Check the logs at E:gc_instemEMGC_OMS1sysmanemclisetup/.emcli/get_agentimage_2015-09-02_09-31-34-AM.log
Downloading C:Agent_GRIDAIX12.1.0.4.0_AgentCore_212.zip
File saved as C:Agent_GRIDAIX12.1.0.4.0_AgentCore_212.zip
Downloading C:Agent_GRIDAIX12.1.0.4.0_PluginsOneoffs_212.zip
File saved as C:Agent_GRIDAIX12.1.0.4.0_PluginsOneoffs_212.zip
Downloading C:Agent_GRIDAIXunzip
File saved as C:Agent_GRIDAIXunzip
ERROR: Command C:Agent_GRIDAIXunzip C:Agent_GRIDAIX12.1.0.4.0_AgentCore_212.zip agentcoreimage.zip -d C:Agent_GRI
DAIX execution failed.
RECOMMENDATION: If your agent image platform and the emcli client setup is on a different platform then you need to set
the environment variable ZIP_LOC to absolute path to the zip utility which is greater than or equal to version 3.0.
Example: setenv ZIP_LOC /usr/local/bin/zip
the zip file contains no plugins its contains some directory and files like
‘autodeploy,bin,config,startWebLogic.sh ….) and the size of the zip is 888130ko
when i deploy and install the agent in the AIX servers i can’t discovry the target like DB… it’s normal because the plugins does not exist
How can i correct this in the OMS server to when i generate the agent image the zip pluginsOneoffs are correct ?
can you help me PLZ