lunes, 25 de junio de 2012

ORACLE: MANTENIMIENTO PROACTIVO


1.  ESTABLECER ADVERTENCIAS Y ALERTAS DE UMBRALES CRITICOS

Reglas de umbral

Una regla de umbral es una regla que se establece en un contador de rendimiento individual para supervisar el uso de recursos del sistema durante una prueba de carga. Las definiciones de conjuntos de contadores contienen reglas de umbral predefinidas para muchos contadores de rendimiento clave. 
Hay dos tipos de umbrales: de advertencia y críticos. Un mensaje de alerta le notifica si se infringe la regla de umbral. Al analizar la ejecución de una prueba de carga, puede ver las infracciones de umbral.

Reglas y niveles de umbral

Al crear reglas de umbral en las pruebas de carga, hay que elegir entre dos tipos de reglas:
Comparar con constante
Compara un valor de contador de rendimiento con un valor constante.
Comparar con contadores
Compara un valor de contador de rendimiento con otro valor de contador de rendimiento.
Al crear reglas de umbral, hay que establecer también los niveles de la regla. Los niveles que puede definir son el umbral de advertencia y el umbral crítico. Al ver la ejecución de una prueba de carga, un símbolo amarillo indica las infracciones de umbral de nivel de advertencia y un símbolo rojo indica las infracciones de umbral de nivel crítico.

Ejemplo:

Otro ejemplo:

Activar Notificaciones de Alertas: si desea que el usuario SYSMAN (el superadministrador por defecto y propietario del esquema del repositorio de gestión) reciba notificaciones de alerta cuando una métrica para una condición especificada alcance un umbral crítico o de advertencia. Si no se definen los parámetros de servidor de correo saliente (SMTP) y dirección de correo electrónico, se podrán definir o cambiar estos valores de notificación de alerta utilizando la Consola de Enterprise Manager cuando termine la instalación.

2. RECOLECTAR Y USAR METRICAS DE REFERENCIA

Metricas de Negocio
 
Una métrica de negocio es cualquier tipo de instrumento de medición usado para calcular los componentes cuantificables del rendimiento de una compañía, como el retorno de la inversión, los ratios de rotación de empleados y clientes, el beneficio antes de impuestos, etc.

Las métricas de negocio constituyen gran parte del área de business intelligence, que comprende un alto número de aplicaciones y tecnoloas para recoger, almacenar, analizar y proporcionar acceso a los datos para ayudar a las empresas a realizar mejores  decisiones  de  negocio.  Existen  aproximaciones  sistemáticas  como  los cuadros de valoración que pueden ser empleados para transformar los objetivos de la organización dentro de objetivos cuantificables y a monitorizar el rendimiento de la organización en términos de la consecución de dichos objetivos.
A partir de la definición anterior y aplicada al entorno tecnológico del Servicio Andaluz de Salud, se presentan las métricas que se aplicarán como parámetros de entrada a las pruebas de carga que validan un nuevo desarrollo o una nueva funcionalidad de aplicación. Las métricas de negocio tomadas como parámetros de entrada establecen la tipología de las pruebas de carga y sen los valores sobre los que se calculen los ratios resultantes al cruzarlos con las métricas de productos Oracle en los que se ejecutan las aplicaciones.

Oracle Soporte ha establecido las siguientes métricas de negocio.

#user valor numérico, define el número de usuarios con los que se ejecutarán las pruebas de carga.

%concurrencia_usuarios valor numérico, define el porcentaje de usuarios sobre el número total de usuarios, que ejecutan la lógica de las pruebas de carga de forma concurrente.

#iteraciones_casouso_i_transaccional – valor numérico, define el mero de iteraciones que un Caso de Uso transaccional es ejecutado por un usuario.

%ejecucion_casouso_i  - valor numérico, es el porcentaje de ejecuciones del caso de uso i sobre el total de ejecuciones del resto de casos de uso de las pruebas de carga

#registros_procesados_casouso_i_masivo valor numérico, define el número de registros que un Caso de Uso masivo tiene que procesar correctamente durante las pruebas.

%concurrencia_casouso valor numérico, dado un caso de uso i, el porcentaje de concurrencia define el número de ejecuciones concurrentes de un caso de uso i sobre el total de ejecuciones de dicho caso de uso.

tiempo_in valor numérico, tiempo que estarán ejecutándose las pruebas.

tiempo_out valor numérico, tiempo empleado en procesar los casos de uso establecidos en la definición de las pruebas.

ORACLE NET LISTENER

 
ORACLE DATABASE SINGLE INSTANCE

 
 ORACLE REAL APPLICATION CLUSTER

ORACLE STREAMS

ORACLE DATAGUARD


ORACLE JVM JROCKIT Y WEBLOGIC SERVER



3. USAR EL OPTIMIZADOR Y HERRAMIENTAS DE DIAGNOSTICO

El Optimizador de Oracle

Oracle dispone de un elemento, llamado optimizador, que planifica la ejecución de las consultas a los datos. Es el elemento clave para que las consultas sean eficientes.
Puede funcionar de dos maneras:
  • Basado en reglas. En este caso, el proceso servidor elige el camino a los datos, examinando la SELECT, de acuerdo a un ranking definido mediante unas reglas internas. No se recomienda su uso, pues el plan de ejecución de la sentencia SQL no tiene en cuenta la distribución de los datos entre los bloques, y es habitual, por ejemplo, que se usen índices que están disponibles, pero que no devuelven la mayoría de las filas, ralentizando así las consultas. El diseñador del SQL ha de tener en cuenta este hecho y desactivar índices explícitamente o colocar las tablas en el orden adecuado en la cláusula WHERE, dependiendo de la distribución de los datos.
  • Basado en coste. Es el modo recomendado. Consiste en que el optimizador examina cada sentencia e identifica todos los accesos posibles a los datos. Después, calcula el coste para cada camino y elige el de menor coste. El cálculo se hace basado en el número de lecturas lógicas y, para ello, se utilizan las estadísticas generadas para las tablas e índices.
El parámetro que permite seleccionar el modo es OPTIMIZER_MODE. El valor CHOOSE es el defecto (coste). Otros valores son:
  • ALL_ROWS tiene en cuenta en tiempo de respuesta total.
  • RULE es para que funcione en modo regla.
  • FIRST_ROWS calcula los costes, minimizando el tiempo de respuesta inmediato.
Las estadísticas que usa el optimizador basado en costes se recopilan en dba_tables, dba_indexes, dba_tab_cols, etc., mediante los comandos ANALYZE TABLE/INDEX o con el procedimiento almacenado dbms_stats.gather_schema_stats.
Otros parámetros que afectan al optimizador:
  • DB_FILE_MULTIBLOCK_READ_COUNT: Si tiene un valor alto, el optimizador basado en costes reconoce que las lecturas multibloque son más baratas en coste que las lecturas secuenciales, tendiendo a realizar full-scan sobre las tablas.
  • PARALLEL_AUTOMATIC_TUNING: Si tiene el valor ON, paraleliza los full-scan.
  • SORT_AREA_SIZE: Si tiene un valor alto, es más probable que el optimizador decida realizar una ordenación del conjunto resultado, en lugar de un acceso por índice.
  • HASH_AREA_SIZE: Si tiene valor, el optimizador es más propenso a realizar hash-joins en vez de nested-loop o sort-merge.

Herramientas de diagnóstico

El sistema incluye herramientas de diagnóstico basadas en firmware y en software para facilitar la identificación y aislamiento de los problemas del hardware. Estas herramientas son:
  • Pruebas automáticas durante el encendido (POST)
  • Pruebas de diagnóstico de OpenBoot (OBDiag)
  • Software SunVTS
  • Software Sun Enterprise SyMON
Las pruebas de diagnóstico POST (Power-on Self-test) verifican el funcionamiento de los componentes centrales del sistema, lo que incluye la placa lógica principal, la memoria del sistema y los dispositivos de E/S. Es posible ejecutar POST aunque el sistema no pueda arrancar.
Las pruebas de OBDiag se centran en la E/S del sistema y en los dispositivos periféricos. Al igual que POST, es posible ejecutar las pruebas de diagnóstico de OpenBoot aunque el sistema no pueda arrancar.
SunVTS es una aplicación UNIX orientada a gráficos que permite examinar continuamente los recursos del sistema, así como sus dispositivos internos y externos. 
El software Sun Enterprise SyMON basado en UNIX permite supervisar el estado del hardware del sistema y el rendimiento del sistema operativo del servidor.
El método o la herramienta utilizada para diagnosticar los problemas del sistema depende de la naturaleza de esos problemas:
  • Si la máquina no puede arrancar su sistema operativo, es preciso ejecutar las pruebas de POST y OBDiag.
  • Si la máquina es capaz de iniciar y cargar su sistema operativo, pueden utilizarse las aplicaciones Sun Enterprise SyMON y SunVTS para diagnosticar los problemas del sistema.
  • El esquema siguiente ofrece una idea general de cuándo deben utilizarse las distintas herramientas de diagnóstico para detectar problemas del hardware.
Graphic

 4.USAR EL MONITOR AUTOMATICO DE DIAGNOSTICOS DE BASE DE DATOS.

Automatic Database Diagnostic Monitor (ADDM)

The Automatic Database Diagnostic Monitor (ADDM) analiza los datos en el repositorio de carga de trabajo automática (AWR) para identificar posibles cuellos de botella de rendimiento. Para cada uno de los problemas identificados, localiza la causa raíz y proporciona recomendaciones para corregir el problema. Una tarea de análisis ADDM se lleva a cabo y sus conclusiones y recomendaciones almacenada en la base de datos cada vez que se toma una instantánea de AWR proporciona el parámetro se establece en STATISTICS_LEVEL TYPICAL o ALL. El análisis ADDM incluye:
  • Carga de la CPU
  • Uso de la memoria
  • E / S de uso
  • Uso intensivo de recursos de SQL
  • Uso intensivo de recursos de PL / SQL y Java
  • RAC Problemas
  • Problemas de aplicación
  • Problemas de base de datos de configuración
  • Problemas de simultaneidad
  • Objeto de contención
Los informes ADDM son mucho más sencillos de leer que los de RMA o Statspack, por lo que un método útil para identificar gran cantidad de recursos de SQL y PL / SQL.
Hay varias formas para producir informes de los análisis ADDM que se explicará más adelante, pero todos siguen el mismo formato. Los resultados (problemas) se enumeran en orden de potencial impacto en el rendimiento de base de datos, junto con recomendaciones para resolver el problema y los síntomas que conducen a su descubrimiento. Un hallazgo ejemplo se muestra a continuación.
Resultado 1: el impacto del 59% (944 segundos)
-----------------------------------
El buffer cache fue inferior a la causa de lectura adicional y significativa de I / O.
RECOMENDACIÓN 1: Configuración de base de datos, el beneficio del 59% (944 segundos)
ACCIÓN: Aumentar el tamaño de SGA de destino mediante el aumento del valor del parámetro "SGA_TARGET" antes del 28 M.
Síntomas que condujeron a la conclusión:
Espere la clase "Usuario de E / S" fue mucho tiempo la base de datos importante. (83%
impacto [1336]) segundo
Las recomendaciones para una conclusión en particular pueden incluir:
  • Los cambios de hardware
  • Cambios de base de datos de configuración
  • Los cambios de esquema
  • Cambios en las aplicaciones
  • Uso de otros asesores
El análisis del rendimiento de E / S se ve afectado por el parámetro dbio_expected que se debe establecer en el promedio de tiempo (en microsegundos) que tarda en leer un bloque de base de datos única del disco con los valores típicos van desde 5000 a 20000 microsegundos.
 
EXECUTE DBMS_ADVISOR.set_default_task_parameter ('ADDM', 'DBIO_EXPECTED', 8000);
 
En dbconsole Enterprise Manager, el "Análisis de rendimiento" en la página "Home" es una lista de los cinco mejores resultados de la tarea ADDM último análisis. Los informes específicos se pueden producir haciendo clic en el "Asesor de Centroamérica", luego en el vínculo "ADDM". La página resultante permite la selección de una imagen de inicio y fin, la creación de una tarea ADDM y la pantalla del informe resultante haciendo clic en algunos enlaces.
Por otra parte, un informe de ADDM puede ser generada a partir de SQL * Plus mediante el script addmrpt.sql situado en el $ ORACLE_HOME / RDBMS / admin. Cuando se ejecuta, el script muestra todas las instantáneas disponibles y pide al usuario que introduzca el principio y la instantánea final junto con el nombre del informe.
También es posible crear y ejecutar tareas ADDM asesor utilizando el paquete dbms_advisor, como se muestra a continuación.
 
COMENZAR
- Crear una tarea ADDM.
DBMS_ADVISOR.create_task (
advisor_name => 'ADDM',
nombre_tarea => '970_1032_AWR_SNAPSHOT ',
TASK_DESC => 'Asesor para las instantáneas de 970 a 1032.');
- Establecer el inicio y el final instantáneas.
DBMS_ADVISOR.set_task_parameter (
nombre_tarea => '970_1032_AWR_SNAPSHOT ',
parámetro => 'START_SNAPSHOT',
= valor> 970);
DBMS_ADVISOR.set_task_parameter (
nombre_tarea => '970_1032_AWR_SNAPSHOT ',
parámetro => 'END_SNAPSHOT',
valor => 1032);
- Ejecutar la tarea.
DBMS_ADVISOR.execute_task (nombre_tarea => '970_1032_AWR_SNAPSHOT ');
END;
/
- Mostrar el informe.
SET DE LARGO 100000
SET PAGESIZE 50000
SELECT DBMS_ADVISOR.get_task_report ('970_1032_AWR_SNAPSHOT ') Según el informe de
De la doble;
SET PAGESIZE 24
El valor para el comando SET largo debe ser ajustada para permitir que todo el informe que se mostrará.
Los siguientes puntos de vista se puede utilizar para mostrar la salida de ADDM sin necesidad de utilizar Enterprise Manager o la función get_task_report:
  • dba_hist_snapshot - Muestra una lista de todas las instantáneas válidos.
  • dba_advisor_tasks - Información básica sobre las tareas existentes.
  • dba_advisor_log - La información de estado acerca de las tareas existentes.
  • dba_advisor_findings dictámenes identificados para una tarea existente.
  • dba_advisor_recommendations - Recomendaciones para los problemas identificados por una tarea existente.
La sección de nido a explicar cómo el Administrador corporativo se refiere a las secciones anteriores.
 
Al utilizar Oracle Enterprise Manager
En las últimas versiones de la base de datos, Oracle ha llevado a Oracle Enterprise Manager (OEM) como la herramienta principal de administración de la base de datos. Dependiendo de la versión utilizada, ya sea de consola que proporciona una interfaz gráfica de usuario Java o HTML basado en navegador que permite el acceso simplificado a una serie de las características descritas anteriormente.
No me parece mal Enterprise Manager, pero no ocultar algunos detalles de los mecanismos subyacentes. Yo prefiero entender la tecnología, en lugar de estar protegidos de ella.
En lugar de lanzarse a una larga discusión sobre las características que son compatibles con cada versión de OEM, me limitaré a decir que si usted entiende que el material se discutió anteriormente, el uso de OEM para acceder a las funciones será sencillo e intuitivo.

5. ADMINISTRAR EL REPOSITORIO DE CARGA AUTOMATICA DE TRABAJO

AWR (Automatic Workload Repository) Introduccion

Tiene las funciones de recopilar, procesar y mantener estadisticas y metricas de la base de datos.  AWR se forma a base de Snapshot o capturas de determinados datos de la base de datos. Considerarmos una BASELINE como un conjunto de snapshots que representan un determiando estado de la base de datos. Se utilizaran para comparar con estados futuros de la base de datos.

Características de AWR

AWR se utiliza para recopilar las estadísticas de rendimiento, incluyendo: 
  • Eventos de espera problemas de performance. 
  • Estadísticas que indican la cantidad de tiempo de la base de datos asociado a un proceso. 
  • Historia de sesión activa (ASH).
  • Estadísticas de sesión 
  • Estadísticas de uso de objetos. 
  • Uso intensivo de recursos SQL.

Los datos almacenados en AWR se encuentran es estructuras de memoria llamadas fixed tables.Existen dos tipos de estadisticas:

a) Performance Stadistics
b) Optimized Stadistics.

PERFORMANCE STADISTICS
Nos muestran el funcionamiento de la Base de Datos a lo largo del tiempo. Analizando estas estadisticas veremos una posible degradacion del funcionamiento de la base de datos.

Categorias:

 a) Cumulative values: Estadisticas que se actualizan constantemente.
 b) Metrics: Muestran rangos de variacion.
 c) Sampled: Muestran el estado de todas las sesiones activas.

AWR almacena estadisticas de diferentes tipos:

a) Tiempo
b) Sistema operativo
c) Tiempo de Espera.

Workload Repository pertenece a SYS y se almacena en SYSAUX.
Para habilitar AWR tenemos que configurar el parametro STATISTICS_LEVEL a alguno de estos valores TYPICAL(por defecto)|ALL. En BASIC,AWR no funciona de forma automatica.

sql> ALTER SYSTEM SET STATISTICS_LEVEL=TYPICAL SCOPE=BOTH

El espacio que ocupara AWR dependera del numero de sesiones que tengamos activas, de SNAPSHOT INTERVAL y RETENTION PERIOD. Sera MMON el encargado de liberar espacio.

ASH buffer es una pila FIFO de la que MMON estrae estadisticas para alimentar AWR. ASH es una estructura de memoria que se encuentra en la Shared Pool ocupando un espacio que sera el numero de procesadores por 2M o el 5% de la Shared Pool. Cojeremos el menor. MMON se encargara de vaciar este buffer cada 30 min si ASM se llena cada menos sera MMNL el que se encarge de liberar parte.