Presentación dada durante el OTN Tour 2011 en Montevideo.
Resumen:
Introducción a la versión clusterizada de la base de datos Oracle. Se presentan conceptos y consideraciones para su adpoción.
3. 1 - Conceptos
• Cluster : servidores interconectados que actuan
como uno solo
• RAC : varias instancias accediendo a una misma
base. Una instancia por nodo.
– Solución basada en Shared storage
– Beneficios :
• Alta disponibildad (elimina la instancia como SPOF)
• Escalabilidad (horizontal / scale-out, hasta 100 nodos)
• Gestión de carga automática (balanceo de servicios)
• Consolidación de servidores
3
4. Oracle RAC
Historia
– Primer versión 9i (2001)
– Antes OPS (desde 7)
Versión standard - gratis:
– 4 CPU por cluster máx.
– solo sobre ASM y Oracle Clusterware
Opción en Enterprise Edition:
– Sin límite de CPUs.
4
9. Escalabilidad
Por diseño del RAC, si una aplicación escala en
SMP, escala en RAC sin cambiar el código.
– 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
9
10. Conceptos de paralelismo
• Scaleup : volumen-paralelo
volumen-original
• Speedup : tiempo-original
tiempo-paralelo
• Ley de Amdahl :
10
11. Componentes RAC
Software en cada Nodo (ORACLE_HOMEs <>):
– Instancia
– Clusterware
– ASM
Además :
– conexión de alta velocidad entre nodos
– SAN
– Caché global (o fusion o coherence)
11
23. 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
23
24. Overhead del cache
Desglose del tiempo total para obtener un
bloque del cache :
CPU : buscar bloque en cache local
CPU : identificar el master
CPU : pedir el bloque a la red
NET : transferir el bloque
NET : latencia
CPU : recibir el bloque
CPU : cear imagen consistente 24
25. Oracle RAC - cache
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
25
26. Oracle RAC – más detalles
• Servicios
• Balanceo de carga (clientes)
• Impacto de cambios en servicios
– Transparent Application Failover (TAF)
– Fast Application Notification (FAN)
• ...
• Tareas administrativas (respaldos, tunning,..)
• Troubleshooting
26
28. 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) 28
29. ¿Recomendaciones?
Muchas
– Diseño
– Configuraciones de hardware validadas
– Migración
– Tuning
–…
Fuentes
– Soporte Oracle (ex Metalink) – único oficial
– Oracleracsig : grupo de usuarios interesados en
RAC (Special Interest Group) 29
30. 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 : oracle estima esfuerzo de 20 personas 1 año
30
31. ¿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 de fracasos y sus motivos. 31
32. Instalaciones
• Oracle : 30+ clientes con 6 nodos
• Amazon – 16 nodos
• Mercadolibre – 10 nodos
• Locales : varias de 3 nodos
32
33. 3 - 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
33
35. 4 - tuning
• Mismo enfoque que single-instance
– Monitorear
– Identificar las esperas/consumidores mayores
– Mejorar y comenzar de nuevo
• Grid control sirve, pero se necesita más información para
diagnosticar trancas
– Trace 10053 (CBO)
– dbms_xplan.display_cursor
– v$sql_bind_capture
• Nuevos wait-events
35
36. Tuning – Wait events
– Evento generico mientras se espera:
• gc [current|cr] block request
– Después de resuelto:
• 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 36
38. Consejos
Ejemplos de problemas específicos de RAC
• uso excesivo de cpu afecta respuesta de LMS, lo que puede generar
eviction al no responder al heartbeat a tiempo
• procesos batch sin buen particionamiento de datos pueden generar
contención (locks clásicos o waits del cluster)
• uso de secuencias como clave primaria de forma global genera lockeos
Soluciones
✔
reescribir select for update haciendo updates más complejos
✔
aumentar cache de secuencias
✔
modificar pctfree para tablas chicas con muchos accesos
✔
minimizar uso de DROP y TRUNCATE 38
39. Consejos
Consejos clásicos, pero que ahora impactan más
●
reducir hard parsing (global lock)
●
controlar la combinación de histogramas con bind-peeking
●
reducir redo (p.ej : evitando update *)
●
minimizar generación de undo
●
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 (optimizado en 11.2) 39
41. 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 787420.1 Cluster Interconnect in Oracle 10g and
11g
• 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
• http://www.oracleracsig.org
41