Setup OEM Database Express

Documentación en Database 12c Release 1  -> Oracle Database, 12c Release 1 (12.1) -> 2 Day DBA -> 3 Getting Started with Database Administration

1. Oracle Enterprise Manager Database Express (OEM Database Express) es una herramienta web incluida en Oracle Database 12c que sirve para administrar distintas areas de la BD (Configuración, Almacenamiento, Seguridad y Rendimiento). En versiones anteriores, esta herramienta era conocida como OEM Database Console. No sólo se trata de un cambio de nombre (Console por Express), por detrás hay un cambio de arquitectura con ciertas características y consecuencias.

  • Es una herramienta ligera que corre embebida en el servidor Web del componente XML DB de Oracle 12c
  • Tiene un impacto mínimo en la BD (50-100MB), con un consumo muy reducido de recursos CPU y memoria
  • Las peticiones se envían a la BD, ésta ejecuta ciertas sentencias SQL y devuelve los resultados en forma de páginas XML al cliente
  • El navegador Web del cliente es el que procesa y renderiza las páginas XML, luego se libera de bastante consumo de CPU sobre el servidor
  • Requiere tener instalado XML DB, pero todas las instalaciones de Oracle 12c ya vienen con este componente instalado por defecto
  • Para poder conectarse al servicio XML DB, es necesario configurar al menos un DISPATCHER. Ej. dispatchers=»(PROTOCOL=TCP)(SERVICE=CDB1XDB)»
  • Por defecto, se utiliza el puerto seguro 5500 (HTTPS) para acceder a Database Express. Ej. https://db12c.dbajunior.com:5500/em
  • OEM Database Express sólo está disponible cuando la BD está abierta (OPEN). Luego no podemos utilizarlo para levantar la BD.

2. Por defecto, si hemos creado la BD con DBCA tenemos todo listo para conectarnos a OEM Database Express. Vamos a repasar la configuración de la BD CDB1 en la máquina virtual DB12C. Una vez que verifiquemos que la configuración es correcta, nos conectaremos a EM Express.

# Cargamos el profile de la BD CDB1
. oraenv # ORACLE_SID = CDB1

# Verificamos el estado del listener
# Debe estar levantado y tener el servicio 'CDB1XDB.dbajunior.com' registrado
lsnrctl status
-- Nos logamos en la BD para verificar la configuración de EM Express
--   # Debe existir al menos un DISPATCHER para el servicio XML DB
--   # Ej.: (PROTOCOL=TCP) (SERVICE=CDB1XDB)
show parameter DISPATCHERS

-- Podemos hacer un double-check de la configuración de los dispatchers levantados
COL SERVICE FORMAT A40
SELECT CONF_INDX, DISPATCHERS, SERVICE FROM V$DISPATCHER_CONFIG;

-- Verificamos el puerto del servidor HTTP embebido en XML DB
-- Por defecto se configura un puerto seguro HTTPS (ej. 5500)
SELECT dbms_xdb_config.gethttpsport FROM DUAL;

-- Comprobamos que no es posible acceder a través del protocolo HTTP (GETHTTPPORT = 0)
SELECT dbms_xdb_config.gethttpport FROM DUAL;
# Una última comprobación (opcional) para ver que el puerto está abierto en el servidor
# Si os fijáis veréis que el programa tnslsnr tiene abierto el puerto (que es el proceso sobre el que corre el LISTENER)
# Veremos una línea similar a esta:
#   # Proto Recv-Q Send-Q Local Address   Foreign Address    State      PID/Program name
#   # tcp   0      0      :::5500         :::*               LISTEN     3774/tnslsnr
netstat -tnap | grep LISTEN

3. Ahora ya podemos abrir un navegador y conectarnos a OEM Database Express. El Look & Feel es muy similar a OEM Cloud Control. Particularme, me gusta el cambio. La sección de Performance (Rendimiento) ha mejorado bastante y se han incluido las funcionalidades de Real Time ADDM y SQL Monitoring.

Entramos en la siguiente dirección «https://db12c.dbajunior.com:5500/em» ->
-> Nombre de usuario = «sys» ->
-> Contraseña = «oracle» ->
-> Habilitamos «como sysdba» ->
-> Observamos las pestañas Configuración, Almacenamiento, Seguridad y Rendimiento ->
-> Click «Rendimiento» ->
-> Click «Hub de Rendimiento»

OEM Database Express

4. Es muy sencillo cambiar el puerto EM Database Express. Ya que tenemos dos BBDD en la máquina virtual DB12C (CDB1 y CDB2), vamos a cambiar el puerto de CDB2 a 5600.

# Cargamos el profile de la BD CDB2
. oraenv # ORACLE_SID = CDB2
-- Verificamos el puerto sobre el que está corriendo OEM Database Express
-- En mi caso está corriendo sobre el puerto 5501
SELECT dbms_xdb_config.gethttpsport FROM DUAL;

-- Cambiamos el puerto al número 5600
exec DBMS_XDB_CONFIG.SETHTTPSPORT(5600);

-- Validamos el cambio
SELECT dbms_xdb_config.gethttpsport FROM DUAL;

Ahora sólo nos queda logarnos en OEM Database Express a través de la URL «https://db12c.dbajunior.com:5600/em«.