Upload
nelson-calero
View
1.277
Download
3
Embed Size (px)
DESCRIPTION
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.
Citation preview
1
RAC sin sorpresas
Ing. Nelson Calero, [email protected]
Oracle Technology Network DayMontevideo
16 octubre 2010
2
Agenda
1 – Conceptos2 – Desafíos al usar RAC3 – Herramientas 4 – Tuning de problemas comunes
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
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.
5
Arquitectura
6
Fortalezas
7
RAC NO ES
• NO ES solución para recuperación de desastres
• NO ES solución mágica para aplicativos con problemas de performance
8
Escalabildad
Procesamiento paralelo : symmetric multiprocessor (SMP)
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
10
Conceptos de paralelismo• Scaleup : volumen-paralelo
volumen-original
• Speedup : tiempo-original tiempo-paralelo
• Ley de Amdahl :
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)
12
Arquitectura (cont)
13
Oracle RAC - archivos
14
Oracle RAC - archivos
• Compartidos y únicos– Datos, controlfile, init
• Compartidos pero únicos por instancia– undo, redo, temp
• No compartidos– Logs, traces, audit ($ORACLE_BASE/admin
en 10.2, DIAGNOSTIC_BASE en 11)
15
Oracle RAC - ASM
16
Oracle RAC - ASM
17
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– Striping– Balanceo– Mirroring– Operaciones online
18
Oracle RAC - procesos
19
Oracle RAC - procesos
QUIZ :
¿Cuantos procesos background tiene Oracle?
(Instancia + RAC + opciones)
20
Oracle RAC - procesos
Oracle 11.2
88 procesos background (Instancia + RAC + opciones)
http://download.oracle.com/docs/cd/E14072_01/server.112/e10820/bgprocesses.htm
21
Oracle RAC - Clusterware
Funcionalidades• Gestión de recursos globales• Membresía de nodos (eviction, evita split-brain) - CRS• Gestión de eventos (de CRS) – EVM
Componentes• Oracle Cluster Registry (OCR) – configuración
(servicios, instancias)• Voting Disk – participación de nodos cuando falla la
red privada entre nodos (usado por CSS)
22
Oracle RAC – cache global
23
Tiempos de acceso
Mutex lock/unlock 25 nsMain memory reference 100 nsSend 2K bytes over 1 Gbps network 20,000 nsRead 1 MB sequentially from memory 250,000 nsRound trip within same datacenter 500,000 ns
Disk seek 10,000,000 nsRead 1 MB sequentially from disk 20,000,000 ns
• Jeff Dean – Google - Numbers Everyone Should Know
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
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
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
27
Agenda
1 – Conceptos2 – Desafíos al usar RAC3 – Herramientas 4 – Tuning de problemas comunes
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)
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)
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
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.
32
Instalaciones
• Oracle : 30+ clientes con 6 nodos
• Amazon – 16 nodos
• Mercadolibre – 10 nodos
• Locales : varias de 3 nodos
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
34
Agenda
1 – Conceptos2 – Desafíos al usar RAC3 – Herramientas 4 – Tuning de problemas comunes
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
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
37
Row-lock contention
Ejemplo contención en select .. for update
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
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)
40
¿Preguntas?
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