PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 16.4 » Programmation serveur » Modules d'archivage » Fonctions de support d'un module d'archivage

51.2. Fonctions de support d'un module d'archivage #

Les fonctions de support d'archivage définissent le comportement d'archivage proprement dit du module. Le serveur les appellera suivant les besoins pour traiter chaque fichier segment WAL individuellement.

51.2.1. Fonction de rappel au démarrage #

La fonction de rappel startup_cb est appelée peu après le chargement du module. Ce rappel peut être utilisé pour effectuer toute initialisation requise. Si le module d'archivage comprend des états, il est possible de les stocker en utilisant state->private_data.

typedef void (*ArchiveStartupCB) (ArchiveModuleState *state);

51.2.2. Fonction de vérification #

La fonction de support check_configured_cb est appelée pour déterminer si le module est pleinement configuré et prêt à traiter des fichiers segment WAL (par exemple, si ses paramètres de configuration sont définis avec des valeurs valides). Si la fonction check_configured_cb n'est pas définie, le serveur présumera que le module est configuré.

typedef bool (*ArchiveCheckConfiguredCB) (ArchiveModuleState *state);

Si true est renvoyé, le serveur procédera à l'archivage en appelant la fonction archive_file_cb. Si false est renvoyé, l'archivage ne sera pas effectué, et l'archiver émettra le message suivant dans les traces du serveur :

WARNING:  archive_mode enabled, yet archiving is not configured

Dans ce dernier cas, le serveur appellera périodiquement cette fonction, et l'archivage ne sera effectué que lorsque le booléen true sera renvoyé.

51.2.3. Fonction d'archivage #

La fonction archive_file_cb est appelée pour archiver un fichier segment WAL individuel.

typedef bool (*ArchiveFileCB) (ArchiveModuleState *state, const char *file, const char *path);

Si la valeur true est renvoyée, le serveur procédera comme si le fichier était archivé avec succès, ce qui peut inclure de recycler ou supprimer le fichier segment WAL original. Si la valeur false est renvoyée, le serveur conservera le fichier segment WAL original et réessayera de l'archiver plus tard. file contiendra juste le nom du fichier du segment WAL à archiver, alors que path contiendra le chemin complet du fichier segment WAL (nom du fichier inclus).

51.2.4. Fonction d'arrêt #

La fonction shutdown_cb est appelée quand le processus archiver s'arrête (par exemple, après une erreur) ou si la valeur de archive_library change. Si la fonction shutdown_cb n'est pas définie, aucune action spécifique ne sera entreprise lors de ces situations. Si le module d'archivage gère des états, ce rappel devrait les libérer pour éviter des fuites mémoire.

typedef void (*ArchiveShutdownCB) (ArchiveModuleState *state);