Añadir agentes en OEM12c

Una vez tenemos instalado el OEM12c el siguiente paso lógico es el de añadir nuestros sistemas para su gestión.

El primer paso que tenemos que dar, es el de añadir nuestros hosts, bien sea por autodescubrimiento o bien de manera manual. El problema con el que nos encontramos es que, el OEM12c no tiene instalados los agentes para los distintos hosts de las arquitecturas, por lo que tenemos que hacerlo nosotros manualmente
ScreenHunter_114 Jul. 26 09.57

La actualización en modo on-line no funciona, con lo que, debemos de ir a la actualización «off-line»
En la actualización off-line, el sistema nos aconseja el bajarnos el catálogo de agentes que podemos utilizar y «cargarlos» al OEM . El problema es que, tampoco funciona , devolviendonos el siguiente error:

«The uploaded catalog file does not contain the following files: «components.xml, aru_targets.xml, patch_recommendations.xml, certifications.xml, aru_releases.xml, aru_component_releases.xml, aru_languages.xml, aru_product_groups.xml, aru_platforms.xml, aru_product_releases.xml, aru_products.xml»»

¿Que podemos hacer?
La solución será el instalar el catálogo de agentes desde linea de comandos. Los pasos detallados de lo que debemos de hacer es:

1- Vamos a la pestaña «Configurar-> extensibilidad-> Actualizacion automatica , alli tendremos que cambiar el modo «online» por «oflline»

Una vez hecho eso, OEM12c nos indicará en un desplegable donde podemos descargar el último catálogo de agentes,en mi caso fué https://updates.oracle.com/Orion/Download/download_patch/p9348486_112000_Generic.zip

Lo que tendremos que hacer es abrir una consola de sistema operativo para descargar los agentes y añadirlos al catalogo de OEM, para esto haremos
ya en modo consola y desde nuestro usuario de OEM12c hacemos:

cd /u01/app/oracle/libreria_instalacion/
wget https://updates.oracle.com/Orion/Download/download_patch/p9348486_112000_Generic.zip
cd  $OEM_HOME
$OEM_HOME/bin/emcli login -username=SYSMAN
** Introducimaos contraseña de OEM 
./emcli import_update_catalog -file=/u01/app/oracle/libreria_instalacion/p9348486_112000_Generic.zip  -omslocal

COmo podéis ver, hay un directorio «libreria_instalacion» del que no hemos hablado antes, este directorio lo hemos creado previamente en el servidor y lo hemos dado de alta en las opciones
Configurar->Provisionamiento y aplicacion de parches -> Biblioteca de software

ScreenHunter_115 Jul. 29 12.52

Con esto ya tenemos nuestros agentes en el catálogo, ahora ya podemos descargarlos e instalarlos.
Esta parte ya funciona bien desde la actualizacion «online», con lo que volveremos a
ScreenHunter_115 Jul. 26 10.05

Y seleccionaremos «online».
Una vez activado la instalacion online, se conectará a el repositorio de oracle y tendremos disponibles todos los agentes, lo siguiente será seleccionarlos para la descarga y posteriormente para la instalacion
ScreenHunter_113 Jul. 26 09.40
ScreenHunter_116 Jul. 26 10.50

Problemas con SYSAUX, ocupación de AWRs

Hoy vamos a lidiar con un problema muy común en las bases de datos de Oracle que es el tamaño del tablespace SYSAUX.
El tablespace SYSAUX es uno de los tablespaces especiales de la base de datos con el que no podemos jugar alegremente, la principal característica que tiene de cara a la administración de base de datos es que ,el espacio que le demos se ha perdido, es decir, no va ha haber forma de hacerlo mas pequeño (al menos en mi caso siempre ha habido un «pero» que lo imposibilita).

Como decía al principio es junto con el SYSTEM un tablespace muy especial, y los motivos de su tamaño pueden ser varios,hoy vamos a centrarnos en como vaciar un poco el tamaño debido el AWR.

Lo que, lo primero que tendremos que hacer es ver cual es el componente que esta llenándonos el tablespace.
Para ello tenemos la consulta

set linesize 100;
column OCCUPANT_NAME format a20;
column OCCUPANT_DESC format a60;
column Mb format 999.99
SELECT occupant_name,space_usage_kbytes/1024 Mb,occupant_desc
  FROM V$SYSAUX_OCCUPANTS
  order by space_usage_kbytes  desc;

OCCUPANT_NAME             MB OCCUPANT_DESC
-------------------- ------- ------------------------------------------------------------
SM/AWR                780.06 Server Manageability - Automatic Workload Repository
SM/OPTSTAT            333.00 Server Manageability - Optimizer Statistics History
LOGMNR                 91.63 LogMiner
XDB                    85.50 XDB
SM/ADVISOR             65.56 Server Manageability - Advisor Framework
WM                      6.38 Workspace Manager
SM/OTHER                6.25 Server Manageability - Other Components
SMON_SCN_TIME           5.31 Transaction Layer - SCN to TIME mapping
EXPRESSION_FILTER       3.88 Expression Filter System
JOB_SCHEDULER           2.81 Unified Job Scheduler
EM_MONITORING_USER      2.75 Enterprise Manager Monitoring User
SQL_MANAGEMENT_BASE     1.69 SQL Management Base Schema
PL/SCOPE                1.56 PL/SQL Identifier Collection
XSOQHIST                1.38 OLAP API History Tables
AO                      1.38 Analytical Workspace Object Table
LOGSTDBY                1.38 Logical Standby
STREAMS                 1.00 Oracle Streams
AUTO_TASK                .31 Automated Maintenance Tasks
ORDIM/ORDDATA            .00 Oracle Multimedia ORDDATA Components
ORDIM/ORDPLUGINS         .00 Oracle Multimedia ORDPLUGINS Components
ORDIM/SI_INFORMTN_SC     .00 Oracle Multimedia SI_INFORMTN_SCHEMA Components
HEMA
EM                       .00 Enterprise Manager Repository
TEXT                     .00 Oracle Text
ULTRASEARCH              .00 Oracle Ultra Search
ORDIM                    .00 Oracle Multimedia ORDSYS Components
SDO                      .00 Oracle Spatial
STATSPACK                .00 Statspack Repository
TSM                      .00 Oracle Transparent Session Migration User
XSAMD                    .00 OLAP Catalog
AUDIT_TABLES             .00 DB audit tables
ULTRASEARCH_DEMO_USE     .00 Oracle Ultra Search Demo User

Como podemos ver, son muchas las cosas que se guardan en SYSAUX, pero, en nuestro caso, está bastante claro que, la mayoría de la ocupación es debida a los AWR.

Nuestro siguientes pasos van a ser:

  • Determinar que es lo que nos ocupa el espacio
  • Mirar si la causa esta en la retención
  • Mirar si la causa está en los AWR guardados
  • Mirar si la causa está en las lineas «huerfanas» de las Active Session History

Nuestro objetivo va a ser liberar espacio dentro de SYSAUX , no disminuir el tamaño de este tablespace ya que, como decía al principio esto es prácticamente una misión imposible.

Determinar que es lo que ocupa espacio

El siguiente paso será el buscar la información del AWR, para ello el propio Oracle tiene una utilidad que podemos llamar desde sqlplus

 SQL> @$ORACLE_HOME/rdbms/admin/awrinfo.sql

Este sql nos genera un informe con unos apartados muy interesantes que nos servirán para encontrar de donde liberar espacio.

Mirar si la causa esta en la retención

************************************                                                                         
(2) Size estimates for AWR snapshots                                                                          
*************************************                                                                                                                                                                                    
| Estimates based on 60 mins snapshot INTERVAL:                                                               
|    AWR size/day                           31.0 MB (1,324 K/snap * 24 snaps/day)                             
|    AWR size/wk                           217.2 MB (size_per_day * 7) per instance                                                                                                                                     
| Estimates based on 24 snaps in past 24 hours:                                                               
|    AWR size/day                           31.0 MB (1,324 K/snap and 24 snaps in past 24 hours)              
|    AWR size/wk                           217.2 MB (size_per_day * 7) per instance                           
|

Aqui podemos ver el tamaño estimado que ocupa nuestra información de los AWR, en función del periodo de retencion que tengamos de los AWR tendremos la ocupación en la base de datos.
Cuando sabemos cuanto ocupa cada AWR y cuanto hacemos al día, tenemos que saber cuantos dias guardamos para ver si la ocupación es correcta, para ello haremos :

SQL> SELECT retention FROM dba_hist_wr_control;

RETENTION
---------------------------------------------------------------------------
+00007 00:00:00.0

En mi caso por ejemplo, la retencion es de 7 días.

Mirar si la causa está en los AWR guardados

Otro de los problemas que podemos tener es que el número de AWR que mantenemos guardados por razones históricas en la instancia, en el informe que acabamos de obtener también aparece un apartado con las últimas 50 snapshots de la base de datos, el eliminar imágenes antiguas también nos ayudará a liberar espacio.

  • Mirar si la causa está en las lineas «huerfanas» de las Active Session History
  • Algunas veces el Active Session History (ASH) guarda filas que no pertenecen a ningún AWR,esto hace que el ASH ocupe gran parte del espacio dedicado al AWR, la forma de saber si esto nos está sucediendo es mirar nuestro informe en el apartado

    
    **********************************
    (3a) Space usage by AWR components (per database)
    **********************************
    
    COMPONENT        MB  % AWR  KB_PER_SNAP MB_PER_DAY MB_PER_WEEK TABLE% : INDEX%                                
    --------- --------- ------ ------------ ---------- ----------- ----------------                               
    FIXED         131.5   50.6          670       15.7       109.9    52% : 48%                                   
    EVENTS         37.9   14.6          193        4.5        31.7    43% : 57%                                   
    SQLPLAN        25.0    9.6          127        3.0        20.9    72% : 28%                                   
    ASH            18.3    7.0           93        2.2        15.3    89% : 11%                                   
    SQL            11.0    4.2           56        1.3         9.2    60% : 40%                                   
    SPACE          10.3    4.0           53        1.2         8.6    61% : 39%                                   
    SQLTEXT         5.2    2.0           26        0.6         4.3    96% : 4%                                    
    SQLBIND         0.8    0.3            4        0.1         0.6    50% : 50%                                   
    RAC             0.6    0.2            3        0.1         0.5    50% : 50%                                   
    

    Si la línea de ASH ocupa mas de un 1% probablemente sea la causa de nuestra ocupación.
    Mediante la siguiente consulta podemos saber si es nuestro caso.

    SELECT COUNT(*) huerfanas
    FROM wrh$_active_session_history a
    WHERE NOT EXISTS
      (SELECT *
      FROM wrm$_snapshot
      WHERE snap_id       = a.snap_id
      AND dbid            = a.dbid
      AND instance_number = a.instance_number
      );
    
    
     HUERFANAS
    ----------
           116
    
    

    Si aparece alguna línea podemos borrarlas con

    delete  
    FROM wrh$_active_session_history a
    WHERE NOT EXISTS
      (SELECT *
      FROM wrm$_snapshot
      WHERE snap_id       = a.snap_id
      AND dbid            = a.dbid
      AND instance_number = a.instance_number
      );
    

    Con estas tres acciones, si elproblema de laocupación del SYSAUX es debido a el AWR tendremos que haberpodido liberar el espacio suficiente para que la base de datos pueda seguir trabajando sin problemas de espacio.

    Aún así, el tema de la ocupación del SYSAUX es un tema bastante complejo, con lo que, como siempre, el mejor sitio para buscar soluciones es soporte de Oracle, aquí tenéis un pequeño listado de algunas de las notas que puede que os aplique y cuyo contenido tenéis en la página de soporte

    • AWR Data Uses Significant Space in the SYSAUX Tablespace [ID 287679.1]
    • Suggestions if your SYSAUX Tablespace grows rapidly or too large [Document 1292724.1]
    • General Guidelines for SYSAUX Space Issues [Document 552880.1]
    • SYSAUX Grows Because Optimizer Stats History is Not Purged [Document 1055547.1]
    • Space issue in Sysaux tablespace due to Unexpected AWR size [Document 1218413.1]
    • Space Management In Sysaux Tablespace with AWR in Use [Document 287679.1]
    • SYSAUX Tablespace Grows Heavily Due To AWR [Document 852028.1]

    O alguna entrada muy interesante en algunos blogs como es

    Why is my SYSAUX Tablespace so Big? Statistics_level=ALL

    Problemas con glibc-devel instalando OEM 12c (crt1.o)

    Hoy vamos a ver la solución a un problema en la instalación de OEM 12c bajo Oracle linux 6.4

    Si miramos la documentación de la instalación en el apartado de paquetes tenemos que necesitamos los paquetes:

    • glibc-devel-2.5-49-i686 (This is a 32-bit package)
    • glibc-devel-2.5-49-x86_64 (This is a 64-bit package)

    Sin embargo, si miramos lo que tenemos en la distribución,

    [root@emc ~]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n" | grep glibc-dev
    glibc-devel-2.12-1.107.el6(x86_64)
    

    Y a la hora de instalar otro glibc-devel nos dice que ya está instalado

    [root@emc ~]# yum install glibc-devel-2.12-1.80.el6
    Loaded plugins: security
    Setting up Install Process
    Package matching glibc-devel-2.12-1.80.el6.x86_64 already installed. Checking for update.
    Nothing to do
    

    Si intentamos instalar , llega aun punto en que nos da un error de linkado, y es que no encuentra la librería crt1.o

    
    INFO: Salida final del proceso iniciado.
    INFO: ----------------------------------
    INFO: Excepción devuelta de la acción: make
    Nombre de la Excepción: MakefileException
    Cadena de la Excepción: Error al llamar al destino 'install' del archivo make '/oem/oem12c/oms/sqlplus/lib/ins_sqlplus.mk'. 
    Consulte '/oraInventory/logs/installActions-XX.log' para obtener más información.
    Gravedad de la Excepción: 1
    INFO: POPUP WARNING:Error al llamar al destino 'install' del archivo make '/oem/oem12c/oms/sqlplus/lib/ins_sqlplus.mk'. Consulte '/oraInventory/logs/installActions-XX.log' para obtener más información.
    
    Haga clic en  "Reintentar" para volver a intentarlo.
    Haga clic en "Ignorar" para ignorar este error y continuar.
    Haga clic en "Cancelar" para parar esta instalación.
    

    Este error estaba en el proceso de linkado delsqlplus, con el error

    /usr/bin/ld: crt1.o: No suxh file or directory
    

    La solución es tremendamente sencilla, y pasa un poco por la comprension del Oracle Linux, y es que,debemos instalar una librería del formato i396 (i696 para Oracle Linux), el problema , es que, cuando ejecutamos el yum este no instala las librerias de i686 debido a que nuestro sistema es x64.

    Así pues, hay que forzarle a que instale el paquete de i386 (i686) con el comando

    
    yum install glibc-devel.i686
    

    Con este comando, tendremos los dos paquetes instalados

    [root@emc ~]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n" 
     | grep glibc-dev
    
    glibc-devel-2.12-1.107.el6(x86_64)
    glibc-devel-2.12-1.107.el6(i686)
    
    

    Y la instalación continuará sin problemas

    Cambiar la base de datos del repositorio de el OEM12c

    Hoy vamos a ver en una entrada rápida como cambiaríamos la base de datos del OEM12c de un equipo a otro.
    Los pasos necesarios para llevar a cabo este cambio son:

    • Parar el OMS
    • Hacer un backup de la base de datos
    • Restaurar la base de datos en la nueva ubicacion
    • Reconfigurar el OEM12c
    • Arrancar el OEM12c

    Veamos uno a uno los pasos

    Parar el OMS

    $AGENT_HOME/bin/emctl stop agent
    $OMS_HOME/bin/emctl stop oms
    

    Backup de la base de datos
    Aquí llevaríamos a cabo un backup normal de la base de datos con RMAN

    Recuperación de la base de datos
    Al igual que el backup, se trata de un restore standard mediante RMAN

    Reconfigurar el OEM12c
    Este es el paso mas dificil de hacer, debemos de conocer los datos:

    • LISTENER_PORT Puerto del listener de la nueva BBDD
    • NUEVOSID SID de la base de datos (no tiene por que cambiar)
    • NUEVOHOST nombredel nuevo host (conviene que esté en el /etc/hosts del servidor)
    • NUEVOPASWD Password del respositorio ( si no se ha cambiado es el mismo que el de sysman anterior)

    y con esto,simplemente debemos de ejecutar el cambio de repositorio con el comando

    emctl config oms -store_repos_details -repos_port LISTENER_PORT -repos_sid NUEVOSID -repos_host NUEVOHOST -repos_user SYSMAN -repos_pwd NUEVOPASSWD
    Oracle Enterprise Manager Cloud Control 12c Release 3
    Copyright (c) 1996, 2013 Oracle Corporation.  All rights reserved.
    Successfully updated datasources and stored repository details in Credential Store.
    If there are multiple OMSs in this environment, run this store_repos_details command on all of them.
    And finally, restart all the OMSs using 'emctl stop oms -all' and 'emctl start oms'.
     

    Arrancar el OMS

    $AGENT_HOME/bin/emctl start agent
    $OMS_HOME/bin/emctl start oms
    

    Instalación de Oracle Enterprise Manager 12c

    Hola

    Hoy vamos a ver como se hace la instalación de el OEM 12c en un servidor Linux.

    Lo primero que haremos será el instalar un Oracle Linux 6.3 y una base de datos Enterprise (es un requerimiento del OEM 12c) que servirá de nuestro repositorio para el cloud. Después de esto, iremos a la web de descargas de Oracle para bajarnos el 12c.
    Antes de empezar con la instalación, he de advertiros que, el OEM 12c tiene muchísimas restricciones de licenciamiento, con lo que, os conviene echarles un vistazo antes de instalarlo a la ligera.

    Nosotros vamos a llevar a cabo la instalación según este documento http://docs.oracle.com/cd/E24628_01/install.121/e24089/toc.htm.

    La instalación la vamos a llevar a cabo con el usuario emc y hemos reservado una particion de 15Gb bajo /oem , aunque pueda parecer una barbaridad de espacio, no nos va a sobrar tanto, por que, como vemos en el cuadro adjunto las necesidades de HW no son precisamente «pequeñas»

    requisitos HW

    requisitos HW

    Además de esto, hemos de tener en cuenta que, nosotros ya tenemos binarios de Oracle instalados en este servidor, por que tenemos la base de datos instalada, por eso el directorio del inventario de oracle será común

    [oem@emc fuentes]$ cat /etc/oraInst.loc 
    inventory_loc=/oraInventory
    inst_group=oinstall

    Antes de la instalación deberemos de cerciorarnos que tenemos los siguientes paquetes:

    • make-3.81
    • binutils-2.17.50.0.6
    • gcc-4.1.1
    • libaio-0.3.106
    • glibc-common-2.3.4
    • libstdc++-4.1.1
    • libXtst-1.0.99.2-3.el6.x86_64.rpm
    • sysstat-5.0.5
    • glibc-devel-2.5-49-i686 (This is a 32-bit package)
    • glibc-devel-2.5-49-x86_64 (This is a 64-bit package)

    Crearemos el usuario oem que asignaremos al grupo oinstall

    Tras descomprimir los 3 ficheros de fuentes (ocupan unos 5 Gb) lanzaremos el comando

    ./runInstaller

    Lo primero que nos solicitará es el usuario del metalink (soporte), nosotros le diremos que no queremos
    Captura de pantalla 2013-03-03 a la(s) 18.48.38

    Lo segundo es si queremos buscar nuevas actualizaciones, nuevamente le diremos que no

    usuario metalnk

    usuario metalnk

    Tras esto, el instalador llevará a cabo las comprobaciones necesarias para la instalación, en caso de tener problemas con alguna de ellas, deberemos de solucionarlas.En nuestro caso, nos muestra un «warning» que podemos omitir.
    prerequisitos

    Este problema es debido a que necesitamos la instalación de una librería de 32 bits y nuestro sistema es de 64 bits, para solucionarlo solamente tenemos que hacer

    yum install glibc-devel.i686
    

    Con la instalacion de esta librería, la comprobación será correcta, y podremos seguir con la instalación.

    Una vez pasado ese punto, nos indica que tipo de instalacion queremos hacer.
    Tenemos una explicacion de cual es cual en http://docs.oracle.com/cd/E24628_01/install.121/e22624/install_em_exist_db.htm en Table 7-1 Differences Between Simple and Advanced Installation,y, como podeis ver, la instalacion básica se ajusta mas que de sobra a nuestras necesidades.

    Captura de pantalla 2013-03-03 a la(s) 18.53.34

    Antes de seguir en los siguientes pasos hay que tener unas pequeñas cosillas en cuenta:

    • El wizzard no puede lanzarse desde un host remoto, hay que instalar desde la máquina
    • No tenemos que tener variables ORACLE_HOME o ORACLE_SID
    • No hay que instalar el OEM en un link
    • OEM te va a instalar un Weblogic y el JDK 1.6
    • No trastees el weblogic, hay que dejarlo caer como lo va a dejar la instalacion de OEM
    • La instalación no debe de hacerse como root
    • La base de datos del repositorio debe de ser una versión Enterprise con particionamiento
    • La tarea de recolección de estadísticas debe de estar detenida

    En nuestro caso, vamos a dejar la instalacion bajo la particion /oem

    paths e instalacion

    paths e instalacion

    Le introducimos el password y la ubicacion de nuestra base de datos.

    password e instancia

    password e instancia

    Importante: Hemos de tener en cuenta que este paso se «apropiará» de la cuenta de system de la instancia, con lo que se teníamos en Enterpise Control de la instancia nos tocará eliminarlo.

    Tras este punto volveremos a tener las comprobaciones de rigor, y tras poner una contraseña acorde (en este punto no nos deja poner una trivial) , llegaremos a la pantalla de instalación.

    instalaacion

    El proceso de instalación es bastante largo,pero , siguiendo estos pasos finalizar la instalación es simplemente cuestion de tiempo y paciencia.