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.

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ètre | Uté | Déf., | Description |
| timetravel_max_retention_time | Min. | 0 | Si 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_interval | Min. | 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ètre | Uté | Déf., | Description |
| timetravel_call_takover_hooks | vrai, FAUX | FAUX | Indique si des hooks de reprise doivent être appelés pendant un trajet temporel secondaire. |
| timetravel_logreplay_mode | automatique, manuel | auto | Définit le mode d'exécution de la reproduction du journal dans le système secondaire.
|
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

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
Arrêtez le système SAP HANA secondaire.
Exécutez la commande suivante :
hdbnsutil -sr_timetravel --startTime=<startTime> [--callTakeoverHooks=on|off] [--comment="Your Comment"].
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
Arrêtez le système SAP HANA secondaire.
Exécutez la commande suivante :
hdbnsutil -sr_timetravel --startTime=<startTime> --startMode=replicate
Lancez le système SAP HANA secondaire.
Facultatif : déclenchez la reproduction du journal manuellement à l'aide de la commande suivante :
hdbnsutil -sr_recoveruntil {--endTime=<timestamp> |max} [--nowait]
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.