SAP HANA System Replication (HSR): Guia completa

SAP HANA System Replication (HSR) es la solucion nativa de alta disponibilidad y recuperacion ante desastres para bases de datos SAP HANA. Permite mantener una copia sincronizada de la base de datos en un sistema secundario que puede asumir el rol de primario en caso de fallo.


Índice

Que es System Replication

System Replication replica continuamente los datos desde un sistema HANA primario a uno o mas sistemas secundarios. Cuando el primario falla, el secundario puede tomar el control (takeover) con minima o ninguna perdida de datos.

ComponenteSistema PrimarioSistema Secundario
EstadoActivo (lectura/escritura)Standby (solo recibe datos)
ConexionesAcepta clientesNo acepta clientes
DatosOrigenReplica del primario
LogsGenera redo logsAplica redo logs

Modos de replicacion

HSR ofrece tres modos de replicacion segun los requisitos de consistencia y rendimiento:

ModoComportamientoPerdida datosRendimiento
SYNCEl primario espera confirmacion del secundario antes de commitCeroImpacto alto
SYNCMEMEl primario espera que el log llegue a memoria del secundarioMinimaImpacto medio
ASYNCEl primario no espera al secundarioPosibleSin impacto

SYNC (Sincrono)

Garantiza cero perdida de datos (RPO=0). El primario no confirma la transaccion hasta que el secundario ha persistido el log en disco. Recomendado para entornos donde la perdida de datos es inaceptable.

# Timeout de replicacion sincrona
global.ini -> [system_replication] -> logshipping_timeout = 30

SYNCMEM (Sincrono en memoria)

Balance entre proteccion y rendimiento. El primario espera que el log llegue a la memoria del secundario pero no a disco. Perdida maxima: transacciones en memoria del secundario durante un fallo.

ASYNC (Asincrono)

Maximo rendimiento, sin impacto en el primario. Los logs se envian en segundo plano. Adecuado para disaster recovery a larga distancia donde la latencia haria inviable el modo sincrono.


Modos de operacion

ModoSecundarioUso
delta_datashippingPrecargado en memoriaTakeover rapido
logreplayAplica logs continuamenteEstandar (recomendado)
logreplay_readaccessPermite lectura en secundarioActive/Active (lectura)

Comandos HSR esenciales

Configurar primario

# Habilitar system replication en el primario
hdbnsutil -sr_enable --name=PRIMARY_SITE

# Verificar estado
hdbnsutil -sr_state

Registrar secundario

# Parar HANA en secundario
HDB stop

# Registrar como secundario
hdbnsutil -sr_register --name=SECONDARY_SITE \
  --remoteHost=primary_host \
  --remoteInstance=00 \
  --replicationMode=sync \
  --operationMode=logreplay

# Iniciar HANA en secundario
HDB start

Takeover (failover manual)

# En el secundario (sera el nuevo primario)
hdbnsutil -sr_takeover

# Verificar nuevo estado
hdbnsutil -sr_state

Monitorizar estado

# Estado detallado de replicacion
hdbnsutil -sr_state --sapcontrol=1

# Estado desde SQL
SELECT * FROM M_SERVICE_REPLICATION;
SELECT * FROM M_SYSTEM_REPLICATION;

Vistas de monitorizacion

VistaInformacion
M_SYSTEM_REPLICATIONEstado general de HSR
M_SERVICE_REPLICATIONEstado por servicio
M_SYSTEM_REPLICATION_TAKEOVER_HISTORYHistorico de takeovers
M_HA_DR_PROVIDERSProveedores HA/DR configurados
-- Verificar estado y retraso de replicacion
SELECT 
    SITE_NAME,
    REPLICATION_STATUS,
    REPLICATION_MODE,
    SECONDS_REPLAYING_LOG AS LAG_SECONDS
FROM M_SERVICE_REPLICATION;

Arquitecturas HSR

Tier 1: Alta disponibilidad local

Primario y secundario en el mismo datacenter. Modo SYNC para cero perdida de datos. Protege contra fallos de servidor.

Tier 2: Disaster Recovery

Secundario en datacenter remoto. Modo ASYNC por la latencia. Protege contra desastres del datacenter completo.

Tier 3: Multitarget (cadena)

Primario replica a secundario local (SYNC) que a su vez replica a terciario remoto (ASYNC). Combina HA local + DR remoto.


Troubleshooting comun

ProblemaCausaSolucion
Replicacion detenidaRed, espacio, configuracionVerificar logs, conectividad
Alto lag de replicacionCarga en primario, red lentaRevisar metricas, ancho banda
Takeover fallidoSecundario no sincronizadoVerificar estado antes de takeover
Registro secundario fallaPrimario no habilitadoEjecutar sr_enable primero

Preguntas frecuentes

Cual es la diferencia entre SYNC y SYNCMEM?

En modo SYNC, el primario espera que el secundario persista el log en disco antes de confirmar. En SYNCMEM, solo espera que llegue a memoria del secundario. SYNC garantiza cero perdida de datos pero con mayor impacto en rendimiento.

Puedo leer datos del sistema secundario?

Si, usando el modo de operacion logreplay_readaccess. Esto permite consultas de solo lectura en el secundario mientras recibe la replicacion, util para reportes o consultas que no requieren datos en tiempo real.

Que pasa si el primario falla y no hago takeover?

El secundario permanece en standby esperando. No asume automaticamente el rol de primario. Para failover automatico necesitas integrarlo con un cluster manager como Pacemaker o usar SAP HANA System Replication con hook scripts.

Como se que el secundario esta sincronizado?

Consulta M_SERVICE_REPLICATION y verifica REPLICATION_STATUS = ACTIVE y SECONDS_REPLAYING_LOG cercano a cero. Tambien puedes usar hdbnsutil -sr_state para ver el estado detallado desde linea de comandos.

Cuanto espacio adicional necesito para HSR?

El secundario necesita el mismo espacio que el primario para datos y logs. Ademas, durante la sincronizacion inicial se requiere espacio temporal para el full data shipping. Planifica al menos el doble de tu base de datos actual.


Contenido relacionado

Mira lo que te tenemos preparado!!!!
Subir