SlideShare a Scribd company logo
ORACLE ENTERPRISE MANAGER 12C
EM CLI CRASH COURSE
GÖKHAN ATIL
DBA TEAM LEADER
Gökhan Atıl
DBA Team Leader at bilyoner.com

Oracle ACE (since 2011)

Founding Member and Vice President of
TROUG (troug.org) 

Co-author of Expert Oracle Enterprise
Manager

Blogger (since 2008) gokhanatil.com

Active on twitter: @gokhanatil
2
Agenda
Introduction to EM CLI

EM CLI Verbs

Formatting the Output

Fetching Information From EM Repository 

Sample Bash Scripts

EM CLI Interactive Mode and Scripting Mode

Fundamentals of Python

Sample Python Scripts
3
What is EM CLI?
Repository
Agent
OMS
Web Console
4
What is EM CLI?
Repository
EM CLI
Agent
OMS
Web Console
4
Why EM CLI?
Emotional Reasons:

We love text-based tools

Practical Reasons:

Sometimes it’s faster (less clicks)

Good for scripting (automatisation

and bulk operations)
Web interface of
Enterprise Manager
is so cool!
5
Jump into the action!
It’s already installed and configured on
OMS server:

cd $OMSHOME/bin

./emcli (or emcli.bat on Windows servers)
6
You can install EM CLI to your PC
Requires Java version 1.6.0_43 or greater

Supported Operating Systems: Windows, Linux,
Solaris, HPUX, Tru64, AIX 

Go to “command line interface” page under
“setup” page to download the installation JAR file.

Login is not required, so it’s possible to download
the JAR file with “wget”.
To run EM CLI on Java 1.8 or higher, you need apply patch 17555224 to
the weblogic server. Use"-no-check-certificate" parameter with wget.
7
Downloaded and ready to install!
After you download, set JAVA_HOME and install the JAR
file: 

java -jar emcliadvancedkit.jar -install_dir=<home>

java -jar emclikit.jar -install_dir=<home>

Configure EM CLI:

emcli help setup

emcli setup -url="https://host:port/em" 

-username=<emuser> -dir=<instancedir> -trustall
8
EM CLI Directory Structure
EM CLI configuration and log files (.emcli.log) are
located in the “instance home” directory
(remember the -dir parameter).

Basic JAR files and bash scripts are stored in
“installation directory”.

After you run “setup”, required JAR files used by
verbs will be fetched from OMS are stored under
the bindings directory.
9
Standard vs Scripting
There are two different installation kits for EM CLI:

EM CLI Standard Kit: This kit supports only the
Standard (command line) mode.

EM CLI with Scripting mode (option): This
“advanced” kit supports Interactive and Script
modes in addition to standard mode.
10
3 modes of EM CLI:
Standard mode: This mode provides a simple command-line
interface to Enterprise Manager, and supports the execution of one
verb at a time from the command line.

emcli get_targets

Interactive mode: This mode enables you to create a single
interactive session with OMS. It is a Jython shell.

emcli

Scripting mode: In Scripting mode, EM CLI runs Jython scripts using
EM CLI verbs as Jython functions.

emcli @scriptname.py
11
Understanding EM CLI Syntax
In standard mode, EM CLI expect you enter a verb as
the first parameter. A verb is a task or action in the form
of a user command which exposes Enterprise Manager
functionality. Verbs may take zero or more arguments as
input. 

emcli verb 1st_argument 

[ -2nd_ argument="value" ]

[ -3rd_ argument="value" ] 

[ -4th_ argument ]

…
12
A less known feature
emcli setup -

Syntax Error: Ambiguous argument - matches the
beginning of each of these argument names: 

-_newline_, -additionalpostparams, -autologin, 

-certans, -custom_attrib_file, -dir, -licans, 

-localdirans, -noautologin, -nocertvalidate, 

-noregister, -novalidate, -offline, -password, -trustall, 

-url, -username, -verb_jars_dir

emcli setup -ur="https://host:port/em" -us=<emuser> -t
13
Basic Operational Verbs
help: Get help for emcli verbs (Usage: emcli help [verb_name])

setup: Setup emcli to work with an EM Management Server

sync: Synchronize with the EM Management Server (updates)

login: Login to the EM Management Server (OMS)

logout: Logout from the EM Management Server

status: List emcli configuration details

version: List emcli verb versions or the emcli client version

argfile: Execute emcli verbs from a file

invoke_ws: Invoke EM web service.
14
400+ Verbs in 76 Categories
Add Host Verbs

Agent Administration Verbs

Agent Upgrade Verbs

BI Publisher Reports Verbs

Blackout Verbs

Credential Verbs

Incident Rules Verbs

Job Verbs

Metric Extension Verbs

Monitoring Templates Verbs

Oracle Cloud Verbs

Provisioning Verbs

Self Update Verbs

User Administration Verbs
15
“Grep” is your friend!
Some verbs provide own filtering mechanism, 

but some of them don’t. Using grep will 

help you to filter the output of emcli.

emcli help | grep -i blackout



emcli get_target_types | grep -i database
16
Find the exact name of a target
Some verbs require the name and type as input. Target
names, target types and even “verbs” are case
sensitive, so be sure that you use the exact name of a
target and target type: 

emcli get_targets

emcli get_targets -targets="targetname:targettype"

emcli get_targets -targets=“targetname:%"

emcli get_targets -targets="targettype"
17
Format and redirect the output
emcli get_targets -format="name:pretty" 

emcli get_targets -format="name:csv" 

emcli get_targets -format="name:script"

emcli get_targets -script

emcli get_targets -script > list_of_targets.txt

emcli get_targets -script l parsing_tool
18
Output can
be parsed
easily by
Unix tools
List the targets which has critical
alerts
emcli get_targets -alerts

emcli get_targets -alerts -script -noheader | awk '{ if
($5>0) print $4":"$3"t"$5 }'
19
Critical
Alerts
Gateway to the EM repository
Although there are more than 70 verbs to help you fetch a
specific information from OMS such as list of targets, list
of jobs etc, you may still need a more powerful verb
which can fetch information from the repository database.

The following command will list roles defined in EM:

emcli list -resource="Roles"

This command will show all resources that you can query:

emcli list -help
20
Gateway to the EM repository
This command shows the columns of the specified resource:

emcli list -resource="Administrators" -help

This command will list user names and user types defined as
EM administrator:

emcli list -resource="Administrators" 

-columns="USER_NAME,USER_TYPE"

This command will show details about SYSMAN administrator:

emcli list -resource=“Administrators" -search="USER_NAME =
'SYSMAN'"
21
Gateway to the EM repository
For now, “List” verb can query 27 resources. If you
can not find the data you need among these
resources, you can even run SQL on repository
database:

emcli list -sql="<query>"
22
Sample Script: Blackout/Maintenance
emcli login -username="GOKHAN" -password="s3cr3t"

emcli create_blackout -name="DEVDB Blackout" 

-add_targets="DEVDB:oracle_database" 

-reason="Maintenance work" 

-schedule=“duration:200”

…

…

emcli stop_blackout -name="DEVDB Blackout"

emcli delete_blackout -name="DEVDB Blackout"

emcli logout
23
Sample Script: Clear Stateless Alerts
login=$(emcli login -username="GOKHAN" 

-password="s3cr3t" | grep -c “successful")



if [ $login -eq 1 ]; then

for DBNAME in $(emcli get_targets 

-targets="oracle_database" -noheader -script | cut -f4);

do

emcli clear_stateless_alerts -older_than=0

-target_type="oracle_database"

-target_name="$DBNAME"

done

emcli logout

fi
24
Sample Script: Delete All Named
Credentials
login=$(emcli login -username="GOKHAN" 

-password="s3cr3t" | grep -c "successful")



if [ $login -eq 1 ]; then

for CN in $(emcli list_named_credentials -script

-noheader | cut -f1);

do

emcli delete_named_credential -cred_name="$CN"

done

emcli logout

fi
25
EM CLI with Scripting Mode
Run “emcli" without any parameters;

… and you find yourself in a Jython world!
26
Someone said Jython?
Jython is an implementation of the Python programming
language designed to run on the Java platform.
27
So what’s Python?
Widely used general-purpose, high-level
programming language

Supports multiple programming paradigms,
including OOP, imperative and functional
programming

Dynamic type system and automatic memory
management

Batteries Included (!)
28
EM CLI & Python
Verbs are defined as Python functions

Arguments are entered as function parameters

get_targets( target="oracle_database")

Results of verbs can be formatted as JSON

Some Python modules are included (math, os … )

Programming elements of Python makes scripting
easy!
29
Fundamentals of Python
Variables (dynamic type, no need for declaration but
need initialisation):

myvar = "TESTDB"

myvar = myvar + ":oracle_database"

myvar = 10

myvar = myvar + 10 

myvar = 10 + "10"
TypeError:
unsupported
operand type(s) for 

+: 'int' and 'str'
30
Fundamentals of Python
Conversion between integer and string, conditional
jumps and code blocks:

myvar = int("2")

myvar = 2

myvar = "2"

if ( myvar >= 10 ):

print "myvar is " + str(myvar)

else:

print "lower than 10"
Code blocks are identified
by “indentation”
31
Fundamentals of Python
Dictionary objects, list objects and iterations:

mydict = { 'Name':'Gokhan', 'Age':40 }
mydict['Name'] = "Gokhan"

mylist = ["Joe","William","Jack","Averell"] 

mylist[0] = "Joe" 

for i in mylist:

print i
JSON
it will print all elements in “mylist”
32
EM CLI Response Object
emcli.response represents the response object
which returned from invocation of a emcli verb from
python script.

emcli.response.Response

error() error text

exit_code() error code (0=success)

isJson() is JSON? true/false

out() JSON or text
33
EM CLI Response Object
In scripting mode, default output format type is
JSON. In interactive mode, to change the output
format to JSON, you need to run the following
command:

set_client_property('EMCLI_OUTPUT_TYPE', 'JSON') 

It’s better to use JSON because it directly matches
with Python “dictionary” object. There’s no need for
extra effort to parse the output.
34
EM CLI Response Object
Let’s get the response from a verb:

mytargets = get_targets( target="oracle_database" )

type(mytargets.out())

<type 'dict'>

mytargets.out()

{'data': [{'Status': 'Up', 'Warning': '6', 'Status ID': '0',
'Target Type': 'oracle_database', 'Critical': '64', 'Target
Name': ‘TESTDB’},{…}]}
35
EM CLI Response Object
A response always contain a “data” item which is a
list object:

type(mytargets.out()['data'])

<type ‘list'>

mytargets.out()['data']

[{'Status': 'Up', 'Warning': '6', 'Status ID': '0',
'Target Type': 'oracle_database', 'Critical': '64',
'Target Name': ‘TESTDB’},{…}]
36
EM CLI Response Object
After we reach the list, we can iterate over the items
of the list:

for DB in mytargets.out()['data']:

print DB['Target Name'], DB['Status']
37
Sample Script: Clear Stateless Alerts
Save the following code in a file (clearalerts.py) and
run it as “emcli @clearalerts.py”:

if login( username="GOKHAN" ).exit_code()==0:

mytargets=get_targets( targets="oracle_database" )

for DB in mytargets.out()['data']:

clear_stateless_alerts( 

target_name=DB['Target Name'], 

target_type=DB['Target Type'], older_than="0" )
38
Sample Script: Change DBSNMP
Passwords
if len(sys.argv) <> 2:

print "Usage: emcli @change_dbsnmp_passwords.py oldpwd newpwd"

exit()

if login( username="GOKHAN" ).exit_code()==0:

mytargets=get_targets( targets="%_database" )

for DB in mytargets.out()['data']:

try: 

update_db_password (target_name=DB['Target Name'],

target_type=DB['Target Type'] ,

change_at_target="yes",user_name="dbsnmp",

old_password=sys.argv[0],

new_password=sys.argv[1],

retype_new_password=sys.argv[1])

except emcli.exception.VerbExecutionError, e:

print e.error()
39
Sample Script: Promote Unmanaged
Databases
lg = login( username="SYSMAN" )

if lg.exit_code() <> 0:

print lg.error()

utargets=get_targets( "unmanaged", "properties",
targets="oracle_database" )

for target in utargets.out()['data']:

add_target( name=target['Target Name'], type=target['Target Type'],

host=target['Host Info'].split(';')[0].split(':')[1],

credentials="UserName:dbsnmp;password:xyz;Role:Normal",
properties=target[‘Properties'] )
positional parameters
40
Sample Script: Promote Unmanaged
Databases
lg = login( username="SYSMAN" )

if lg.exit_code() <> 0:

print lg.error()

utargets=get_targets( "unmanaged", "properties",
targets="oracle_database" )

for target in utargets.out()['data']:

add_target( name=target['Target Name'], type=target['Target Type'],

host=target['Host Info'].split(';')[0].split(':')[1],

credentials="UserName:dbsnmp;password:xyz;Role:Normal",
properties=target[‘Properties'] )
positional parameters
40
Further Reading:
OEM 12c Command-Line Interface

My blog:

http://www.gokhanatil.com

Kellyn Pot'Vin-Gorman

http://dbakevlar.com

Ray Smith

https://oramanageability.wordpress.com

Sete Miller

http://sethmiller.org

The Definitive Guide to Jython

http://www.jython.org/jythonbook/en/1.0/
41
THANK YOU FOR ATTENDING! 

ANY QUESTIONS?
42

More Related Content

What's hot

A New View of Database Views
A New View of Database ViewsA New View of Database Views
A New View of Database Views
Michael Rosenblum
 
Hidden Gems of Performance Tuning: Hierarchical Profiler and DML Trigger Opti...
Hidden Gems of Performance Tuning: Hierarchical Profiler and DML Trigger Opti...Hidden Gems of Performance Tuning: Hierarchical Profiler and DML Trigger Opti...
Hidden Gems of Performance Tuning: Hierarchical Profiler and DML Trigger Opti...
Michael Rosenblum
 
[Strukelj] Why will Java 7.0 be so cool
[Strukelj] Why will Java 7.0 be so cool[Strukelj] Why will Java 7.0 be so cool
[Strukelj] Why will Java 7.0 be so cooljavablend
 
An introduction to SQLAlchemy
An introduction to SQLAlchemyAn introduction to SQLAlchemy
An introduction to SQLAlchemy
mengukagan
 
New Stuff in the Oracle PL/SQL Language
New Stuff in the Oracle PL/SQL LanguageNew Stuff in the Oracle PL/SQL Language
New Stuff in the Oracle PL/SQL Language
Steven Feuerstein
 
Developing Information Schema Plugins
Developing Information Schema PluginsDeveloping Information Schema Plugins
Developing Information Schema Plugins
Mark Leith
 
10 Creating Triggers
10 Creating Triggers10 Creating Triggers
10 Creating Triggers
rehaniltifat
 
Extending MySQL Enterprise Monitor
Extending MySQL Enterprise MonitorExtending MySQL Enterprise Monitor
Extending MySQL Enterprise Monitor
Mark Leith
 
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
Alex Zaballa
 
[스프링/Spring교육학원,자바교육,근로자교육,실업자교육추천학원_탑크리에듀]#6.스프링프레임워크 & 마이바티스 (Spring Framew...
[스프링/Spring교육학원,자바교육,근로자교육,실업자교육추천학원_탑크리에듀]#6.스프링프레임워크 & 마이바티스 (Spring Framew...[스프링/Spring교육학원,자바교육,근로자교육,실업자교육추천학원_탑크리에듀]#6.스프링프레임워크 & 마이바티스 (Spring Framew...
[스프링/Spring교육학원,자바교육,근로자교육,실업자교육추천학원_탑크리에듀]#6.스프링프레임워크 & 마이바티스 (Spring Framew...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
The Query Rewrite Plugin Interface: Writing Your Own Plugin
The Query Rewrite Plugin Interface: Writing Your Own PluginThe Query Rewrite Plugin Interface: Writing Your Own Plugin
The Query Rewrite Plugin Interface: Writing Your Own Plugin
MartinHanssonOracle
 
#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...
#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...
#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Php Applications with Oracle by Kuassi Mensah
Php Applications with Oracle by Kuassi MensahPhp Applications with Oracle by Kuassi Mensah
Php Applications with Oracle by Kuassi Mensah
PHP Barcelona Conference
 
What’s New in Oracle Database 12c for PHP
What’s New in Oracle Database 12c for PHPWhat’s New in Oracle Database 12c for PHP
What’s New in Oracle Database 12c for PHP
Christopher Jones
 
Tony Jambu (obscure) tools of the trade for tuning oracle sq ls
Tony Jambu   (obscure) tools of the trade for tuning oracle sq lsTony Jambu   (obscure) tools of the trade for tuning oracle sq ls
Tony Jambu (obscure) tools of the trade for tuning oracle sq lsInSync Conference
 
Oracle Database 12c Release 2 - New Features On Oracle Database Exadata Expre...
Oracle Database 12c Release 2 - New Features On Oracle Database Exadata Expre...Oracle Database 12c Release 2 - New Features On Oracle Database Exadata Expre...
Oracle Database 12c Release 2 - New Features On Oracle Database Exadata Expre...
Alex Zaballa
 
Language enhancements in cold fusion 11
Language enhancements in cold fusion 11Language enhancements in cold fusion 11
Language enhancements in cold fusion 11ColdFusionConference
 
Controlling execution plans 2014
Controlling execution plans   2014Controlling execution plans   2014
Controlling execution plans 2014
Enkitec
 
Playing With (B)Sqli
Playing With (B)SqliPlaying With (B)Sqli
Playing With (B)Sqli
Chema Alonso
 
common_schema, DBA's framework for MySQL
common_schema, DBA's framework for MySQLcommon_schema, DBA's framework for MySQL
common_schema, DBA's framework for MySQL
Shlomi Noach
 

What's hot (20)

A New View of Database Views
A New View of Database ViewsA New View of Database Views
A New View of Database Views
 
Hidden Gems of Performance Tuning: Hierarchical Profiler and DML Trigger Opti...
Hidden Gems of Performance Tuning: Hierarchical Profiler and DML Trigger Opti...Hidden Gems of Performance Tuning: Hierarchical Profiler and DML Trigger Opti...
Hidden Gems of Performance Tuning: Hierarchical Profiler and DML Trigger Opti...
 
[Strukelj] Why will Java 7.0 be so cool
[Strukelj] Why will Java 7.0 be so cool[Strukelj] Why will Java 7.0 be so cool
[Strukelj] Why will Java 7.0 be so cool
 
An introduction to SQLAlchemy
An introduction to SQLAlchemyAn introduction to SQLAlchemy
An introduction to SQLAlchemy
 
New Stuff in the Oracle PL/SQL Language
New Stuff in the Oracle PL/SQL LanguageNew Stuff in the Oracle PL/SQL Language
New Stuff in the Oracle PL/SQL Language
 
Developing Information Schema Plugins
Developing Information Schema PluginsDeveloping Information Schema Plugins
Developing Information Schema Plugins
 
10 Creating Triggers
10 Creating Triggers10 Creating Triggers
10 Creating Triggers
 
Extending MySQL Enterprise Monitor
Extending MySQL Enterprise MonitorExtending MySQL Enterprise Monitor
Extending MySQL Enterprise Monitor
 
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
 
[스프링/Spring교육학원,자바교육,근로자교육,실업자교육추천학원_탑크리에듀]#6.스프링프레임워크 & 마이바티스 (Spring Framew...
[스프링/Spring교육학원,자바교육,근로자교육,실업자교육추천학원_탑크리에듀]#6.스프링프레임워크 & 마이바티스 (Spring Framew...[스프링/Spring교육학원,자바교육,근로자교육,실업자교육추천학원_탑크리에듀]#6.스프링프레임워크 & 마이바티스 (Spring Framew...
[스프링/Spring교육학원,자바교육,근로자교육,실업자교육추천학원_탑크리에듀]#6.스프링프레임워크 & 마이바티스 (Spring Framew...
 
The Query Rewrite Plugin Interface: Writing Your Own Plugin
The Query Rewrite Plugin Interface: Writing Your Own PluginThe Query Rewrite Plugin Interface: Writing Your Own Plugin
The Query Rewrite Plugin Interface: Writing Your Own Plugin
 
#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...
#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...
#34.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자교육,국...
 
Php Applications with Oracle by Kuassi Mensah
Php Applications with Oracle by Kuassi MensahPhp Applications with Oracle by Kuassi Mensah
Php Applications with Oracle by Kuassi Mensah
 
What’s New in Oracle Database 12c for PHP
What’s New in Oracle Database 12c for PHPWhat’s New in Oracle Database 12c for PHP
What’s New in Oracle Database 12c for PHP
 
Tony Jambu (obscure) tools of the trade for tuning oracle sq ls
Tony Jambu   (obscure) tools of the trade for tuning oracle sq lsTony Jambu   (obscure) tools of the trade for tuning oracle sq ls
Tony Jambu (obscure) tools of the trade for tuning oracle sq ls
 
Oracle Database 12c Release 2 - New Features On Oracle Database Exadata Expre...
Oracle Database 12c Release 2 - New Features On Oracle Database Exadata Expre...Oracle Database 12c Release 2 - New Features On Oracle Database Exadata Expre...
Oracle Database 12c Release 2 - New Features On Oracle Database Exadata Expre...
 
Language enhancements in cold fusion 11
Language enhancements in cold fusion 11Language enhancements in cold fusion 11
Language enhancements in cold fusion 11
 
Controlling execution plans 2014
Controlling execution plans   2014Controlling execution plans   2014
Controlling execution plans 2014
 
Playing With (B)Sqli
Playing With (B)SqliPlaying With (B)Sqli
Playing With (B)Sqli
 
common_schema, DBA's framework for MySQL
common_schema, DBA's framework for MySQLcommon_schema, DBA's framework for MySQL
common_schema, DBA's framework for MySQL
 

Viewers also liked

Certification_1616894
Certification_1616894Certification_1616894
Certification_1616894hus-shen lin
 
Libro1 1 carlos
Libro1 1 carlosLibro1 1 carlos
Libro1 1 carlos
CarlosRam15
 
BORDER PLAID SCARF
BORDER PLAID SCARFBORDER PLAID SCARF
BORDER PLAID SCARF
Gabriel Katinas
 
Scovoroda zbirnyk pobornik
Scovoroda zbirnyk pobornikScovoroda zbirnyk pobornik
Scovoroda zbirnyk pobornik
Татьяна Грицан
 
Aplicación de la biotecnologia ambiental trabajo individual claudia patricia ...
Aplicación de la biotecnologia ambiental trabajo individual claudia patricia ...Aplicación de la biotecnologia ambiental trabajo individual claudia patricia ...
Aplicación de la biotecnologia ambiental trabajo individual claudia patricia ...
CURBANO1505
 
Tema 1, 4º eso
Tema 1, 4º esoTema 1, 4º eso
Tema 1, 4º eso
Vanessa Silvano Prieto
 
Management de la distribution
Management  de la distributionManagement  de la distribution
Management de la distribution
Youssef LAMGHARI
 
Psicomotricidad
PsicomotricidadPsicomotricidad
Psicomotricidad
Maria Navas Garrido
 
Data mining for causal inference: Effect of recommendations on Amazon.com
Data mining for causal inference: Effect of recommendations on Amazon.comData mining for causal inference: Effect of recommendations on Amazon.com
Data mining for causal inference: Effect of recommendations on Amazon.com
Amit Sharma
 
Tema 4, 2º ESO: Dios con nosotros
Tema 4, 2º ESO: Dios con nosotrosTema 4, 2º ESO: Dios con nosotros
Tema 4, 2º ESO: Dios con nosotros
Vanessa Silvano Prieto
 
Are you solving a problem worth solving?
Are you solving a problem worth solving?Are you solving a problem worth solving?
Are you solving a problem worth solving?
Elaine Chen
 
Analiza języka naturalnego
Analiza języka naturalnegoAnaliza języka naturalnego
Analiza języka naturalnego
Data Science Warsaw
 
Extradienst-Marketingleiter-Ranking
Extradienst-Marketingleiter-RankingExtradienst-Marketingleiter-Ranking
Extradienst-Marketingleiter-RankingDaniel Kobelt
 

Viewers also liked (14)

Certification_1616894
Certification_1616894Certification_1616894
Certification_1616894
 
Libro1 1 carlos
Libro1 1 carlosLibro1 1 carlos
Libro1 1 carlos
 
Zulexis exposicion
Zulexis exposicionZulexis exposicion
Zulexis exposicion
 
BORDER PLAID SCARF
BORDER PLAID SCARFBORDER PLAID SCARF
BORDER PLAID SCARF
 
Scovoroda zbirnyk pobornik
Scovoroda zbirnyk pobornikScovoroda zbirnyk pobornik
Scovoroda zbirnyk pobornik
 
Aplicación de la biotecnologia ambiental trabajo individual claudia patricia ...
Aplicación de la biotecnologia ambiental trabajo individual claudia patricia ...Aplicación de la biotecnologia ambiental trabajo individual claudia patricia ...
Aplicación de la biotecnologia ambiental trabajo individual claudia patricia ...
 
Tema 1, 4º eso
Tema 1, 4º esoTema 1, 4º eso
Tema 1, 4º eso
 
Management de la distribution
Management  de la distributionManagement  de la distribution
Management de la distribution
 
Psicomotricidad
PsicomotricidadPsicomotricidad
Psicomotricidad
 
Data mining for causal inference: Effect of recommendations on Amazon.com
Data mining for causal inference: Effect of recommendations on Amazon.comData mining for causal inference: Effect of recommendations on Amazon.com
Data mining for causal inference: Effect of recommendations on Amazon.com
 
Tema 4, 2º ESO: Dios con nosotros
Tema 4, 2º ESO: Dios con nosotrosTema 4, 2º ESO: Dios con nosotros
Tema 4, 2º ESO: Dios con nosotros
 
Are you solving a problem worth solving?
Are you solving a problem worth solving?Are you solving a problem worth solving?
Are you solving a problem worth solving?
 
Analiza języka naturalnego
Analiza języka naturalnegoAnaliza języka naturalnego
Analiza języka naturalnego
 
Extradienst-Marketingleiter-Ranking
Extradienst-Marketingleiter-RankingExtradienst-Marketingleiter-Ranking
Extradienst-Marketingleiter-Ranking
 

Similar to EMCLI Crash Course - DOAG Germany

Oracle Enterprise Manager 12c: EMCLI Crash Course
Oracle Enterprise Manager 12c: EMCLI Crash CourseOracle Enterprise Manager 12c: EMCLI Crash Course
Oracle Enterprise Manager 12c: EMCLI Crash Course
Gokhan Atil
 
The enterprise manager command line interface2
The enterprise manager command line interface2The enterprise manager command line interface2
The enterprise manager command line interface2
Kellyn Pot'Vin-Gorman
 
Ctools presentation
Ctools presentationCtools presentation
Ctools presentationDigitaria
 
Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong Foundations
Salesforce Developers
 
Power Shell for System Admins - By Kaustubh
Power Shell for System Admins - By KaustubhPower Shell for System Admins - By Kaustubh
Power Shell for System Admins - By Kaustubh
Kaustubh Kumar
 
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling FrameworkEclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Dave Steinberg
 
Cognitive data capture with Elis - Rossum's technical webinar
Cognitive data capture with Elis - Rossum's technical webinarCognitive data capture with Elis - Rossum's technical webinar
Cognitive data capture with Elis - Rossum's technical webinar
Petr Baudis
 
Php
PhpPhp
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutionsPython RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
Solution4Future
 
SDC - Programming the CLR in SQL Server 2005.ppt (1.51 MB)
SDC - Programming the CLR in SQL Server 2005.ppt (1.51 MB)SDC - Programming the CLR in SQL Server 2005.ppt (1.51 MB)
SDC - Programming the CLR in SQL Server 2005.ppt (1.51 MB)webhostingguy
 
Salesforce
SalesforceSalesforce
Salesforce
maheswara reddy
 
PowerShell Workshop Series: Session 2
PowerShell Workshop Series: Session 2PowerShell Workshop Series: Session 2
PowerShell Workshop Series: Session 2
Bryan Cafferky
 
GCC RTL and Machine Description
GCC RTL and Machine DescriptionGCC RTL and Machine Description
GCC RTL and Machine Description
Priyatham Bollimpalli
 
Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4
Rich Helton
 
Windows Server 2008 (PowerShell Scripting Uygulamaları)
Windows Server 2008 (PowerShell Scripting Uygulamaları)Windows Server 2008 (PowerShell Scripting Uygulamaları)
Windows Server 2008 (PowerShell Scripting Uygulamaları)
ÇözümPARK
 
Asp.net MVC - Course 2
Asp.net MVC - Course 2Asp.net MVC - Course 2
Asp.net MVC - Course 2erdemergin
 
Re-Design with Elixir/OTP
Re-Design with Elixir/OTPRe-Design with Elixir/OTP
Re-Design with Elixir/OTP
Mustafa TURAN
 
Power shell training
Power shell trainingPower shell training
Power shell training
David Brabant
 

Similar to EMCLI Crash Course - DOAG Germany (20)

Oracle Enterprise Manager 12c: EMCLI Crash Course
Oracle Enterprise Manager 12c: EMCLI Crash CourseOracle Enterprise Manager 12c: EMCLI Crash Course
Oracle Enterprise Manager 12c: EMCLI Crash Course
 
The enterprise manager command line interface2
The enterprise manager command line interface2The enterprise manager command line interface2
The enterprise manager command line interface2
 
Development withforce
Development withforceDevelopment withforce
Development withforce
 
Ctools presentation
Ctools presentationCtools presentation
Ctools presentation
 
Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong Foundations
 
Power Shell for System Admins - By Kaustubh
Power Shell for System Admins - By KaustubhPower Shell for System Admins - By Kaustubh
Power Shell for System Admins - By Kaustubh
 
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling FrameworkEclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
 
Cognitive data capture with Elis - Rossum's technical webinar
Cognitive data capture with Elis - Rossum's technical webinarCognitive data capture with Elis - Rossum's technical webinar
Cognitive data capture with Elis - Rossum's technical webinar
 
Php
PhpPhp
Php
 
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutionsPython RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
 
SDC - Programming the CLR in SQL Server 2005.ppt (1.51 MB)
SDC - Programming the CLR in SQL Server 2005.ppt (1.51 MB)SDC - Programming the CLR in SQL Server 2005.ppt (1.51 MB)
SDC - Programming the CLR in SQL Server 2005.ppt (1.51 MB)
 
Salesforce
SalesforceSalesforce
Salesforce
 
PowerShell Workshop Series: Session 2
PowerShell Workshop Series: Session 2PowerShell Workshop Series: Session 2
PowerShell Workshop Series: Session 2
 
PowerShell-1
PowerShell-1PowerShell-1
PowerShell-1
 
GCC RTL and Machine Description
GCC RTL and Machine DescriptionGCC RTL and Machine Description
GCC RTL and Machine Description
 
Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4
 
Windows Server 2008 (PowerShell Scripting Uygulamaları)
Windows Server 2008 (PowerShell Scripting Uygulamaları)Windows Server 2008 (PowerShell Scripting Uygulamaları)
Windows Server 2008 (PowerShell Scripting Uygulamaları)
 
Asp.net MVC - Course 2
Asp.net MVC - Course 2Asp.net MVC - Course 2
Asp.net MVC - Course 2
 
Re-Design with Elixir/OTP
Re-Design with Elixir/OTPRe-Design with Elixir/OTP
Re-Design with Elixir/OTP
 
Power shell training
Power shell trainingPower shell training
Power shell training
 

More from Gokhan Atil

Introduction to Spark with Python
Introduction to Spark with PythonIntroduction to Spark with Python
Introduction to Spark with Python
Gokhan Atil
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to Cassandra
Gokhan Atil
 
SQL or noSQL - Oracle Cloud Day Istanbul
SQL or noSQL - Oracle Cloud Day IstanbulSQL or noSQL - Oracle Cloud Day Istanbul
SQL or noSQL - Oracle Cloud Day Istanbul
Gokhan Atil
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAs
Gokhan Atil
 
Essential Linux Commands for DBAs
Essential Linux Commands for DBAsEssential Linux Commands for DBAs
Essential Linux Commands for DBAs
Gokhan Atil
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAs
Gokhan Atil
 
TROUG & Turkey JUG Semineri: Veriye erişimin en hızlı yolu
TROUG & Turkey JUG Semineri: Veriye erişimin en hızlı yoluTROUG & Turkey JUG Semineri: Veriye erişimin en hızlı yolu
TROUG & Turkey JUG Semineri: Veriye erişimin en hızlı yolu
Gokhan Atil
 
Oracle 12c Database In Memory DBA SIG
Oracle 12c Database In Memory DBA SIGOracle 12c Database In Memory DBA SIG
Oracle 12c Database In Memory DBA SIG
Gokhan Atil
 
Oracle 12c Database In-Memory
Oracle 12c Database In-MemoryOracle 12c Database In-Memory
Oracle 12c Database In-Memory
Gokhan Atil
 
Oracle DB Standard Edition: Başka Bir Arzunuz?
Oracle DB Standard Edition: Başka Bir Arzunuz?Oracle DB Standard Edition: Başka Bir Arzunuz?
Oracle DB Standard Edition: Başka Bir Arzunuz?
Gokhan Atil
 
Enterprise Manager 12c ASH Analytics
Enterprise Manager 12c ASH AnalyticsEnterprise Manager 12c ASH Analytics
Enterprise Manager 12c ASH Analytics
Gokhan Atil
 

More from Gokhan Atil (11)

Introduction to Spark with Python
Introduction to Spark with PythonIntroduction to Spark with Python
Introduction to Spark with Python
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to Cassandra
 
SQL or noSQL - Oracle Cloud Day Istanbul
SQL or noSQL - Oracle Cloud Day IstanbulSQL or noSQL - Oracle Cloud Day Istanbul
SQL or noSQL - Oracle Cloud Day Istanbul
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAs
 
Essential Linux Commands for DBAs
Essential Linux Commands for DBAsEssential Linux Commands for DBAs
Essential Linux Commands for DBAs
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAs
 
TROUG & Turkey JUG Semineri: Veriye erişimin en hızlı yolu
TROUG & Turkey JUG Semineri: Veriye erişimin en hızlı yoluTROUG & Turkey JUG Semineri: Veriye erişimin en hızlı yolu
TROUG & Turkey JUG Semineri: Veriye erişimin en hızlı yolu
 
Oracle 12c Database In Memory DBA SIG
Oracle 12c Database In Memory DBA SIGOracle 12c Database In Memory DBA SIG
Oracle 12c Database In Memory DBA SIG
 
Oracle 12c Database In-Memory
Oracle 12c Database In-MemoryOracle 12c Database In-Memory
Oracle 12c Database In-Memory
 
Oracle DB Standard Edition: Başka Bir Arzunuz?
Oracle DB Standard Edition: Başka Bir Arzunuz?Oracle DB Standard Edition: Başka Bir Arzunuz?
Oracle DB Standard Edition: Başka Bir Arzunuz?
 
Enterprise Manager 12c ASH Analytics
Enterprise Manager 12c ASH AnalyticsEnterprise Manager 12c ASH Analytics
Enterprise Manager 12c ASH Analytics
 

Recently uploaded

Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 

Recently uploaded (20)

Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 

EMCLI Crash Course - DOAG Germany

  • 1. ORACLE ENTERPRISE MANAGER 12C EM CLI CRASH COURSE GÖKHAN ATIL DBA TEAM LEADER
  • 2. Gökhan Atıl DBA Team Leader at bilyoner.com Oracle ACE (since 2011) Founding Member and Vice President of TROUG (troug.org) Co-author of Expert Oracle Enterprise Manager Blogger (since 2008) gokhanatil.com Active on twitter: @gokhanatil 2
  • 3. Agenda Introduction to EM CLI EM CLI Verbs Formatting the Output Fetching Information From EM Repository Sample Bash Scripts EM CLI Interactive Mode and Scripting Mode Fundamentals of Python Sample Python Scripts 3
  • 4. What is EM CLI? Repository Agent OMS Web Console 4
  • 5. What is EM CLI? Repository EM CLI Agent OMS Web Console 4
  • 6. Why EM CLI? Emotional Reasons: We love text-based tools Practical Reasons: Sometimes it’s faster (less clicks) Good for scripting (automatisation
 and bulk operations) Web interface of Enterprise Manager is so cool! 5
  • 7. Jump into the action! It’s already installed and configured on OMS server: cd $OMSHOME/bin ./emcli (or emcli.bat on Windows servers) 6
  • 8. You can install EM CLI to your PC Requires Java version 1.6.0_43 or greater Supported Operating Systems: Windows, Linux, Solaris, HPUX, Tru64, AIX Go to “command line interface” page under “setup” page to download the installation JAR file. Login is not required, so it’s possible to download the JAR file with “wget”. To run EM CLI on Java 1.8 or higher, you need apply patch 17555224 to the weblogic server. Use"-no-check-certificate" parameter with wget. 7
  • 9. Downloaded and ready to install! After you download, set JAVA_HOME and install the JAR file: java -jar emcliadvancedkit.jar -install_dir=<home> java -jar emclikit.jar -install_dir=<home> Configure EM CLI: emcli help setup emcli setup -url="https://host:port/em" 
 -username=<emuser> -dir=<instancedir> -trustall 8
  • 10. EM CLI Directory Structure EM CLI configuration and log files (.emcli.log) are located in the “instance home” directory (remember the -dir parameter). Basic JAR files and bash scripts are stored in “installation directory”. After you run “setup”, required JAR files used by verbs will be fetched from OMS are stored under the bindings directory. 9
  • 11. Standard vs Scripting There are two different installation kits for EM CLI: EM CLI Standard Kit: This kit supports only the Standard (command line) mode. EM CLI with Scripting mode (option): This “advanced” kit supports Interactive and Script modes in addition to standard mode. 10
  • 12. 3 modes of EM CLI: Standard mode: This mode provides a simple command-line interface to Enterprise Manager, and supports the execution of one verb at a time from the command line. emcli get_targets Interactive mode: This mode enables you to create a single interactive session with OMS. It is a Jython shell. emcli Scripting mode: In Scripting mode, EM CLI runs Jython scripts using EM CLI verbs as Jython functions. emcli @scriptname.py 11
  • 13. Understanding EM CLI Syntax In standard mode, EM CLI expect you enter a verb as the first parameter. A verb is a task or action in the form of a user command which exposes Enterprise Manager functionality. Verbs may take zero or more arguments as input. emcli verb 1st_argument 
 [ -2nd_ argument="value" ]
 [ -3rd_ argument="value" ] 
 [ -4th_ argument ]
 … 12
  • 14. A less known feature emcli setup - Syntax Error: Ambiguous argument - matches the beginning of each of these argument names: 
 -_newline_, -additionalpostparams, -autologin, 
 -certans, -custom_attrib_file, -dir, -licans, 
 -localdirans, -noautologin, -nocertvalidate, 
 -noregister, -novalidate, -offline, -password, -trustall, 
 -url, -username, -verb_jars_dir emcli setup -ur="https://host:port/em" -us=<emuser> -t 13
  • 15. Basic Operational Verbs help: Get help for emcli verbs (Usage: emcli help [verb_name]) setup: Setup emcli to work with an EM Management Server sync: Synchronize with the EM Management Server (updates) login: Login to the EM Management Server (OMS) logout: Logout from the EM Management Server status: List emcli configuration details version: List emcli verb versions or the emcli client version argfile: Execute emcli verbs from a file invoke_ws: Invoke EM web service. 14
  • 16. 400+ Verbs in 76 Categories Add Host Verbs Agent Administration Verbs Agent Upgrade Verbs BI Publisher Reports Verbs Blackout Verbs Credential Verbs Incident Rules Verbs Job Verbs Metric Extension Verbs Monitoring Templates Verbs Oracle Cloud Verbs Provisioning Verbs Self Update Verbs User Administration Verbs 15
  • 17. “Grep” is your friend! Some verbs provide own filtering mechanism, 
 but some of them don’t. Using grep will 
 help you to filter the output of emcli. emcli help | grep -i blackout 
 emcli get_target_types | grep -i database 16
  • 18. Find the exact name of a target Some verbs require the name and type as input. Target names, target types and even “verbs” are case sensitive, so be sure that you use the exact name of a target and target type: emcli get_targets emcli get_targets -targets="targetname:targettype" emcli get_targets -targets=“targetname:%" emcli get_targets -targets="targettype" 17
  • 19. Format and redirect the output emcli get_targets -format="name:pretty" emcli get_targets -format="name:csv" emcli get_targets -format="name:script" emcli get_targets -script emcli get_targets -script > list_of_targets.txt emcli get_targets -script l parsing_tool 18 Output can be parsed easily by Unix tools
  • 20. List the targets which has critical alerts emcli get_targets -alerts emcli get_targets -alerts -script -noheader | awk '{ if ($5>0) print $4":"$3"t"$5 }' 19 Critical Alerts
  • 21. Gateway to the EM repository Although there are more than 70 verbs to help you fetch a specific information from OMS such as list of targets, list of jobs etc, you may still need a more powerful verb which can fetch information from the repository database. The following command will list roles defined in EM: emcli list -resource="Roles" This command will show all resources that you can query: emcli list -help 20
  • 22. Gateway to the EM repository This command shows the columns of the specified resource: emcli list -resource="Administrators" -help This command will list user names and user types defined as EM administrator: emcli list -resource="Administrators" 
 -columns="USER_NAME,USER_TYPE" This command will show details about SYSMAN administrator: emcli list -resource=“Administrators" -search="USER_NAME = 'SYSMAN'" 21
  • 23. Gateway to the EM repository For now, “List” verb can query 27 resources. If you can not find the data you need among these resources, you can even run SQL on repository database: emcli list -sql="<query>" 22
  • 24. Sample Script: Blackout/Maintenance emcli login -username="GOKHAN" -password="s3cr3t" emcli create_blackout -name="DEVDB Blackout" 
 -add_targets="DEVDB:oracle_database" 
 -reason="Maintenance work" 
 -schedule=“duration:200”
 …
 …
 emcli stop_blackout -name="DEVDB Blackout"
 emcli delete_blackout -name="DEVDB Blackout"
 emcli logout 23
  • 25. Sample Script: Clear Stateless Alerts login=$(emcli login -username="GOKHAN" 
 -password="s3cr3t" | grep -c “successful")
 
 if [ $login -eq 1 ]; then
 for DBNAME in $(emcli get_targets 
 -targets="oracle_database" -noheader -script | cut -f4);
 do
 emcli clear_stateless_alerts -older_than=0
 -target_type="oracle_database"
 -target_name="$DBNAME"
 done
 emcli logout
 fi 24
  • 26. Sample Script: Delete All Named Credentials login=$(emcli login -username="GOKHAN" 
 -password="s3cr3t" | grep -c "successful")
 
 if [ $login -eq 1 ]; then
 for CN in $(emcli list_named_credentials -script
 -noheader | cut -f1);
 do
 emcli delete_named_credential -cred_name="$CN"
 done
 emcli logout
 fi 25
  • 27. EM CLI with Scripting Mode Run “emcli" without any parameters; … and you find yourself in a Jython world! 26
  • 28. Someone said Jython? Jython is an implementation of the Python programming language designed to run on the Java platform. 27
  • 29. So what’s Python? Widely used general-purpose, high-level programming language Supports multiple programming paradigms, including OOP, imperative and functional programming Dynamic type system and automatic memory management Batteries Included (!) 28
  • 30. EM CLI & Python Verbs are defined as Python functions Arguments are entered as function parameters get_targets( target="oracle_database") Results of verbs can be formatted as JSON Some Python modules are included (math, os … ) Programming elements of Python makes scripting easy! 29
  • 31. Fundamentals of Python Variables (dynamic type, no need for declaration but need initialisation): myvar = "TESTDB" myvar = myvar + ":oracle_database" myvar = 10 myvar = myvar + 10 myvar = 10 + "10" TypeError: unsupported operand type(s) for 
 +: 'int' and 'str' 30
  • 32. Fundamentals of Python Conversion between integer and string, conditional jumps and code blocks: myvar = int("2")
 myvar = 2
 myvar = "2" if ( myvar >= 10 ):
 print "myvar is " + str(myvar)
 else:
 print "lower than 10" Code blocks are identified by “indentation” 31
  • 33. Fundamentals of Python Dictionary objects, list objects and iterations: mydict = { 'Name':'Gokhan', 'Age':40 } mydict['Name'] = "Gokhan" mylist = ["Joe","William","Jack","Averell"] 
 mylist[0] = "Joe" for i in mylist:
 print i JSON it will print all elements in “mylist” 32
  • 34. EM CLI Response Object emcli.response represents the response object which returned from invocation of a emcli verb from python script. emcli.response.Response error() error text
 exit_code() error code (0=success)
 isJson() is JSON? true/false
 out() JSON or text 33
  • 35. EM CLI Response Object In scripting mode, default output format type is JSON. In interactive mode, to change the output format to JSON, you need to run the following command: set_client_property('EMCLI_OUTPUT_TYPE', 'JSON') It’s better to use JSON because it directly matches with Python “dictionary” object. There’s no need for extra effort to parse the output. 34
  • 36. EM CLI Response Object Let’s get the response from a verb: mytargets = get_targets( target="oracle_database" ) type(mytargets.out())
 <type 'dict'> mytargets.out() {'data': [{'Status': 'Up', 'Warning': '6', 'Status ID': '0', 'Target Type': 'oracle_database', 'Critical': '64', 'Target Name': ‘TESTDB’},{…}]} 35
  • 37. EM CLI Response Object A response always contain a “data” item which is a list object: type(mytargets.out()['data'])
 <type ‘list'> mytargets.out()['data'] [{'Status': 'Up', 'Warning': '6', 'Status ID': '0', 'Target Type': 'oracle_database', 'Critical': '64', 'Target Name': ‘TESTDB’},{…}] 36
  • 38. EM CLI Response Object After we reach the list, we can iterate over the items of the list: for DB in mytargets.out()['data']:
 print DB['Target Name'], DB['Status'] 37
  • 39. Sample Script: Clear Stateless Alerts Save the following code in a file (clearalerts.py) and run it as “emcli @clearalerts.py”: if login( username="GOKHAN" ).exit_code()==0: mytargets=get_targets( targets="oracle_database" ) for DB in mytargets.out()['data']:
 clear_stateless_alerts( 
 target_name=DB['Target Name'], 
 target_type=DB['Target Type'], older_than="0" ) 38
  • 40. Sample Script: Change DBSNMP Passwords if len(sys.argv) <> 2:
 print "Usage: emcli @change_dbsnmp_passwords.py oldpwd newpwd"
 exit()
 if login( username="GOKHAN" ).exit_code()==0:
 mytargets=get_targets( targets="%_database" )
 for DB in mytargets.out()['data']:
 try: 
 update_db_password (target_name=DB['Target Name'],
 target_type=DB['Target Type'] ,
 change_at_target="yes",user_name="dbsnmp",
 old_password=sys.argv[0],
 new_password=sys.argv[1],
 retype_new_password=sys.argv[1])
 except emcli.exception.VerbExecutionError, e:
 print e.error() 39
  • 41. Sample Script: Promote Unmanaged Databases lg = login( username="SYSMAN" ) if lg.exit_code() <> 0:
 print lg.error() utargets=get_targets( "unmanaged", "properties", targets="oracle_database" ) for target in utargets.out()['data']:
 add_target( name=target['Target Name'], type=target['Target Type'],
 host=target['Host Info'].split(';')[0].split(':')[1],
 credentials="UserName:dbsnmp;password:xyz;Role:Normal", properties=target[‘Properties'] ) positional parameters 40
  • 42. Sample Script: Promote Unmanaged Databases lg = login( username="SYSMAN" ) if lg.exit_code() <> 0:
 print lg.error() utargets=get_targets( "unmanaged", "properties", targets="oracle_database" ) for target in utargets.out()['data']:
 add_target( name=target['Target Name'], type=target['Target Type'],
 host=target['Host Info'].split(';')[0].split(':')[1],
 credentials="UserName:dbsnmp;password:xyz;Role:Normal", properties=target[‘Properties'] ) positional parameters 40
  • 43. Further Reading: OEM 12c Command-Line Interface My blog:
 http://www.gokhanatil.com Kellyn Pot'Vin-Gorman
 http://dbakevlar.com Ray Smith
 https://oramanageability.wordpress.com Sete Miller
 http://sethmiller.org The Definitive Guide to Jython
 http://www.jython.org/jythonbook/en/1.0/ 41
  • 44. THANK YOU FOR ATTENDING! 
 ANY QUESTIONS? 42