advertisement

Oracle RAC sin sorpresas - v2014

92 %
8 %
advertisement
Information about Oracle RAC sin sorpresas - v2014
Technology

Published on March 12, 2014

Author: ncalero

Source: slideshare.net

Description

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.
advertisement

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 (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 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 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 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 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 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 Arquitectura - Oracle RAC Red pública Usuarios SAN Network Red privada (Interconnect) Instancias de la base de datos en cluster Discos Shared cache

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 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 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.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 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 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 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 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 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 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 “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/bgprocesses.htm Oracle 12.1 108 procesos background http://docs.oracle.com/cd/E16655_01/server.121/e17615/bgprocesses.htm Oracle RAC - procesos

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 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 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 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 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 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 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 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 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 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 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 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 Cambios en 11g • ASM y CW en un solo home (Grid Infrastructure) • patchset son instalaciones completas (11.2.0.3) • 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 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 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 – Preparación inicial y constante – Dimensionar adecuadamente los grupos – Desarrollo y Soporte Gestión – Incluye áreas antes bien separadas (sysadmin /dba)

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 ¿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 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 ¿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 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 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 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 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 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 • 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 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 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 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 ¿Preguntas? nelson.calero@gmail.com @ncalerouy

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 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/

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Achieving Availability and Scalability with Oracle 12c RAC ...

... work with Oracle 12c multitenant database architecture as well as some of Oracle 12c RAC Health Check ... Oracle RAC sin sorpresas . Leave a Reply ...
Read more

Oracle Flex Cluster: Laying a Foundation for the Oracle ...

... Oracle RAC sin sorpresas. What’s So Special about the Oracle Database Appliance? Leave a Reply Cancel reply. You must be logged in to post a comment. ...
Read more

Oracle Wait Events - Oracle Help Center

Many of these wait events are tied to the internal implementation of Oracle and therefore are subject to change or deletion without notice.
Read more

Install and Configure Red Hat 6.4 for Oracle Databases ...

Oracle RAC, Virtualization and Exadata Expert Oracle ACE Director: Charles Kim. Search for: ... You can use subscription-manager to register.
Read more

Local Naming Parameters (tnsnames.ora) - Oracle Help Center

This tnsnames.ora file is a configuration file that contains net service name s mapped ... the tnsnames.ora file is located in the ORACLE_HOME/network ...
Read more

Oracle Database Express Edition 11g Release 2

Oracle Database Express Edition 11g ... Support is provided through a free Oracle Discussion Forum monitored by Oracle employees as well as community ...
Read more