=====Cloud Control 12c - Wichtige emcli Befehle===== Mit dem "emcli" Werkzeug läßt sich ab 12.1.0.4 in drei Arten arbeiten: * Standard Modus * Interaktiv * Script Wird das "Advanced Kit" vom OEM heruntergeladen, können mit jython (siehe => http://www.jython.org/) sehr mächtige Scripte erstellt werden. ==== emcli auf der lokalen Workstation installieren ==== Download vom OMS unter "Setup/Command Line": {{ :dba:installcloudcontrol:oms_12c_emcli_v01.png |Emcli Seite im OMS aufrufen}} Von der folgenden Seite kann nun der "emcli" Client geladen werden: {{ :dba:installcloudcontrol:oms_12c_emcli_v02.png |Emcli vom OMS laden}} === Installation unter Windows === Nach dem Herunterladen des Jar Files (in diesem Beispiel die Advanced Edition um das Scripting zu testen) wird mit Hilfe des Jarfiles emcli auf dem lokalen PC "ausgepackt". Pro OMS der mit dem Werkzeug bearbeitet werden soll, muss eine eigenen Installation erfolgen, daher zum Beispiel gleich zu Beginn eine passende Verzeichnisstruktur auf dem Windows Host aufbauen. Emcli Verzeichnis anlegen: D:\>mkdir D:\oracle\emcli D:\>mkdir D:\oracle\emcli\prod Java Version testen D:\>java -version java version "1.7.0_71" emcli auspacken java -jar C:\Users\gpipperr\Downloads\emcliadvancedkit.jar -install_dir=D:\oracle\emcli\prod Oracle Enterprise Manager 12c Release 4. .. Erweiterte EM CLI-Installation erfolgreich abgeschlossen. F³hren Sie "emcli help sync" aus dem EM CLI-Home (dem Verzeichnis, in dem Sie EM CLI installiert haben) aus, wenn Sie weitere Anweisungen ben÷tigen. In das emcli Verzeichnis wechseln und Setup aufrufen: cd D:\oracle\emcli\prod emcli setup -url="https://oraoms12c01:7803/em" -username=sysman -trustall Oracle Enterprise Manager 12c Release 4. ... Kennwort eingeben emcli Setup erfolgreich emcli sync ausführen emcli sync Synchronized successfully Standard Modus Testen mit z.B. emcli get_targets Interaktiven Modus testen mit: emcli Type help() for help and exit() to get out. emcli>help(); Traceback (most recent call last): File "", line 1, in File "", line 3, in help File "D:\oracle\emcli\prod\emsh.jar\jython_lib\emcli\util.py", line 87, in do_verb_processing File "D:\oracle\emcli\prod\emsh.jar\jython_lib\emcli\response.py", line 12, in __init__ File "D:\oracle\emcli\prod\emsh.jar\jython_lib\emcli\util.py", line 118, in loadJson UnboundLocalError: local variable 'json_str_corrected' referenced before assignment Fehler "UnboundLocalError: local variable 'json_str_corrected' referenced before assignment" fixen: ??????Noch keine Lösung- muss ich wohl ein Support Anfrage bei Oracle starten .....?????? Am OMS anmelden (mit TRUSTALL werden Zertifikatsprobleme ignoriert): emcli>set_client_property('EMCLI_OMS_URL','https://oraoms12c01:7803/em') emcli>set_client_property('EMCLI_TRUSTALL','true') emcli>login(username='sysman') Enter password : ********** Login successful emcli>get_targets(); Status Status Zieltyp Zielname -ID 1 Hochgefahren host oraoms12c01.pipperr.local ...... emcli>exit(); === Zugriff überwachen === Nach dem erfolgreichen Ausführen eines Befehls über emcli werden alle Kommando Aufruf im OMS mitgeschrieben: {{ :dba:installcloudcontrol:oms_12c_emcli_v03.png |emcli Zugriffe überwachen}} ---- ====Beispiele für den Einsatz von emcli für die Verwaltung der OMS Umgebung ==== === Oracle Home Settings nach einem Upgrade einstellen === Mit "emcli modify_targt" können die Settings eines Targets angepasst werden. Für das Oracle Home hießt die Propertiy **OracleHome** Beispiel für eine RAC Umgebung: emcli modify_target -name="GPIDB" -type="rac_database" -properties="OracleHome:/oracle/product/11.2.0.4" -on_agent emcli modify_target -name="GPIDB_GPIDB1" -type="oracle_database" -properties="OracleHome:/oracle/product/11.2.0.4" -on_agent emcli modify_target -name="GPIDB_GPIDB2" -type="oracle_database" -properties="OracleHome:/oracle/product/11.2.0.4" -on_agent siehe => [[http://docs.oracle.com/cd/E24628_01/em.121/e17786/cli_verb_ref.htm#BABDJBBF|Oracle emcli Verb Reference modify_targt ]] Um die Namen der Properties eines Target Types auszulesen ist folgendes SQL hilfreich: --============================================================================== -- get all possible properties of a target Type --============================================================================== SET linesize 240 pagesize 400 recsep OFF define TARGET_TYPE = '&1' prompt prompt get properites of the target types in the OEM Repostiory with a target prompt Parameter 1 = Target Type => &&TARGET_TYPE. prompt column target_type format a40 heading "Target Types" column property_name format a40 heading "Property | Name" select property_name , target_type from mgmt$target_properties where lower(target_type) like lower('&&TARGET_TYPE') group by property_name , target_type order by property_name / siehe auch [[http://orapowershell.codeplex.com/SourceControl/latest#sql/oem/get_target_properties.sql|get_target_properties.sql]] === emcli Ausgaben formatieren === Mit dem emcli Parameter "-format="name:pretty" | -format="name:script" lassen sich emcli Ausgaben formatieren. emcli get_targets -format="name:pretty" Status Status Target Type Target Name ID 1 Up host oraoms12c01.pipperr.local versus emcli get_targets -format="name:script" Status ID Status Target Type Target Name === emcli SQL Abfragen === Mit dem sehr mächtigen "list" Kommando lassen sich unter anderen auch eigene Abfragen auf den Repostitory durchführen. emcli list -sql='select property_name, target_type from mgmt$target_properties' PROPERTY_NAME TARGET_TYPE execute_stack_max host file_sys_type_max host ... === Passwörter auf Remote Datenbanken anpassen === === SQL auf einem Host ausführen === === SQL auf einem Host ausführen === === Agent Deployment === ==== Scripting mit Jython und emcli ==== Für die ersten Schritte siehe auch die readme.txt in emcli Verzeichnis. Einführung in das Thema: * http://de.slideshare.net/Seth_Miller/em-cli-and-python-the-enterprise-management-super-tools * https://blogs.oracle.com/oem/entry/oracle_enterprise_manager_12c_release * http://www.pythian.com/blog/em-cli-with-scripting-option-in-em12cr3/ ==== Quellen ==== Oracle: * https://docs.oracle.com/cd/E24628_01/em.121/e17786/concepts.htm#BGBJCDCG * https://docs.oracle.com/cd/E24628_01/em.121/e17786/cli_verb_ref.htm#BABBCBBH Im Web: * https://blogs.oracle.com/oem/entry/em12c_using_the_list_verb * http://www.opitz-consulting.com/fileadmin/redaktion/veroeffentlichungen/pdf/doag-news-2011-06-Enterprise_Manager_Command_Line_Interface-Joern_Lanzerath.pdf * http://blog.e-dba.com/blog/2014/04/01/saving-you-15-minutes-emcli-problem-clearing/