1
RAC sin sorpresas – v2.0RAC sin sorpresas – v2.0
Ing. Nelson Calero, OCP
nelson.calero@gmail.com
@ncalerouy
12 Marzo 2014
2
Sobre mí
• http://www.linkedin.com/in/ncalero
• Ingeniero en Computación. OCP DBA 10g. Especializado en
performance y HA...
3
Oracle RAC sin sorpresas (v2.0)
Agenda
1 – Conceptos
2 – Desafíos al usar RAC
3 – Performance
4
Conceptos - Cluster
• Cluster: servidores interconectados que actuan como uno
solo
• Oracle RAC: varias instancias acced...
5
Conceptos - DR / HA
• Recuperación de desastres (DR) es la capacidad de
continuar operaciones usando contingencia
• Alta...
6
HA con Oracle: más que RAC
• Single instance: Restart, ASM, Flashback, RMAN,...
• Database + Clusterware (pre 11.2)
– RA...
7
Oracle RAC
Historia
– Primera versión: en Oracle 9i (2001)
– Antes : OPS (desde Oracle v7)
Opción en Enterprise Edition ...
8
Arquitectura - Oracle RAC
Red pública
Usuarios
SAN Network
Red privada
(Interconnect)
Instancias de la
base de datos
en ...
9
RAC - Fortalezas
• Alta disponibilidad (HA): a fallas de nodos e instancias
• Escalabilidad: se pueden agregar nodos a d...
10
RAC - Debilidades
• Complejidad – gestión, patching, upgrades, migraciones
• Costo
• Se deben hacer cambios (menores) e...
11
Escalabildad RAC/SMP
Diagrama tomado de la documentación oficial
Procesamiento paralelo : symmetric multiprocessor (SMP)
12
Escalabilidad RAC
Por diseño del RAC, si una aplicación escala en
SMP, escala en RAC sin cambiar el código
http://docs....
13
Conceptos de paralelismo en RAC
• Scaleup: mejora en performance cuando
aumentan recursos (y carga)
S = Volumen paralel...
14
Ley de Amdhal S =
http://en.wikipedia.org/wiki/File:AmdahlsLaw.svg
15
Arquitectura RAC
Diagrama tomado de la documentación oficial
16
Arquitectura - Componentes
Software en cada Nodo (varios ORACLE_HOME):
– Instancia
– Clusterware y ASM = Grid Infrastru...
17
Oracle RAC - archivos
• Compartidos entre instancias (globales)
– Datos, controlfile, init
• Únicos por instancia (en s...
18
Storage compartido
• Obligatorio para datafiles
• Soporta:
– Cluster file system
• OCFS2 de Oracle, gratis y open sourc...
19
Oracle RAC - ASM
• Fin del diseño manual de dispositivos buscando
performance (cilindros externos separados de los
inte...
20
“Oracle Database 11gR2 High Availability”, Oracle Press
21
Oracle RAC - procesos
QUIZ :
¿Cuantos procesos background tiene Oracle?
(Instancia + RAC + opciones)
22
Oracle 11.2
92 procesos background
(Instancia + RAC + opciones)
http://docs.oracle.com/cd/E11882_01/server.112/e40402/b...
23
Clusterware Stack
La arquitectura de procesos y el inicio cambió entre versiones:
10g) tres daemons (lanzados mediante ...
24
Oracle RAC - Clusterware
Funcionalidades
• Capa segura de comuncación entre nodos
• Gestión de recursos globales
– IP, ...
25
Oracle RAC - Clusterware
Componentes:
– Voting disk: estado actual de membresía de nodos (ocssd)
• Mecanismo de heartbe...
26
Clusterware heartbeats
RED Pública
CSS
Nodo2
CSS
Nodo1
CSS
Nodo3
Interconnect
RED Privada
RED SAN
DiskTimeout
def. 200 ...
27
Node Eviction
• Soporte de Intelligent Platform Management Interface (IPMI)
para reinicio remoto de nodos (desde 11.2)
...
28
Oracle RAC – caché global
GRD
Master
GRD
Master
LMSx
LMON
Cache
LCK0
DIAG
Nodo2
Instancia 2
Global Resource
Directory (...
29
Tiempos de acceso
Mutex lock/unlock 25 ns
Main memory reference 100 ns
Send 2K bytes over 1 Gbps network 20,000 ns
Read...
30
Overhead del caché global
Desglose del tiempo total para obtener un
bloque del caché:
CPU : buscar bloque en cache loca...
31
Oracle RAC – caché global
• Tener presente que no sólo la saturación del
interconect afecta la performane del cache glo...
32
Oracle RAC – más detalles
• Uso de servicios y resource manager
• Balanceo de carga (cliente y servidor)
• Impacto de c...
33
SCAN Listeners
Instancia
CRM1
SCAN
Listener1
Instancia
CRM2
SCAN
Listener2
Local
Listener
Local
Listener
1
2 3
4
Client...
34
Server connection load balancing
PMON
CRM1
instancia
PMON
SCAN
Listener1
CRM2
instancia
SCAN
Listener2
Local
Listener
L...
35
Cambios en 11g
• ASM y CW en un solo home (Grid Infrastructure)
• patchset son instalaciones completas (11.2.0.2)
• Ser...
36
Cambios en 12c
• cloudFS
• cambio de licencia en Clusterware (gratis con cualquier licencia Oracle)
• CW: flex cluster ...
37
Oracle RAC sin sorpresas (v2.0)
Agenda
1 – Conceptos
2 – Desafíos al usar RAC
3 – Performance
38
2 - Desafíos
Infraestructura
– Muchos componentes nuevos (elección, diseño
de arquitectura, capacity planning)
Gente
– ...
39
¿Recomendaciones?
Muchas
– Diseño de la arquitectura (capacidad, HA/DR, instalación)
– Caminos para migración inicial
–...
40
¿Recomendaciones?
• Oracle Validated Configurations
http://www.oracle.com/technetwork/server-storage/linux/validated-co...
41
2 - Desafíos
Adoptar metodología que permita dar garantías en:
– tiempos de respuesta
– alta disponibilidad
Contar con ...
42
¿Migrar a RAC?
Implica :
– Objetivos claros : ¿HA, escalabilidad, performance?
– Buena preparación de los técnicos invo...
43
Instalaciones conocidas
• Oracle : 30+ clientes con 6 nodos
• Amazon (16 nodos en 2010)
• Mercadolibre (10 nodos en 201...
44
Herramientas
Administración
 CLI : crs_ctl, srvctl, asmcmd, ..
 Grid control
Tuning
 Automatic Workload Repository (...
45
Oracle RAC sin sorpresas (v2.0)
Agenda
1 – Conceptos
2 – Desafíos al usar RAC
3 – Performance
46
3 – performance
• Tuning : Mismo enfoque que single-instance
– Monitorear
– Identificar las esperas/consumidores mayore...
47
Tuning – Wait events
• Pedir un bloque del cache global puede esperar por
respuesta de otra instancia: Cluster Wait Cla...
48
• Ejemplo de contención en select .. for update
Row-lock contention
49
Ejemplos de problemas específicos de RAC
• uso excesivo de cpu afecta respuesta de procesos como LMS (lock manager), lo...
50
Soluciones
✔ reescribir select for update usando condiciones más reestrictivas
✔ aumentar valor de cache de SEQUENCES
✔...
51
Consejos clásicos, pero que ahora impactan más :
● reducir hard parsing (punto de serialización global)
● controlar la ...
52
¿Preguntas?
nelson.calero@gmail.com
@ncalerouy
53
Referencias
• Document ID 810394.1 RAC Assurance Support Team: RAC and Oracle
Clusterware Starter Kit and Best Practice...
54
Referencias
• RAC Attack
http://en.wikibooks.org/wiki/RAC_Attack_-_Oracle_Cluster_Database_at_Home/RAC_Attack_12c
• SCA...
Upcoming SlideShare
Loading in...5
×

Oracle RAC sin sorpresas - v2014

2,038

Published on

Presentación dada en el primer Webcast en español del Oracle RACSIG - http://oracleracsig.org/

Esta es una versión actualizada con funcionalidades de las últimas versiones (11g/12c) a la presentación que dí durante el OTN Tour 2011 en Montevideo, Oracle RAC sin sorpresas, donde se repasa lo que implica usar Oracle RAC, los desafíos y recomendaciones de cómo sacarle mejor provecho.

Este enfoque introductorio intenta facilitar el camino a los técnicos que están evaluando o comenzado a utilizar Oracle RAC, tarea que tiene una larga curva de aprendizaje.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,038
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
96
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Oracle RAC sin sorpresas - v2014

  1. 1. 1 RAC sin sorpresas – v2.0RAC sin sorpresas – v2.0 Ing. Nelson Calero, OCP nelson.calero@gmail.com @ncalerouy 12 Marzo 2014
  2. 2. 2 Sobre mí • http://www.linkedin.com/in/ncalero • Ingeniero en Computación. OCP DBA 10g. Especializado en performance y HA (MySQL / Cluster / Oracle / RAC) • Trabajando con herramientas Oracle y entorno linux desde 1996 • DBA Oracle (desde 2001) & MySQL (desde 2005) • Instructor de Oracle University desde 2011 (RAC, New features, ..) • Co-fundador y Presidente del Grupo de Usuarios Oracle de Uruguay (UYOUG) desde 2009 • Orador frecuente (Oracle OpenWorld Latinoamérica, Collaborate, OTN Tour Uruguay/Argentina, JIAP, MySQL Argentina)
  3. 3. 3 Oracle RAC sin sorpresas (v2.0) Agenda 1 – Conceptos 2 – Desafíos al usar RAC 3 – Performance
  4. 4. 4 Conceptos - Cluster • Cluster: servidores interconectados que actuan como uno solo • Oracle RAC: varias instancias accediendo a una misma base de datos – Una instancia por servidor – Solución basada en Shared storage – Caché compartido entre servidores (global o fusion) – Conexión de red privada entre servidores hasta 11.2. • Flex clusters en 12c permite nodos sin conectividad privada (leaf) – IP Virtual (evita timeouts TCP) • BD, Listener y aplicaciones – Mismo SO en todos los servidores
  5. 5. 5 Conceptos - DR / HA • Recuperación de desastres (DR) es la capacidad de continuar operaciones usando contingencia • Alta disponibilidad (HA) es la capacidad de recuperar disponibilidad en un nivel de tiempo preestablecido • HA necesita recursos: hardware y software redundante, presupuesto, y muchas horas/hombre para analizar, diseñar, implementar, testear, testear y testear • Disponibilidad de cinco nueves (99,999%) implica no tener más de 5 minutos de caídas (sin operar) por año. Este es un valor de HA
  6. 6. 6 HA con Oracle: más que RAC • Single instance: Restart, ASM, Flashback, RMAN,... • Database + Clusterware (pre 11.2) – RAC One Node (cold cluster failover) 11.2 • RAC • RAC en clusters extendidos • DataGuard – Single y multiple standby • Clusterware + DataGuard • RAC One Node + DataGuard • RAC + DataGuard • Goldengate http://docs.oracle.com/cd/E11882_01/server.112/e17157/architectures.htm
  7. 7. 7 Oracle RAC Historia – Primera versión: en Oracle 9i (2001) – Antes : OPS (desde Oracle v7) Opción en Enterprise Edition (con costo)  – Sin límite de CPUs Gratis en Standard Edition: – Máximo de 4 CPU/sockets en cluster – ASM y Oracle Clusterware obligatorios Soporta servidores virtualizados – Templates disponibles para OVM (DB 11.2/12.1) – http://www.oracle.com/technetwork/database/virtualizationmatrix-172995.html
  8. 8. 8 Arquitectura - Oracle RAC Red pública Usuarios SAN Network Red privada (Interconnect) Instancias de la base de datos en cluster Discos Shared cache
  9. 9. 9 RAC - Fortalezas • Alta disponibilidad (HA): a fallas de nodos e instancias • Escalabilidad: se pueden agregar nodos a demanda para soportar mayor carga mantiendo performance (scale-out) • Gestión de carga automático mediante servicios • Tecnología madura, desde 2001 con 9i • Stack completo de componentes del mismo proveedor: SO (OEL), Filesystem (ACFS), gestión de volúmenes (ASM), memebresía/cluster (Clusterware) • ¿HA y escalabilidad automática? No. Depende de: – Hardware (equipos + lan + interconnect + energía + ...) – OS – gestión de recursos y concurrencia – DBMS – arquitectura – Aplicación – cuellos de botella
  10. 10. 10 RAC - Debilidades • Complejidad – gestión, patching, upgrades, migraciones • Costo • Se deben hacer cambios (menores) en aplicativos para aprovechar funcionalidades (TAF / FAN) – Application Continuity en 12c mejora esto • NO ES solución para recuperación de desastres • NO ES solución mágica para aplicativos con problemas de performance
  11. 11. 11 Escalabildad RAC/SMP Diagrama tomado de la documentación oficial Procesamiento paralelo : symmetric multiprocessor (SMP)
  12. 12. 12 Escalabilidad RAC Por diseño del RAC, si una aplicación escala en SMP, escala en RAC sin cambiar el código http://docs.oracle.com/cd/E16655_01/rac.121/e17887/design.htm#CACDEEDB Esto quiere decir : – los problemas existentes en single-instance son amplificados en RAC – la capacidad de procesamiento del sistema completo es mayor, aunque no sea más performante una operación individual – permite más usuarios con la misma performance. No mejora performance con los mismos usuarios
  13. 13. 13 Conceptos de paralelismo en RAC • Scaleup: mejora en performance cuando aumentan recursos (y carga) S = Volumen paralelo / Volumen serial • Speedup: mejora en tiempos de ejecución agregando servidores S = Tiempo secuencial / Tiempo paralelo • No se logra speedup con carga OLTP
  14. 14. 14 Ley de Amdhal S = http://en.wikipedia.org/wiki/File:AmdahlsLaw.svg
  15. 15. 15 Arquitectura RAC Diagrama tomado de la documentación oficial
  16. 16. 16 Arquitectura - Componentes Software en cada Nodo (varios ORACLE_HOME): – Instancia – Clusterware y ASM = Grid Infrastructure • Antes de 11.2 en homes separados Además : – conexión de alta velocidad entre nodos en una red separada/privada (solo para nodos hub en 12c) – Storage compartido (soporta: NFS, iSCSI, DAS, SAN, NAS) • Caché global (o fusion/coherence) es la funcionalidad clave
  17. 17. 17 Oracle RAC - archivos • Compartidos entre instancias (globales) – Datos, controlfile, init • Únicos por instancia (en storage) – undo, redo, temp • No compartidos (locales a cada nodo) – Logs, traces, audit ($ORACLE_BASE/admin en 10.2, DIAGNOSTIC_BASE desde 11)
  18. 18. 18 Storage compartido • Obligatorio para datafiles • Soporta: – Cluster file system • OCFS2 de Oracle, gratis y open source (GPL) • ACFS publica acceso a volúmenes ASM – Automatic Storage Management (ASM) - recomendado • Distribuye datos entre discos (balanceo) • Redundancia opcional (mirroring) – Raw volumes (para fibra o iSCSI) hasta 11.2
  19. 19. 19 Oracle RAC - ASM • Fin del diseño manual de dispositivos buscando performance (cilindros externos separados de los internos, esquemas de raid) • Funcionalidades: – Cluster file system (ACFS) / gestión de volúmenes – Striping – Balanceo – Mirroring – Operaciones online
  20. 20. 20 “Oracle Database 11gR2 High Availability”, Oracle Press
  21. 21. 21 Oracle RAC - procesos QUIZ : ¿Cuantos procesos background tiene Oracle? (Instancia + RAC + opciones)
  22. 22. 22 Oracle 11.2 92 procesos background (Instancia + RAC + opciones) http://docs.oracle.com/cd/E11882_01/server.112/e40402/bgprocesses.htm Oracle 12.1 108 procesos background http://docs.oracle.com/cd/E16655_01/server.121/e17615/bgprocesses.htm Oracle RAC - procesos
  23. 23. 23 Clusterware Stack La arquitectura de procesos y el inicio cambió entre versiones: 10g) tres daemons (lanzados mediante inittab) – CSSD, CRSD (root) y EVMD 11.2) dos stacks (lanzados por OHASD mediante inittab) – Oracle High Availability Service Daemon (OHASD) • Gestiona procesos low level – Cluster Ready Services Daemon (CRSD) • Gestiona recursos high level (database)
  24. 24. 24 Oracle RAC - Clusterware Funcionalidades • Capa segura de comuncación entre nodos • Gestión de recursos globales – IP, DB, listener, servicios, nodeapps – Failover automático de recursos • Fencing de nodos para garantizar consistencia (eviction) quitando nodos con vista incompleta del cluster (evita split-brain) – Implementa variante de STONITH (shoot the other node in the head): reinico lo hace el mismo nodo aislado – Necesita número impar de voting disks para decidir
  25. 25. 25 Oracle RAC - Clusterware Componentes: – Voting disk: estado actual de membresía de nodos (ocssd) • Mecanismo de heartbeat secundario (además de la red) • Gestionado con el comando crsctl – Registry (OCR): metadata de recursos del cluster • Configuración para el proceso CRSD • Definido en /etc/oracle/ocr.loc, gestionado con ocrconfig • Respaldo automático cada cuatro horas en un nodo – $GI_HOME/cdata/<cluster> – Oracle Local Registry (OLR) – desde 11.2 : metadata para nodo local • Gestionado con OHASD, no compartido con otros nodos
  26. 26. 26 Clusterware heartbeats RED Pública CSS Nodo2 CSS Nodo1 CSS Nodo3 Interconnect RED Privada RED SAN DiskTimeout def. 200 seg. Voting Disk CSS_MISSCOUNT def. 30 seg. RED Pública
  27. 27. 27 Node Eviction • Soporte de Intelligent Platform Management Interface (IPMI) para reinicio remoto de nodos (desde 11.2) – Necesita hardware adicional • Antes de 11.2.0.2, fencing = reinicio de nodo • Desde 11.2.0.2, se intenta reiniciar el cluster, en este orden – Mata procesos que realizan I/O (dbwr, logwr) – Detiene el cluster – OHASD reinicia el cluster – Si alguno de los pasos anteriores falla, el node se reinicia
  28. 28. 28 Oracle RAC – caché global GRD Master GRD Master LMSx LMON Cache LCK0 DIAG Nodo2 Instancia 2 Global Resource Directory (GRD) Global Cache Services (GCS) Global Enqueue Services (GES) LMSx LMON Cache LCK0 DIAG Nodo1 Instancia 1 Cache Fusion Interconnect Recursos Globales RAC Cluster
  29. 29. 29 Tiempos de acceso Mutex lock/unlock 25 ns Main memory reference 100 ns Send 2K bytes over 1 Gbps network 20,000 ns Read 1 MB sequentially from memory 250,000 ns Round trip within same datacenter 500,000 ns Disk seek 10,000,000 ns Read 1 MB sequentially from disk 20,000,000 ns • Jeff Dean – Google - 'Numbers Everyone Should Know'
  30. 30. 30 Overhead del caché global Desglose del tiempo total para obtener un bloque del caché: CPU : buscar bloque en cache local CPU : identificar el master CPU : pedir el bloque a la red RED : transferir el bloque RED : latencia CPU : recibir el bloque CPU : crear imagen consistente
  31. 31. 31 Oracle RAC – caché global • Tener presente que no sólo la saturación del interconect afecta la performane del cache global, también lo hace la ocupación de CPU Corolario: uso excesivo de CPU en un nodo puede afectar la performance del resto • Operaciones de reconfiguración, por uso excesivo (afinidad) o por fallas (instancia o nodo), generan contención (proceso GRD)
  32. 32. 32 Oracle RAC – más detalles • Uso de servicios y resource manager • Balanceo de carga (cliente y servidor) • Impacto de cambios en servicios – Transparent Application Failover (TAF) – Fast Application Notification (FAN) • Cambios en 11g y 12c (ver más adelante) • Tareas administrativas (respaldos, tuning,...) • Troubleshooting
  33. 33. 33 SCAN Listeners Instancia CRM1 SCAN Listener1 Instancia CRM2 SCAN Listener2 Local Listener Local Listener 1 2 3 4 Client Connect user:@scan:1521/crm Instancia CRM3 Local Listener Instancia CRM4 Local Listener Instancia CRM5 Local Listener SCAN Listener3 scan= SCAN VIP1 SCAN VIP2 SCAN VIP3 listener_rac4 CRM
  34. 34. 34 Server connection load balancing PMON CRM1 instancia PMON SCAN Listener1 CRM2 instancia SCAN Listener2 Local Listener Local Listener Nodo2 Nodo1 CRM 2 1 1 3 4 5 6 User Process DNS Client Connect user:@scan:1521/crm
  35. 35. 35 Cambios en 11g • ASM y CW en un solo home (Grid Infrastructure) • patchset son instalaciones completas (11.2.0.2) • Server pools • Scan listener • Nueva arquitectura de procesos –nuevos procesos (GPnP, GNS, ...) –Fencing sin restart de nodos –OCR y Voting disk en ASM (11.2) –OLR –Clusterware para single instance (Restart) • Quality of service management (QoS)- analiza carga y cambia asignación de servicios a consumer groups (resource manager) • Nuevos sabores: RAC One node
  36. 36. 36 Cambios en 12c • cloudFS • cambio de licencia en Clusterware (gratis con cualquier licencia Oracle) • CW: flex cluster y application cluster – hub nodes y leaf nodes (sin acceso directo al storage, lo hacen a traves de hubs) • flex ASM • ACFS: soporta archivos de la base RAC, Oracle home's y backupsets • Funcionalidad RAC aplication continuity (AC): repite en otra instancia transacciones en ejecución cuando hay fallas en instancia o sesión. Usa Transaction Guard, nuevo en 12c. • SCAN listener: soporta IPv6, multiple subnets en el cluster y restringir servicios que se registran. • QoS no requiere licencia extra
  37. 37. 37 Oracle RAC sin sorpresas (v2.0) Agenda 1 – Conceptos 2 – Desafíos al usar RAC 3 – Performance
  38. 38. 38 2 - Desafíos Infraestructura – Muchos componentes nuevos (elección, diseño de arquitectura, capacity planning) Gente – Preparación inicial y constante – Dimensionar adecuadamente los grupos – Desarrollo y Soporte Gestión – Incluye áreas antes bien separadas (sysadmin /dba)
  39. 39. 39 ¿Recomendaciones? Muchas – Diseño de la arquitectura (capacidad, HA/DR, instalación) – Caminos para migración inicial – Diseño de aplicativo – Gestión de carga – Tuning – Gestión de cambios (parches de Oracle y aplicativos) – Validaciones periódicas de procedimientos de HA/DR Fuentes – Soporte Oracle (ex Metalink) – único oficial – Oracleracsig : grupo de usuarios interesados en RAC (Special Interest Group) – Comunidad – Rac Attack, blogs
  40. 40. 40 ¿Recomendaciones? • Oracle Validated Configurations http://www.oracle.com/technetwork/server-storage/linux/validated-configurations-085828.html • Notas para instalación y soporte : – RAC and Oracle Clusterware Best Practices and Starter Kit (Platform Independent) (Doc ID 810394.1) – Master Note for Real Application Clusters (RAC) Oracle Clusterware and Oracle Grid Infrastructure [Article ID 1096952.1] – Top 5 Database and/or Instance Performance Issues in RAC Environment (Doc ID 1373500.1) – Top 5 RAC Instance Crash Issues (Doc ID 1375405.1) – Top 3 RAC Database/Instance Hang Issues (Doc ID 1389520.1) – ...
  41. 41. 41 2 - Desafíos Adoptar metodología que permita dar garantías en: – tiempos de respuesta – alta disponibilidad Contar con grupo interdisciplinario enfocado en ambos temas, que conozca toda la solución : aplicativo y plataforma MAA: Se estima esfuerzo de 20 personas por año http://www.oracle.com/us/technologies/026963.pdf, pág. 12
  42. 42. 42 ¿Migrar a RAC? Implica : – Objetivos claros : ¿HA, escalabilidad, performance? – Buena preparación de los técnicos involucrados (desarrollo y administración) – Cronograma realista – Mucho testing (inicial y evolutivo) Existen muchas guías y recomendaciones, pero pocas referencias de fracasos y sus motivos.
  43. 43. 43 Instalaciones conocidas • Oracle : 30+ clientes con 6 nodos • Amazon (16 nodos en 2010) • Mercadolibre (10 nodos en 2010) • Uruguay: 2 / 3 nodos • Casos de estudio http://www.oracle.com/technetwork/database/features/ha-casestudies-098033.html
  44. 44. 44 Herramientas Administración  CLI : crs_ctl, srvctl, asmcmd, ..  Grid control Tuning  Automatic Workload Repository (AWR) / statspack  ADDM  Grid control  Cluster Health Monitor (CHM) - integrado en 11.2.0.2  Support Tools Bundle - nota 1594347.1
  45. 45. 45 Oracle RAC sin sorpresas (v2.0) Agenda 1 – Conceptos 2 – Desafíos al usar RAC 3 – Performance
  46. 46. 46 3 – performance • Tuning : Mismo enfoque que single-instance – Monitorear – Identificar las esperas/consumidores mayores – Mejorar y comenzar de nuevo • Oracle Enterprise Manager Grid control sirve, pero en algunos casos se necesita más información : – Trace 10053 (CBO) – dbms_xplan.display_cursor – ASH • Nuevos wait-events
  47. 47. 47 Tuning – Wait events • Pedir un bloque del cache global puede esperar por respuesta de otra instancia: Cluster Wait Class – Evento genérico mientras se espera: • gc [current|cr] block request – Después del pedido: • gc [current|cr] block [2|3]-way • gc [current|cr] block busy • gc [current|cr] grant 2-way • gc current grant busy • gc [current|cr] [block|grant] congested • gc [current|cr] [failure|retry] • gc buffer busy http://docs.oracle.com/cd/E11882_01/rac.112/e16795/monitor.htm#CFAHDADB
  48. 48. 48 • Ejemplo de contención en select .. for update Row-lock contention
  49. 49. 49 Ejemplos de problemas específicos de RAC • uso excesivo de cpu afecta respuesta de procesos como LMS (lock manager), lo que puede generar eviction si no responde a tiempo los mensajes de heartbeat. • procesos batch sin buen particionamiento de datos pueden generar contención (locks clásicos o waits del cluster). • uso de claves primarias autoincrementales de forma global (secuencias, fechas) genera contención al insertar (eventos 'enq : TX – index contention', 'gc buffer busy ..' y otros). • sentencias como DROP y TRUNCATE generan checkpoint de la tabla e índices, obligando a sincronización del caché y locks globales. • commits muy frecuentes recargan el proceso LGWR, lo que agrega esperas al proceso LMS que a veces lo necesita para mantener consistencia. • sentencias DDL invalidan SQL parseados sobre objetos, que se sincroniza en el caché global. Problemas conocidos
  50. 50. 50 Soluciones ✔ reescribir select for update usando condiciones más reestrictivas ✔ aumentar valor de cache de SEQUENCES ✔ particionar tablas e índices (afinidad en caché global es por segmento) ✔ modificar PCTFREE para tablas chicas con muchos accesos ✔ minimizar uso de sentencias DDL en horarios de mucha concurrencia ✔ usar índices reversos en casos de PK incrementales siempre que no se necesite range scan frecuentes. ✔ Particionar índices por HASH cuando se necesiten range scan ✔ Evitar autocommit en aplicaciones y usar commit por transacción, no por sentencia Consejos
  51. 51. 51 Consejos clásicos, pero que ahora impactan más : ● reducir hard parsing (punto de serialización global) ● controlar la combinación de histogramas con bind-peeking en 10g ● reducir generación de redo (p.ej : evitando update *) ● minimizar generación de undo (p.ej : borrar índices no usados) ● comprimir datos. Ej: ● usar D o E en lugar de DISABLED o ENABLED ● permitir valores nulls en columnas (NULL/S en lugar de N/S) ● evitar full table scan no necesarios (optimizado en 11.2) Consejos
  52. 52. 52 ¿Preguntas? nelson.calero@gmail.com @ncalerouy
  53. 53. 53 Referencias • Document ID 810394.1 RAC Assurance Support Team: RAC and Oracle Clusterware Starter Kit and Best Practices (Generic) • Document ID 220970.1 RAC: Frequently Asked Questions • Document ID 1187723.1 Master Note for Automatic Storage Management (ASM) • Document ID 1053147.1 11gR2 Clusterware and Grid Home - What You Need to Know • Document ID 790189.1 Oracle Clusterware and Application Failover Management • Document ID 422893.1 11g Understanding Automatic Diagnostic Repository • Document ID 787420.1 Cluster Interconnect in Oracle 10g and 11g • Oracle RAC SIG: http://www.oracleracsig.org • Oracle RAC 12c http://www.oracle.com/technetwork/database/options/clustering/rac-wp-12c-1896129.pdf
  54. 54. 54 Referencias • RAC Attack http://en.wikibooks.org/wiki/RAC_Attack_-_Oracle_Cluster_Database_at_Home/RAC_Attack_12c • SCAN Listeners http://www.oracle.com/technetwork/products/clustering/overview/scan-129069.pdf • QoS http://www.oracle.com/technetwork/products/clustering/overview/qosmanageent- 508184.html • Application continuity (12c) http://www.oracle.com/technetwork/products/clustering/ac-overview-1967264.html • Supported Virtualization and Partitioning Technologies for Oracle Database and RAC Product Releases http://www.oracle.com/technetwork/database/virtualizationmatrix-172995.html • How to Deploy a Four-Node Oracle RAC 12c Cluster in Minutes - Using Oracle VM Templates http://www.oracle.com/technetwork/systems/hands-on-labs/deploy-rac-ovm-cluster-2101019.html • Oracle Database Upgrade blog https://blogs.oracle.com/UPGRADE/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×