Create and Manage Jobs

1. Documentación en Tahiti -> Oracle Enterprise Manager, 11g Release 1 (11.1) -> Administrator’s Guide -> 6 Job System

Para hacer este ejercicio es necesario haber hecho previamente el objetivo “Deploy Enterprise Manager Grid Control Agents”, ya que vamos usar la BD OCM.

2. Hay que distinguir entre la gestión de Jobs en Enterprise Manager (Enterprise Manager Job System) y la administración de trabajos desde la base de datos de Oracle. En este punto vamos a crear y gestionar trabajos en Enteprise Manager. Más adelante, en el objetivo “Create Scheduler Jobs”, veremos la herramienta Scheduler, y también haremos algún ejercicio con el Job clásico (DBA_JOBS).

3. Para llegar a la página inicial de los trabajos de EM tan sólo hay que hacer Click en “Jobs” en el menú superior izquierdo. En esta página hay dos pestañas: “Job Activity” y “Job Library”. La primera de ella se utiliza para programar y gestionar los trabajos, mientras que en “Job Library” podemos guardar aquellos trabajos que nos interesen para ejecutarlos varias veces, a modo de plantilla.

Estos son los tipo de trabajo que podemos crear (Desplegable “Create Job”):

· Add Middleware Homes
· Block Agent
· Clone Home
· Log Rotation
· OPatch Update
· OS Command
· Patch Agent
· Refresh From My Oracle Support
· Restart OPMN Component
· RMAN SCript
· Security Policy Configuration
· Shutdown Database
· SQL Script
· Start OPMN Component
· Startup Database
· Statspack Purge
· Stop OPMN Component
· Update My Oracle Support Component
· Weblogic Control
· Multi-Task

Vamos a crear un trabajo de ejemplo del tipo “OS Command”. Para complicarlo un poquito más, haremos que se ejecute indefinidamente.

Click “Job Activity” ->
-> Create Job = “OS Command” ->
-> Click “Go” ->
-> Name = “Test OS Command” ->
-> Descrition = “Prueba de Job en EM” ->
-> Target Type = “Host” ->
-> Click “Add” ->
-> Click “Select All” ->
-> Click “Select” ->
-> Click Pestaña “Parameters” ->
-> Command Type = “Single Operation” ->
-> Commando = “date >> /tmp/job_output.tmp” ->
-> Click Pestaña “Credentials” ->
-> Seleccionamos “Override Preferred Credentiales” ->
-> Username = “oracle” ->
-> Password / Confirm Password = “******” ->
-> Click Pestaña “Schedule” ->
-> Seleccionamos “Repeating” ->
-> Frequency Type = “By Minutes” ->
-> Repeat Every = “1” Minutes ->
-> Time Zone = “Each target’s timezone” ->
-> Repeat Until = “Indefinite” ->
-> Click Pestaña “Access” (dejamos las opciones por defecto) ->
-> Click “Submit”

Veamos el resultado de la ejecución. El trabajo debe haberse ejecutado correctamente “Succeeded” al menos una vez y que no se ha generado ningun output “No Output for this step”. Si comprobamos la actividad de los Jobs, pasados unos minutos, veremos como van saliendo más ejecuciones del mismo trabajo.

Click Pestaña “Job Activity” ->
-> Status = “All” ->
-> Click “Go” ->
-> Seleccionamos “TEST_OS_COMMAND” (cualquiera tenga estado de ejecución = “Succeeded”) ->
-> Click “View Results” ->
-> Click “Show” (Columna “Details”) en ambos Targets

Si vamos a la máquina OEM, podemos ver un archivo “job_output.tmp” el directorio /tmp.

# Comprobamos el propietario del archivo /tmp/job_output.tmp y su contenido
# El propietario es Oracle porque así lo hemos especifcado en las Credenciales
ls -l /tmp/job_output.tmp
cat /tmp/job_output.tmp

Ahora vamos a eliminar el trabajo, ya que sino, lo tendriamos ejecutándose de forma indefinida.

Click “Job Activity” ->
-> Status = “Scheduled” ->
-> Click “Go” ->
-> Seleccionamos “TEST OS COMMAND” ->
-> Click “Delete” ->
-> Seleccionamos “Delete all runs of job” ->
-> Click “OK”

4. Un tipo especial de Job es “Block Agent”. Este tipo de trabajo se utiliza para que el OMS rechace todo chequeo (heartbeat) o petición de subida de datos del agente bloqueado. Se puede utilizar cuando tenemos un problema con un agente, y este no es capaz de subir datos al OMS. O también puede suceder todo lo contrario, cuando el agente comienza a saturar al OMS con una gran cantidad de subidas y queremos evitarlo. Bloquearemos el agente del host OCM para hacer una pequeña prueba.

Click “Jobs” ->
-> Click “Job Activity” ->
-> Create Job = “Block Agent” ->
-> Click “Go” ->
-> Name = “TestBlockAgent” ->
-> Description “Testing the Block Agent Job” ->
-> Click “Add” ->
-> Seleccionamos “oem.dbajunor.com:3872” ->
-> Click “Select” ->
-> Click Schedule (Dejamos los valores por defecto) ->
-> Click “Submit”

El agente OEM ya debería estar bloquedo. Podemos comprobarlo desde la propia del agente y aprovechamos “el viaje” para desbloquearlo.

Click “Targets ->
-> Click “All Targets” ->
-> Click Agente “oem.dbajunior.com:3872” ->
-> Comprobamos que sale un banner de “Error” indicando que el agente está bloqueado ->
-> Click “Unblock”

5. El último tipo de Job que sale en la lista “Multi-Task” es muy potente. Nos permite crear cadenas de trabajos anidados que se ejecutan en base a la condición de éxito o fallo de un trabajo anterior. Vamos a crear un ejemplo de trabajo Multi-Task que ejecute un script SQL en la BD OEM que produzca un fallo a propósito y cuando falle, haremos que ejecute un script de OS en la máquina OCM.

Click “Jobs” ->
-> Create Job = “Multi-Task” ->
-> Click “Go” ->
-> Name = “MULTI_TASK_TEST” ->
-> Description = “Prueba de Trabajo Multi-Task” ->
-> Target = “Different targets for different tasks” ->
-> Click Pestaña “Tasks” ->
-> Type = “SQL Script” ->
-> Click “Add” ->
-> Name = “OEMSQLSCRIPT” ->
-> Click “Add” en la sección de Target ->
-> Seleccionamos “OEM” ->
-> Click “Select” ->
-> Click Pestaña “Parameters” ->
-> Introducimos el siguiente texto en SQL Script

WHENEVER SQLERROR EXIT SQL.SQLCODE
select column_does_not_exist from dual;

-> Click “Continue” ->
-> Type = “OS Command” ->
-> Click “Add” ->
-> Name = “OCMOSSCRIPT” ->
-> Condition = “On Failure” ->
-> Depends On = “OEMSQLSCRIPT” ->
-> Click “Add” en la sección de Target ->
-> Selccionamos “ocm.dbajunior.com” ->
-> Click “Select” ->
-> Click Pestaña “Parameters” ->
-> Command = “date >> /tmp/job_output.tmp” ->
-> Click “Credentials” ->
-> Seleccionamos “Override Preferred Credentials” ->
-> Username = “oracle” ->
-> Password / Confirm Password = “******” ->
-> Click “Continue” ->
-> Click “Submit”

Ahora si vamos a la pestaña de “Job Activity” y mostramos todos los trabajos, veremos como el Job que acabmos de crear (MULTI_TASK_TEST) tiene el Status = “Succeeded”. Si entramos en el Job, tenemos que ver que tienes dos tareas, la primera de ellas (Task: OEMSQLSCRIPT*) con estado fallido (Failed) y la segunda tarea (Task: OCMOSSCRIPT) con estado satisfactorio (Succeeded).

6. Tenemos otros tipos de Trabajo pero no los vamos a probar todos, ya que ya hemos visto la dinámica general para crear y gestionar trabajos. Aunque para el examen, sería interesante probar todos al menos una vez.