PostgreSQLLa base de données la plus sophistiquée au monde.

Version anglaise

27.2. Paramètres de cible de récupération

Par défaut, la restauration continuera jusqu'à la fin du dernier journal de transactions. Les paramètres suivants peuvent être utilisés pour spécifier un point d'arrêt précédent. Une des cibles suivantes peut être indiquée : recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time ou recovery_target_xid. Si plus d'un parmi eux est spécifié dans le fichier de configuration, seule la dernière valeur sera conservée.

recovery_target = 'immediate'

Ce paramètre spécifie que la restauration doit se terminer dès que l'état de cohérence est atteint, autrement dit dès que possible. Lors de la restauration à partir d'une sauvegarde en ligne, cela signifie le moment où la sauvegarde s'est terminée.

Au niveau technique, c'est une chaîne de caractères mais 'immediate' est la seule valeur actuellement autorisée.

recovery_target_name (string)

Ce paramètre spécifie le point de restauration nommé (créé précédemment avec la fonction pg_create_restore_point()) où la restauration se terminera.

recovery_target_time (timestamp)

Ce paramètre spécifie l'horodatage (timestamp) jusqu'auquel la récupération se poursuivra. Le point précis d'arrêt dépend aussi de recovery_target_inclusive.

recovery_target_xid (chaîne de caractères)

Ce paramètre spécifie l'identifiant de transaction jusqu'auquel la récupération se poursuivra. Gardez à l'esprit que, bien que les identifiants de transactions sont assignés séquentiellement au démarrage des transactions, elles peuvent se terminer dans un ordre numérique différent. Les transactions qui seront récupérées sont celles qui auront réalisé leur COMMIT avant la transaction spécifiée (optionnellement incluse). Le point précis d'arrêt dépend aussi de recovery_target_inclusive.

recovery_target_lsn (pg_lsn)

Ce paramètre spécifie le LSN de l'emplacement dans le journal de transaction jusqu'auquel la récupération se poursuivra. Le point d'arrêt précis est aussi influencé par recovery_target_inclusive. Ce paramètre est parsé en utilisant le type de données système pg_lsn.

Les options suivantes indiquent la cible de restauration et ont un effet sur ce qui arrive une fois la cible atteinte :

recovery_target_inclusive (booléen)

Spécifie si il faut s'arrêter juste après la cible de récupération spécifiée (true), ou juste avant la cible de récupération (false). S'applique quand soit recovery_target_lsn soit recovery_target_time soit recovery_target_xid est indiqué. Ce paramètre contrôle si les transactions qui ont exactement le même emplacement (LSN) dans les journaux de transactions ou le même horodatage ou le même identifiant de transaction, respectivement, seront inclues dans la restauration. La valeur par défaut est (true).

recovery_target_timeline (chaîne de caractères)

Spécifie la ligne de temps (timeline) précise sur laquelle effectuer la récupération. Le comportement par défaut est de récupérer sur la même timeline que celle en cours lorsque la sauvegarde de base a été effectuée. Configurer ce paramètre à latest permet de restaurer jusqu'à la dernière ligne de temps disponible dans les archives, ce qui est utile pour un serveur standby. Sinon, vous n'aurez besoin de positionner ce paramètre que dans des cas complexes de re-récupération, où vous aurez besoin d'atteindre un état lui même atteint après une récupération à un moment dans le temps (point-in-time recovery). Voir Section 25.3.5, « Lignes temporelles (Timelines) » pour plus d'informations.

recovery_target_action (enum)

Indique l'action que doit prendre le serveur une fois que la cible de récupération est atteinte. La valeur par défaut est pause, ce qui signifie que la récupération sera mise en pause. promote signifie que le processus de récupération terminera et que le serveur se lancera pour accepter des connexions. Enfin, shutdown arrêtera le serveyr après avoir atteint la cible de récupération.

Le but du paramétrage pause est d'autoriser l'exécution des requêtes sur la base pour vérifier si la cible de récupération actuelle est la bonne. La pause peut être annulée en utilisant la fonction pg_wal_replay_resume() (voir Tableau 9.81, « Fonctions de contrôle de la restauration »), ce qui termine la restauration. Si la cible actuelle de restauration ne correspond pas au point d'arrêt souhaité, arrêtez le serveur, modifiez la configuration de la cible de restauration à une cible plus lointaine, et enfin redémarrez pour continuer la restauration.

Le paramétrage shutdown est intéressant pour que l'instance soit prête au point de rejeu souhaité. L'instance pourra toujours rejoué les enregistrements WAL suivants (et de fait devra rejouer les enregistrements WAL depuis le dernier checkpoint à son prochain lancement).

Notez que, comme le fichier de configuration recovery.conf n'est pas renommé, recovery_target_action reste configuré à shutdown, et toute tentative de lancement se terminera avec un arrêt immédiat sauf si la configuration est changée ou que le fichier recovery.conf est supprimé manuellement.

Ce paramétrage n'a pas d'effet si aucune cible de récupération n'est configurée. Si hot_standby n'est pas activé, un paramétrage à pause agira de la même façon que shutdown.