PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 15/04/2024 10:22:55

Récupérer les DELETE d'une réplication logique

Bonjour,

Existerait-il un moyen de récupérer les ordres DELETE qui proviennent d'une publication ?

Je voudrais tracer les suppression sur des tables d'une base de données ; mais comme la base est déjà surchargée on voudrait supprimer les triggers qui servent à ça.

L'idée est donc de mettre les tables à tracer dans une publication pour delete, mais :

- on ne peut pas faire de réplication logique vers des vues (même avec un trigger INSTEAD OF DELETE).
- Il faut absolument que la clef soit présente dans la table destination, sinon il est impossible de récuérer cette clef dans le trigger sur la table destination (j'ai tenté de surcharger le type BIGINT en redéfinissant l'opérateur "=" pour qu'il soit toujours vrai, le trigger sur DELETE se déclenche bien, mais impossible de récupérer la valeur de la clef).

Est-ce qu'il y aurait un moyen de tracker les ordres delete qui sont adressés à une souscription ?

Hors ligne

#2 26/06/2024 12:01:32

Sioio
Membre

Re : Récupérer les DELETE d'une réplication logique

Alors que la récupération directe des instructions DELETE à partir d'une publication n'est pas possible, il existe des approches alternatives pour assurer le suivi et l'audit des modifications de données pour les opérations DELETE dans votre base de données. Voici deux solutions potentielles :

Utilisation de Change Data Capture (CDC) :
Change Data Capture (CDC) est une fonctionnalité intégrée dans la plupart des systèmes de bases de données modernes qui permet de capturer et de suivre les modifications de données, y compris les opérations DELETE. Le CDC capture les modifications au fur et à mesure qu'elles se produisent et les stocke dans des tables dédiées ou des tables de modifications. Vous pouvez ensuite interroger ces tables de modifications pour récupérer les détails des instructions DELETE, y compris les données supprimées et les horodatages associés.

Mise en œuvre de pistes d'audit :
Les pistes d'audit sont une autre méthode efficace pour suivre les modifications de données, y compris les opérations DELETE. Cela implique la création d'une table de journalisation d'audit distincte qui enregistre toutes les modifications de la base de données, y compris les instructions DELETE. La piste d'audit doit capturer des informations pertinentes telles que l'heure de l'opération DELETE, les données supprimées, l'utilisateur qui a effectué la suppression et tout autre détail pertinent.

Le CDC et les pistes d'audit offrent tous deux des solutions viables pour suivre les instructions DELETE dans votre base de données. Le choix entre les deux dépend de vos besoins spécifiques et des capacités de votre système de base de données. Le CDC fournit un flux en temps réel des modifications de données, tandis que les pistes d'audit offrent une perspective plus historique des modifications de la base de données.

Considérations pour la mise en œuvre de CDC ou de pistes d'audit :

Impact sur les performances : Le CDC et les pistes d'audit peuvent tous deux entraîner une surcharge pour votre système de base de données en raison de la journalisation et du traitement supplémentaires impliqués. Il est essentiel d'évaluer soigneusement l'impact sur les performances de votre système et d'optimiser la mise en œuvre en conséquence.

Conservation des données : Déterminez la durée pendant laquelle vous devez conserver les instructions DELETE capturées ou les journaux d'audit. Cela influencera les besoins en espace de stockage et la stratégie globale de gestion des données.

Sécurité : Mettez en œuvre des mesures de sécurité appropriées pour protéger les données capturées et les journaux d'audit contre tout accès non autorisé ou toute falsification.

En mettant en œuvre le CDC ou les pistes d'audit, vous pouvez suivre efficacement les instructions DELETE et conserver un enregistrement des modifications de données dans votre base de données, même lorsque les déclencheurs sont désactivés pour des raisons de performances.

Hors ligne

Pied de page des forums