SAP HANA System Replication (HSR): Guia completa
SAP HANA System Replication (HSR) es la solución nativa de alta disponibilidad y recuperación ante desastres para bases de datos SAP HANA. Si quieres profundizar en el mundo de SAP HANA, te recomiendo visitar esta guía completa. **SAP HANA System Replication** 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.
- ¿Qué es SAP HANA System Replication?
- Modos de replicación en SAP HANA System Replication
- Modos de operación en SAP HANA System Replication
- Comandos HSR esenciales
- Vistas de monitorización en SAP HANA System Replication
- Arquitecturas HSR
- Troubleshooting común en SAP HANA System Replication
- Preguntas frecuentes
- Contenido relacionado
- ¿Qué es SAP HANA System Replication (HSR)?
- ¿Cuáles son los modos de replicación disponibles en SAP HANA System Replication?
- ¿Qué modos de operación existen en SAP HANA System Replication?
- ¿Cómo puedo monitorizar el estado de SAP HANA System Replication?
- ¿Qué hago si la replicación en SAP HANA System Replication se detiene?
- ¿Cuál es la diferencia entre SYNC y SYNCMEM en SAP HANA System Replication?
¿Qué es SAP HANA System Replication?
System Replication replica continuamente los datos desde un sistema HANA primario a uno o más sistemas secundarios. Cuando el primario falla, el secundario puede tomar el control (takeover) con mínima o ninguna pérdida de datos. Para entender mejor el proceso, puedes consultar h.
| Componente | Sistema Primario | Sistema Secundario |
|---|---|---|
| Estado | Activo (lectura/escritura) | Standby (solo recibe datos) |
| Conexiones | Acepta clientes | No acepta clientes |
| Datos | Origen | Replica del primario |
| Logs | Genera redo logs | Aplica redo logs |
Modos de replicación en SAP HANA System Replication
HSR ofrece tres modos de replicación según los requisitos de consistencia y rendimiento: t
| Modo | Comportamiento | Pérdida datos | Rendimiento |
|---|---|---|---|
| SYNC | El primario espera confirmación del secundario antes de commit | Cero | Impacto alto |
| SYNCMEM | El primario espera que el log llegue a memoria del secundario | Mínima | Impacto medio |
| ASYNC | El primario no espera al secundario | Posible | Sin impacto |
SYNC (Síncrono)
Garantiza cero pérdida de datos (RPO=0). El primario no confirma la transacción hasta que el secundario ha persistido el log en disco. Recomendado para entornos donde la pérdida de datos es inaceptable. Más información sobre configuraciones t.
# Timeout de replicacion sincrona
global.ini -> [system_replication] -> logshipping_timeout = 30SYNCMEM (Síncrono en memoria)
Balance entre protección y rendimiento. El primario espera que el log llegue a la memoria del secundario pero no a disco. Pérdida máxima: transacciones en memoria del secundario durante un fallo. Para entender mejor la memoria en HANA, puedes ver p.
ASYNC (Asíncrono)
Máximo rendimiento, sin impacto en el primario. Los logs se envían en segundo plano. Adecuado para disaster recovery a larga distancia donde la latencia haría inviable el modo síncrono. Considera los riesgos de s.
Modos de operación en SAP HANA System Replication
| Modo | Secundario | Uso |
|---|---|---|
| delta_datashipping | Precargado en memoria | Takeover rápido |
| logreplay | Aplica logs continuamente | Estándar (recomendado) |
| logreplay_readaccess | Permite lectura en secundario | Active/Active (lectura) |
Comandos HSR esenciales
Configurar primario
# Habilitar system replication en el primario
hdbnsutil -sr_enable --name=PRIMARY_SITE
# Verificar estado
hdbnsutil -sr_stateRegistrar 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 startTakeover (failover manual)
# En el secundario (sera el nuevo primario)
hdbnsutil -sr_takeover
# Verificar nuevo estado
hdbnsutil -sr_stateMonitorizar 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 monitorización en SAP HANA System Replication
| Vista | Información |
|---|---|
M_SYSTEM_REPLICATION | Estado general de HSR |
M_SERVICE_REPLICATION | Estado por servicio |
M_SYSTEM_REPLICATION_TAKEOVER_HISTORY | Histórico de takeovers |
M_HA_DR_PROVIDERS | Proveedores 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 pérdida 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 común en SAP HANA System Replication
| Problema | Causa | Solución |
|---|---|---|
| Replicación detenida | Red, espacio, configuración | Verificar logs, conectividad |
| Alto lag de replicación | Carga en primario, red lenta | Revisar métricas, ancho banda |
| Takeover fallido | Secundario no sincronizado | Verificar estado antes de takeover |
| Registro secundario falla | Primario no habilitado | Ejecutar sr_enable primero |
Preguntas frecuentes
¿Cuál 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 pérdida de datos pero con mayor impacto en rendimiento.
¿Puedo leer datos del sistema secundario?
Sí, usando el modo de operación logreplay_readaccess. Esto permite consultas de solo lectura en el secundario mientras recibe la replicación, útil para reportes o consultas que no requieren datos en tiempo real.
¿Qué pasa si el primario falla y no hago takeover?
El secundario permanece en standby esperando. No asume automáticamente el rol de primario. Para failover automático necesitas integrarlo con un cluster manager como Pacemaker o usar SAP HANA System Replication con hook scripts.
¿Cómo sé que el secundario está sincronizado?
Consulta M_SERVICE_REPLICATION y verifica REPLICATION_STATUS = ACTIVE y SECONDS_REPLAYING_LOG cercano a cero. También puedes usar hdbnsutil -sr_state para ver el estado detallado desde línea de comandos.
¿Cuánto espacio adicional necesito para HSR?
El secundario necesita el mismo espacio que el primario para datos y logs. Además, durante la sincronización inicial se requiere espacio temporal para el full data shipping. Planifica al menos el doble de tu base de datos actual.