Analyse de la tolérance aux catastrophes SAP HANA

Configuration de la réplication du système SAP HANA avec déplacement temporel secondaire

Objective

After completing this lesson, you will be able to configuration de la réplication du système SAP HANA avec déplacement temporel secondaire

Réplication du système avec trajet temporel secondaire

La réplication du système SAP HANA permet un déplacement dans le temps pour l'atténuation des erreurs logiques. Par conséquent, vous pouvez lancer le système secondaire en mode en ligne à partir d'une date antérieure.

Les déplacements temporels secondaires peuvent être utilisés dans les situations suivantes :

  • Pour accéder rapidement aux données qui ont été supprimées dans le système d'origine.
  • Pour conserver intentionnellement le rejeu du journal du système secondaire retardé. Cela peut être utilisé pour lire des données plus anciennes à partir du système secondaire, tandis que le secondaire continue de répliquer.

Pour préparer le système secondaire au voyage dans le temps, des instantanés sont conservés dans le système secondaire pendant une période de déplacement définie. Ces instantanés peuvent être utilisés ultérieurement pour lancer le système à une date antérieure. Un journal supplémentaire est conservé dans le système secondaire, à partir de l'instantané de déplacement au plus tôt. Après l'ouverture de l'ancien instantané, le journal supplémentaire doit être relancé pour atteindre la date demandée.

Lorsque le trajet temporel secondaire est activé, le système secondaire crée des instantanés. Les instantanés sont conservés pendant la durée de conservation maximale définie.

Remarque

Vous ne pouvez utiliser que des trajets secondaires avec les modes d'exploitation suivants : logreplay ou logreplay_readaccess.

Paramètres de configuration

Plusieurs paramètres sont disponibles pour configurer le trajet temporel secondaire.

Utilisez les paramètres suivants pour configurer un trajet temporel secondaire. Les paramètres sont définis dans la section système_réplication du fichier global.ini. Tous les paramètres sont définis dans le système secondaire.

Voyage dans le temps secondaire – Paramètre

ParamètreUtéDéf.,Description
timetravel_max_retention_timeMin.0Si la valeur est définie sur 0, le trajet dans le temps secondaire est désactivé. Si ce paramètre est défini sur une valeur différente de 0, le système secondaire peut être mis en ligne jusqu'à la période définie dans le passé. 
timetravel_snapshot_creation_intervalMin.1440 (24h)

Définit la fréquence à laquelle des instantanés sont créés pour un trajet secondaire. 

Un nouvel instantané est créé lorsque la période définie dans ce paramètre est passée depuis la dernière création d'instantané. Les instantanés antérieurs à la période définie dans time_travel_max_retention_time sont supprimés.

    
ParamètreUtéDéf.,Description
timetravel_call_takover_hooksvrai, FAUXFAUXIndique si des hooks de reprise doivent être appelés pendant un trajet temporel secondaire. 
timetravel_logreplay_modeautomatique, manuelautoDéfinit le mode d'exécution de la reproduction du journal dans le système secondaire. 
  • Automatique

    La reproduction du journal est effectuée automatiquement jusqu'à la position de journal la plus récente possible.

  • Manuel

    Vous devez déclencher manuellement la reproduction du journal jusqu'à la commande hdbnsutil d'horodatage demandée.

Les instantanés de déplacement dans le temps sont conservés jusqu'à ce qu'ils soient plus anciens que le paramètre timetravel_max_retention_time défini. Si une reprise doit être effectuée à une date antérieure, l'instantané qui correspond le mieux à la date/heure demandée est ouvert et les modifications restantes sont appliquées à l'aide de logreplay.

Activer le voyage dans le temps secondaire

Dans le système secondaire, les instantanés sont créés comme défini dans le paramètre timetravel_snapshot_creation_interval. Elles sont également conservées pendant la durée définie dans le paramètre timetravel_max_retention_time.

Vous pouvez modifier le fichier .ini secondaire directement et l'activer à l'aide de : hdbnsutil -reconfig

Remarque

Définissez les paramètres avec précaution pour éviter les situations de journal complet ou de disque complet. Pour le déplacement dans le temps jusqu'au travail, le journal et les instantanés sont conservés en ligne dans la zone de données. De ce fait, le journal et les données augmentent sur le système secondaire lorsque le voyage dans le temps est activé. La charge système détermine la quantité de données requise.

Remarque

Les modifications de topologie ne sont pas prises en compte pour les déplacements temporels secondaires et les opérations de déplacement ne peuvent pas être prises en charge au-delà de ces modifications.

Après avoir défini les paramètres, le système secondaire commence à conserver les informations de journal et à conserver les instantanés créés. Après avoir conservé suffisamment d'informations et de données de journal, le système secondaire est prêt pour le voyage dans le temps.

Suivi des déplacements temporels secondaires

Vous pouvez suivre le journal de conservation et les instantanés créés.

Pour surveiller les déplacements temporels secondaires, le système secondaire doit être en ligne. L'intervalle de temps actuel ne peut pas être déterminé lorsque le système secondaire est hors ligne.

Suivi des déplacements temporels secondaires

  • Déterminez la plage valide pour laquelle le déplacement peut être exécuté :

    • Surveillez les instantanés disponibles à l'aide de _SYS_DATABASES_SR_SITE_<sitename>.M_SNAPSHOTS sur le site principal.

    • La commande hdbnsutil -sr_timetravel --printRange fournit une plage pour chaque service dans lequel le trajet dans le temps peut être exécuté.

    • Utilisez SQL sur le système primaire avec la vue proxy secondaire _SYS_DATABASES_SR_SITE_<sitename>.M_SYSTEM_REPLICATION_TIMETRAVEL .

  • Surveillez l'heure de début ou la position du journal du système à l'aide de : _SYS_DATABASES_SR_SITE_<sitename>.M_SYSTEM_REPLICATION_TAKEOVER_HISTORY

Exécuter trajet temporel secondaire

Vous pouvez lancer le système secondaire en mode en ligne à partir d'une date antérieure à l'aide de la commande hdbnsutil -sr_timetravel . Lors de l'exécution de hdbnsutil -sr_timetravel, l'heure et l'emplacement indiqués sont stockés en interne dans un fichier dédié du répertoire SAP HANA. Lors de l'appel de hdbnsutil -sr_timetravel, on peut préciser s'il faut appeler les hameçons de reprise. Si le paramètre n'est pas indiqué explicitement, la valeur par défaut du paramètre de configuration timetravel_call_takeover_hooks est utilisée.

Le système secondaire passe en mode en ligne au moment indiqué lors de la relance. Après le redémarrage, les autres services lisent la date/heure demandée et ouvrent leur persistance à l'aide de ces informations. Si la date/heure demandée ne peut pas être atteinte, le déplacement dans le temps est interrompu. Un contrôle permet de s'assurer que des instantanés de déplacement dans le temps sont antérieurs à l'heure de début pour chaque service.

Exécuter trajet temporel secondaire

  1. Arrêtez le système SAP HANA secondaire.

  2. Exécutez la commande suivante :

    hdbnsutil -sr_timetravel --startTime=<startTime> [--callTakeoverHooks=on|off] [--comment="Your Comment"].

  3. Lancez le système SAP HANA secondaire.

Pour startTime, utilisez le format UTC suivant : jj.mm.aaaa - hh.mm.ss

Vous pouvez indiquer si les hooks de reprise doivent être appelés. Si le paramètre timetravel_call_takeover_hooks n'est pas explicitement spécifié, les hooks de reprise ne seront pas appelés.

Utilisez l'option --comment pour ajouter un motif pour le déplacement dans le temps. Ce commentaire est affiché dans la vue de monitorage M_SYSTEM_REPLICATION_TAKEOVER_HISTORY dans la colonne COMMENTS.

Le système secondaire passe en mode en ligne au moment indiqué lors de la relance. Après le redémarrage, les autres services lisent la date/heure demandée et ouvrent leur persistance à l'aide de ces informations. Si la date/heure demandée ne peut pas être atteinte, le déplacement dans le temps sera interrompu. Un contrôle permet de s'assurer que des instantanés de déplacement dans le temps sont antérieurs à l'heure de début pour chaque service.

Remarque

L'appel de hdbnsutil -sr_timetravel dans le système secondaire n'est pas encore proposé dans l'application de réplication du système du cockpit SAP HANA.

Exécuter déplacement temporel secondaire pendant la poursuite de la réplication

Vous pouvez lancer la reproduction du journal à une date antérieure pour lire les anciennes données du système secondaire, tandis que le secondaire continue de répliquer.

Exécuter déplacement temporel secondaire pendant la poursuite de la réplication

  1. Arrêtez le système SAP HANA secondaire.

  2. Exécutez la commande suivante :

    hdbnsutil -sr_timetravel --startTime=<startTime> --startMode=replicate

  3. Lancez le système SAP HANA secondaire.

  4. Facultatif : déclenchez la reproduction du journal manuellement à l'aide de la commande suivante :

    hdbnsutil -sr_recoveruntil {--endTime=<timestamp> |max} [--nowait]

  5. Facultatif : arrêtez le mode de relecture manuelle en redéfinissant le paramètre timetravel_logreplay_mode sur automatique ou en utilisant :

    hdbnsutil -sr_replaymode --mode={auto|manual}

Après le lancement du système, la persistance a été ouverte à la date/heure indiquée (--startTime). Le journal est en cours de réplication et la reproduction du journal n'est pas en cours d'exécution.

Dans ce statut, la reproduction du journal peut être exécutée manuellement. En exécutant plusieurs rediffusions jusqu'aux appels, le site secondaire peut être glissé par étape vers l'avant et les données sont accessibles en mode d'accès en lecture après chaque étape de relecture.

Utilisez max pour déclencher la reproduction du journal jusqu'à la date la plus récente possible. Dans ce cas, l'horodatage cible est automatiquement déterminé en contrôlant l'intervalle de parcours valide pour chaque service.

Utilisez l'option --nowait pour indiquer si la commande doit être exécutée de manière asynchrone.