oracle rac sin sorpresas - v2014

54
1 RAC sin sorpresas – v2.0 RAC sin sorpresas – v2.0 Ing. Nelson Calero, OCP [email protected] @ncalerouy 12 Marzo 2014

Upload: nelson-calero

Post on 13-Jun-2015

1.783 views

Category:

Technology


8 download

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.

TRANSCRIPT

Page 1: Oracle RAC sin sorpresas - v2014

1

RAC sin sorpresas – v2.0RAC sin sorpresas – v2.0Ing. Nelson Calero, [email protected]

@ncalerouy

12 Marzo 2014

Page 2: Oracle RAC sin sorpresas - v2014

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)

Page 3: Oracle RAC sin sorpresas - v2014

3

Oracle RAC sin sorpresas (v2.0)

Agenda

1 – Conceptos2 – Desafíos al usar RAC3 – Performance

Page 4: Oracle RAC sin sorpresas - v2014

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

Page 5: Oracle RAC sin sorpresas - v2014

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

Page 6: Oracle RAC sin sorpresas - v2014

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

• Goldengatehttp://docs.oracle.com/cd/E11882_01/server.112/e17157/architectures.htm

Page 7: Oracle RAC sin sorpresas - v2014

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

Page 8: Oracle RAC sin sorpresas - v2014

8

Arquitectura - Oracle RAC

Red pública

Usuarios

SAN Network

Red privada (Interconnect)

Instancias de la base de datos en cluster

Discos

Shared cache

Page 9: Oracle RAC sin sorpresas - v2014

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

Page 10: Oracle RAC sin sorpresas - v2014

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

Page 11: Oracle RAC sin sorpresas - v2014

11

Escalabildad RAC/SMP

Diagrama tomado de la documentación oficial

Procesamiento paralelo : symmetric multiprocessor (SMP)

Page 12: Oracle RAC sin sorpresas - v2014

12

Escalabilidad RAC

Por diseño del RAC, si una aplicación escala en SMP, escala en RAC sin cambiar el códigohttp://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

Page 13: Oracle RAC sin sorpresas - v2014

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

Page 14: Oracle RAC sin sorpresas - v2014

14

Ley de Amdhal S =

http://en.wikipedia.org/wiki/File:AmdahlsLaw.svg

Page 15: Oracle RAC sin sorpresas - v2014

15

Arquitectura RAC

Diagrama tomado de la documentación oficial

Page 16: Oracle RAC sin sorpresas - v2014

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

Page 17: Oracle RAC sin sorpresas - v2014

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)

Page 18: Oracle RAC sin sorpresas - v2014

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

Page 19: Oracle RAC sin sorpresas - v2014

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

Page 20: Oracle RAC sin sorpresas - v2014

20

“Oracle Database 11gR2 High Availability”, Oracle Press

Page 21: Oracle RAC sin sorpresas - v2014

21

Oracle RAC - procesos

QUIZ :

¿Cuantos procesos background tiene Oracle?

(Instancia + RAC + opciones)

Page 22: Oracle RAC sin sorpresas - v2014

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

Page 23: Oracle RAC sin sorpresas - v2014

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)

Page 24: Oracle RAC sin sorpresas - v2014

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

Page 25: Oracle RAC sin sorpresas - v2014

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

Page 26: Oracle RAC sin sorpresas - v2014

26

Clusterware heartbeats

RED Pública

CSS

Nodo2

CSS

Nodo1

CSS

Nodo3

InterconnectRED Privada

RED SANDiskTimeoutdef. 200 seg.

Voting Disk

CSS_MISSCOUNT def. 30 seg.

RED Pública

Page 27: Oracle RAC sin sorpresas - v2014

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

Page 28: Oracle RAC sin sorpresas - v2014

28

Oracle RAC – caché global

GRD Master

GRD Master

LMSx

LMON

Cache

LCK0

DIAG

Nodo2

Instancia 2

Global Resource Directory (GRD)

Global CacheServices (GCS)

Global EnqueueServices (GES)

LMSx

LMON

Cache

LCK0

DIAG

Nodo1

Instancia 1

Cache Fusion

Interconnect

RecursosGlobales

RAC Cluster

Page 29: Oracle RAC sin sorpresas - v2014

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'

Page 30: Oracle RAC sin sorpresas - v2014

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

Page 31: Oracle RAC sin sorpresas - v2014

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)

Page 32: Oracle RAC sin sorpresas - v2014

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

Page 33: Oracle RAC sin sorpresas - v2014

33

SCAN Listeners

InstanciaCRM1

SCANListener1

InstanciaCRM2

SCANListener2

LocalListener

LocalListener

1

2 3

4

Client

Connect user:@scan:1521/crm

InstanciaCRM3

LocalListener

InstanciaCRM4

LocalListener

InstanciaCRM5

LocalListener

SCANListener3

scan=SCAN VIP1SCAN VIP2SCAN VIP3

listener_rac4

CRM

Page 34: Oracle RAC sin sorpresas - v2014

34

Server connection load balancing

PMON

CRM1instancia

PMON

SCANListener1

CRM2instancia

SCANListener2

LocalListener

LocalListener

Nodo2

Nodo1

CRM

2

1

1

34

5

6

UserProcess

DNS

Client

Connect user:@scan:1521/crm

Page 35: Oracle RAC sin sorpresas - v2014

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

Page 36: Oracle RAC sin sorpresas - v2014

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

Page 37: Oracle RAC sin sorpresas - v2014

37

Oracle RAC sin sorpresas (v2.0)

Agenda

1 – Conceptos2 – Desafíos al usar RAC3 – Performance

Page 38: Oracle RAC sin sorpresas - v2014

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)

Page 39: Oracle RAC sin sorpresas - v2014

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

Page 40: Oracle RAC sin sorpresas - v2014

40

¿Recomendaciones?

• Oracle Validated Configurationshttp://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)– ...

Page 41: Oracle RAC sin sorpresas - v2014

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ñohttp://www.oracle.com/us/technologies/026963.pdf, pág. 12

Page 42: Oracle RAC sin sorpresas - v2014

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.

Page 43: Oracle RAC sin sorpresas - v2014

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 estudiohttp://www.oracle.com/technetwork/database/features/ha-casestudies-098033.html

Page 44: Oracle RAC sin sorpresas - v2014

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

Page 45: Oracle RAC sin sorpresas - v2014

45

Oracle RAC sin sorpresas (v2.0)

Agenda

1 – Conceptos2 – Desafíos al usar RAC3 – Performance

Page 46: Oracle RAC sin sorpresas - v2014

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

Page 47: Oracle RAC sin sorpresas - v2014

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

Page 48: Oracle RAC sin sorpresas - v2014

48

• Ejemplo de contención en select .. for update

Row-lock contention

Page 49: Oracle RAC sin sorpresas - v2014

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

Page 50: Oracle RAC sin sorpresas - v2014

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

Page 51: Oracle RAC sin sorpresas - v2014

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

Page 52: Oracle RAC sin sorpresas - v2014

52

¿Preguntas?

[email protected] @ncalerouy

Page 53: Oracle RAC sin sorpresas - v2014

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

Page 54: Oracle RAC sin sorpresas - v2014

54

Referencias• RAC Attack

http://en.wikibooks.org/wiki/RAC_Attack_-_Oracle_Cluster_Database_at_Home/RAC_Attack_12c

• SCAN Listenershttp://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 Releaseshttp://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 bloghttps://blogs.oracle.com/UPGRADE/