Oracle High Availability Oracle Data Guard
Oracle High Availability Oracle Data Guard
Oracle Net
– Standby Física
• Identica a la base primaria (a nivel de bloques)
• Sincronizada con la base primaria a través de la aplicación de
los archive log files recibidos de la misma
• Puede usarse tanto como protección como para consultas
– Standby Lógica
• Comparte la misma definición de esquema
• Sincronizada con la base primaria a través de la
transformación de los datos recibidos en los archive logs en
sentencias SQL y luego la ejecución de dichas sentencias
• Puede ser usada para protección, consultas y upgrades de la
base de datos
Tipos de Bases Standby
– Snapshot standby
• Completamente modificable
• Creada a partir de una standby física
• Las modificaciones locales a la standby se descartan
cuando se regresa al estado de standby física.
• Puede ser usada para testing
Tipos de Servicios de Data Guard
• Data Guard provee tres tipos de servicios:
– Servicios de transporte de Redo
– Servicios de Aplicación de cambios
• Redo Apply
• SQL Apply
– Servicios de administración de roles
Transición de Roles:
Switchover y Failover
• Oracle Data Guard soportas dos operaciones de
transición de roles:
– Switchover
• Planificado y se puede volver al rol anterior
• Usado para mantenimiento de Sistema Operativo o Hardware
– Failover
• Cambio de rol no planificado
• Usado en caso de emergencias
• Pérdida mínima o nula de datos (dependiendo de la elección
del modo de protección)
• Puede ser iniciado automáticamente cuando se habilita el fast-
start failover
Oracle Data Guard Broker Framework
Oracle
Management
Server
Repositorio
Agente Agente
Base de Datos
Base de
Primaria
Data Datos
Data
Guard Guard Standby
broker Enterprise Manager broker
Cliente de Administración
Interfaces para la administración de
la configuración del Data Guard
– Configuración del Data Guard broker:
• Interfaz de línea de comandos DGMGRL
• Enterprise Manager Grid Control
• Comandos SQL para consultar las vistas del diccionario de datos
– Configuración sin Data Guard broker:
• Comandos SQL
Oracle Data Guard: Architecture
Primary database MRP or Standby
transactions LSP
database
LNSn RFS
Redo
buffer
LGWR (Real-time
Oracle net
apply)
Standby Backup
Online redo logs
redo
logs Reports
ARC0
Redo
stream
Backup
Transform redo
information into
SQL
Reports
LNSn RFS
Redo
buffer
LGWR (Real-time
Oracle net
apply)
Standby
Online redo logs Backup
redo
logs Reports
ARC0
ARCH ping
ARC0
Redo to
resolve gap
Archived redo Archived redo
logs logs
Modos de Protección
• Seleccionar el modo conveniente para lograr un balance entre costo, disponibilidad, performance y
protección de datos:
– Máxima Protección
• Asegura cero pérdida de datos en caso de falla
• La base primaria se baja si no hay por lo menos una standby sincronizada
• El redo se debe escribir tanto en el redolog online local como en el standby redolog de por lo
menos una standby
• Al menos una standby debe tener standby redo logs y debe estar configurado ese destino con
SYN y AFFIRM
– Máxima Disponibilidad
• Asegura cero pérdida de datos sin comprometer la disponibilidad de la base primaria (no se
baja en caso de que no haya standby sincronizada)
• Si no hay una standby sincronizada disponible, la primaria opera en modo no-sincronizado
hasta que una standby se sincronice.
• Al menos una standby debe tener standby redo logsy debe estar configurado el destino con
SYNC y AFFIRM.
– Máxima Performance
• Nivel más alto de seguridad sin afectar la performance de la primaria
• Las transacciones se confirman en cuanto la información de redo se escribe en el redo log
online local.
• El redo es enviado a la standby en forma asincrónica .
• Al menos una sstandby debe tener standby redo logs y debe estar configuracdo el destino con
ASYNC y NOAFFIRM
Requerimientos del Data Guard
• Hardware y Sistema Operativo
Los sistemas de la base primaria y la standby pueden
tener diferentes:
• Arquitecturas de CPU
• Sistemas Operativos
• Binarios del Sistema Operativo (32-bit o 64-bit)
• Binarios de Oracle Database (32-bit o 64-bit)
Standby Archived
Redo from primary redo logs redo logs
database
RFS ARC0
MRP/LSP
Standby database
Parámetros asociados a Data Guard
– DB_NAME
– DB_UNIQUE_NAME
– LOG_ARCHIVE_CONFIG
– LOG_ARCHIVE_DEST_n
– LOG_ARCHIVE_DEST_STATE_n
– ARCHIVE_LAG_TARGET
– LOG_ARCHIVE_TRACE
– LOG_ARCHIVE_FORMAT
– DB_FILE_NAME_CONVERT
– LOG_FILE_NAME_CONVERT
– STANDBY_FILE_MANAGEMENT
– FAL_CLIENT
– FAL_SERVER
– DB_LOST_WRITE_PROTECT
Especificación de Destinos
basados en Roles
Primary Standby
database database
Not used
log_archive_dest_1 = log_archive_dest_1 =
'service=pc00sby1 async 'service=pc00prmy async
valid_for= valid_for=
(online_logfile, (online_logfile,
primary_role) primary_role)
db_unique_name=pc00sby1' db_unique_name=pc00prmy'
Habilitación del Real-Time Apply
RFS
Primary MRP
database Standby
redo log
files
ARC0
Archived
redo log
Standby
files
database
Oracle Data Guard Broker
Características
– Framework para administración distribuida del Data
Guard
– Automatiza y centraliza la creación, mantenimineto y
monitoreo de las configuraciones del Data Guard
– Se pueden realizar operaciones local o remotamente
Componentes
– En el cliente, interfaces:
• Oracle Enterprise Manager Grid Control
• DGMGRL (línea de comandos)
– En el servidor, Data Guard monitor:
• DMON process
• Archivos de Configuración
Data Guard Broker:
Modelo de Administración
Configuración del Data Guard Broker
Standby database
Broker-controlled Standby database
databases Standby database
Standby database
Standby database
Standby database
Standby database
Standby database
Primary database Standby database
Instances
Instances
Data Guard Broker: Arquitectura
Graphical user interface
or
command-line interface
Data Guard Configuration Standby site 9
Standby site 2
Primary site Standby site 1
Configuration Configuration
files files
Standby
database
Standby Log
Primary redo logs
database apply
Online
redo logs services
Online DMON DMON
redo logs Archived
redo logs
Archived
Log redo logs Oracle
transport Net
Standby
services redo logs
Beneficios de usar Data Guard Broker
– Mejora la Alta-Disponibilidad, protección de datos y
capacidades de protección de desastres, al
automatizar tanto las tareas de configuración como
las de monitoreo
– Delinea el proceso para que cualquiera de las standby
reemplace a la primaria y entre en producción
– Habilita una fácil configuración para agregar standbys
– Provee una administración extendida, simplificada y
centralizada
– Comunica automáticamente las bases de una
configuración de Data Guard usando Oracle Net
Services
– Provee validación pre-definida para monitorear la
salud de todas las bases de datos en la configuración
Logical Standby Database: Beneficios
– Provee un uso eficiente de los recursos del sistema:
• Base de datos Abierta, Independiente y Productiva
• Se pueden crear índices adicionales y vistas materializadas para mejorar la
performance de las consultas
– Reduce la carga de trabajo en la base primaria absorbiendo algunas de
las tareas:
• Reportes
• Sumarizaciones
• Consultas
– Provee protección de datos:
• Las corrupciones en la base primaria no se propagan
– Provee capacidades de recuperación de desastres:
• Switchover y failover
• Minimiza el tiempo sin servicio de los cortes, planificados o no.
– Puede usarse para hacer un upgraqde del software de Oracle Database y
la aplicación de patch sets.
Standby Lógica:
Arquitectura de SQL Apply
Production Logical standby
database database
SQL Apply
Redo transport
Transform redo
information into
SQL
Reports
Apply processing
Applier Coordinator Analyzer
Transactions to be Transactions
applied sorted in
Data files
dependency
order
Preparación para una Standby Lógica
• Antes de crear una logical standby database:
– Revisar si hay tipos de datos no soportados:
BFILE, ROWID, User-defined types, Multimedia data types (Spatial,
Image, and Oracle Text), Collections (VARRAYS and nested tables), LOBs
stored as SecureFiles, XMLType stored as OBJECT RELATIONAL BINARY
XML
• Vista DBA_LOGSTDBY_UNSUPPORTED
• Vistas
– V$LOGFILE
– V$STANDBY_LOG
– V$ARCHIVE_DEST
– V$MANAGED_STANDBY
– V$DATAGUARD_STATS
– V$LOGSTDBY_TRANSACTION
• Trace
– LOG_ARCHIVE_TRACE
– DIAGNOSTIC_DEST
Uso de Flashback Database en una
Configuración Data Guard
– Flashback Database provee lo siguiente:
• Una alternativa para restaurar y recuperar la base primaria
• Una forma de reiniciar la base primaria que fue deshabilitada
después de un failover hacia una standby física
• Una alternativa a la postergación de la aplicación de redo, para
proteger contra los errores de usuarios y las corrupciones
lógicas
– Flashback Database debe estar configurado para usar las
siguientes características en el Data Guard:
• Fast-start failover
• Snapshot standby
– Flashback Database se recomienda cuando se usa el
broker porque éste habilita automáticamente el real-
time apply.
Transición de Roles: Switchover
Transición de Roles: Failover
Transición de Roles:
Switchover y Failover
– Switchover
• Cuando se planifica volver a los roles originales
• Usado para mantenimiento de hardware o sistema operativo
• Se lo realiza manualmente
• Se cambian los roles de la base primaria y de la standby
• No requiere resetear los online redo logs de la nueva base primaria
• No se incurre en pérdida de datos
– Failover
• Cuando NO se planifica volver a los roles originales
• Usado en una emergencia
• Nula o mínima pérdida de datos (dependiendo del modo de
protección)
– Completo: Intenta minimizar la pérdida de dato aplicando en la standby
todo el redo disponible
– Inmediato: No se aplica redo adicional a la standby
• Se puede habilitar Fast-start failover para que se haga automático
Consideraciones para un Switchover
con una Standby Lógica
– El switchover no baja la base primaria.
– Si bien no es necesario terminar las sesiones de
los usuarios, se recomienda hacerlo.
– La standby lógica puede no tener todos los datos.
– El Switchover a una standby lógica invalida y
deshabilita todas las standby físicas y snapshots
de la configuración.
Consideraciones del Failover
– La vieja base primaria ya no forma parte de la
configuración.
– Es posible que haya pérdida de datos.
– Debería ser usado sólo en emergencias.
– Cuando se elige una standby para convertir en
primaria, se debería:
• Elegir una standby física cuando sea posible
• Elegir la standby más actualizada
Fast-Start Failover
Observer
Loss of connectivity >
fast-start failover threshold
Transactions
Oracle net
Online
redo Standby
logs redo logs
ARC0
ARC0
Redo Redo
transport apply
Redo
Primary stream Physical standby Queries
database database
Real-Time Query
Habilitar
• Detener el Redo Apply
• Abrir la base en modo read-only
• Reiniciar el Redo Apply
Deshabilitar
1. Bajar la standby
2. Reiniciar la standby en modo MOUNT
Block Change Tracking
on a Physical Standby Database
– Habilitar el block change tracking en una standby
física para realizar backups incrementales rápidos.
– Los bloques de los datafiles que se ven afectados
por modificaciones se registran en el block change
tracking file.
– El block change tracking file es un archivo binario
usado por el RMAN para registrar los bloques
cambiados para mejorar la performance del backup
incremental.
RMAN para Back Up y Restore de Archivos
en la Configuración del Data Guard
– RMAN puede usarse para hacer backup y recovery
en una configuración de Data Guard
– Los backups de la Standby son usables para la base
de datos primaria.
– Los Backups de la standby lógica no son usables
para la base primaria.
– Cuando se usa el RMAN en Data Guard se requiere
usar catálogo.
– Buenas Prácticas de RMAN y Data Guard :
• Realizar backups en las bases standby y primaria para
reducir el tiempo de recuperación (MTTR).
• Tomar backups incrementales diariamente.
Pasando los Backups a una
Standby Física
– Los Backups de data files y archived redo logs son
totalmente intercambiables; los backups de los
Control file backups no.
– Las bases primaria y standby deben usar el mismo
cátalogo de RMAN.
– No es necesario registrar la standby.
Backup and Recovery
de una Standby Lógica
– Consideraciones de un Backup:
• Usar el mismo método de backup que se usa para la
base primaria.
• Los archivos no son intercambiables con la base
primaria.
– Consideraciones del Recovery:
• Si se pierden archivos individuales, realizar el recovery
como si fuera cualquier otra base.
• Re-crear la standby lógica si se pierde la base completa.
• Usar una copia binaria del control file para recuperarlo.
Evitar que los clientes se conecten
a la base equivocada
– Usar servicios de la base para evitar que los clientes se
conecten a una base equivocada en una configuración de
Data Guard.
– Los servicios actúan como una capa de abstracción entre
el cliente y las instancias de la base de datos.
– Los servicios se registran con los listeners..
– Los clientes se conectan a los servicios en lugar de
conectarse a instancias de base de datos.
– Los Listeners usan los detalles de la registración para
determinar cuál instancia soporta un servicio particular en
un momento en particular.
– Los Listeners luego dirigen los pedidos de conexión a las
instancias correctas; y si no es posible devuelven un
mensaje de error.
Client Failover: Componentes
• Las siguientes características se usan para
implementar el failover de cliente y minimizar
el impacto de los cortes planeados o no
planeados:
– Connect time failover
– Transparent Application Failover (TAF)
– Fast Application Notification (FAN)
– Fast Connection Failover (FCF)
– DB_ROLE_CHANGE system event
Upgrading una Configuración del
Oracle Data Guard Broker
– Si se está usando el Data Guard broker, se deben hacer
algunos pasos antes de hacer un upgrade a las bases:
1.Deshabilitar la administración del broker para la configuración
2.Detener el Data Guard Broker
SQL Apply