=====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/