Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Façons de récupérer des données à partir du fichier journal des transactions SQL Server

Résumé : Souvent, l'administrateur de base de données SQL cherche des moyens de récupérer des données à partir des journaux de transactions SQL Server. L'utilisateur peut lire cet article pour effectuer cette tâche. Nous avons donné le meilleur moyen possible et aussi le moyen le plus simple de restaurer des données à partir d'un fichier (.ldf). Si vous rencontrez des problèmes de corruption de base de données et que vous souhaitez récupérer des objets de base de données, essayez ceci Récupérer la base de données SQL Logiciel. Pour plus d'informations, l'utilisateur peut lire cet article.

Il y a des moments où les clients sont confrontés à des circonstances de base de données lamentables dans leurs bases de données SQL Server. Les situations pourraient se produire lors de l'administration et du support de leurs fichiers de base de données. Parfois, les objets de la base de données sont supprimés involontairement, à cause desquels les administrateurs de la base de données sont confrontés à de nombreux problèmes. Par la suite, pour revenir au processus de travail ordinaire, les fichiers doivent être récupérés dans la base de données SQL Server.

Le journal des transactions SQL Server joue un rôle important dans la récupération des données supprimées dans le cas où vous exécutez par erreur l'opération DELETE ou UPDATE avec une condition inappropriée ou sans condition de filtrage. Cela peut être accompli en écoutant les enregistrements stockés dans cette boîte noire connue sous le nom de fichier journal des transactions SQL Server.

Comment récupérer des données à partir du fichier journal des transactions SQL Server

Pour analyser les différentes techniques que nous pouvons utiliser pour récupérer les données du fichier journal des transactions SQL Server, nous allons créer une autre base de données avec une seule table, en utilisant le script ci-dessous :

Après avoir créé la base de données et la table, nous remplirons cette table avec 30 enregistrements, en utilisant l'instruction INSERT INTO T-SQL ci-dessous :

N'ayant pas encore de sauvegarde de la base de données, comment pourrions-nous récupérer les données de la table si la commande UPDATE sous-jacente est exécutée sur cette table avec l'instruction nowhere utilisée pour filtrer les données à modifier ?

Utilisation des méthodes intégrées

1.) fn_dblog : Le contenu du journal des transactions SQL Server peut être lu en ligne à l'aide de diverses fonctions implicites. La première fonction que nous tenterons d'utiliser pour récupérer les données perdues est le fn_dblog . Il s'agit d'une fonction de table de framework non documentée, utilisée pour plonger dans le journal des transactions SQL Server et afficher le contenu du segment dynamique de ce fichier.

Afin d'utiliser le fn_dblog() fonction, vous devez donner deux paramètres, le LSN de début et de fin du journal. Pour afficher tous les journaux accessibles dans le segment dynamique du fichier SQL Transaction Log, vous pouvez passer la valeur NULL pour ces deux paramètres. Comme le résultat est revenu du travail fn_dblog() contient 129 colonnes, il est préférable de sélectionner uniquement les segments contenant les données qui vous intéressent et de filtrer le résultat pour afficher uniquement l'opération que vous avez l'intention de récupérer. Par exemple, l'opération LOP_INSERT_ROWS est consignée lorsqu'un autre enregistrement est intégré, l'opération LOP_DELETE_ROWS est consignée lorsqu'un nouvel enregistrement est supprimé et l'opération LOP_MODIFY_ROW est consignée lorsqu'un enregistrement actuel est mis à jour. Le script ci-dessous peut être utilisé pour vérifier les instructions de mise à jour effectuées sur cette base de données :

2.) fn_dump_dblog() : Le framework suivant a fonctionné en fonction, fn_dump_dblog(), a un avantage sur le travail fn_dblog() est qu'il peut très bien être utilisé pour lire la sauvegarde du journal des transactions SQL Server, malgré la possibilité de lire le fichier journal des transactions en ligne. Là encore, pour utiliser la fonction fn_dump_dblog(), il faut donner 68 paramètres obligatoires, comme indiqué dans le script ci-dessous :

3.) Commande de page DBCC : SQL Server nous donne d'innombrables commandes DBCC qui peuvent être utilisées pour exécuter les différents types de tâches d'administration SQL Server. L'une de ces commandes non documentées est la commande DBCC Page, qui peut être utilisée pour lire le contenu des données de la base de données et consigner les fichiers en ligne. Afin de voir le contenu du fichier journal de la base de données, vous devez donner le nom de la base de données et l'ID du fichier journal des transactions. L'ID du fichier journal des transactions peut être récupéré à partir de la requête ci-dessous.

Limites des méthodes manuelles pour récupérer les données du journal des transactions SQL Server

  1. Difficile à exécuter.
  2. Nécessite de solides connaissances techniques.
  3. Risque élevé de perte de données.

Solution experte pour Récupérer les données du fichier journal des transactions SQL Server

Au moment où une base de données est corrompue ou que les données de la table sont perdues ou modifiées par erreur, le temps nécessaire pour recréer et analyser les données à l'aide des stratégies implicites ne peut pas être suffisant. Dans ce sens, nous devons rechercher sur le marché de l'administration SQL Server un outil pouvant être utilisé efficacement et immédiatement pour lire le contenu du fichier journal des transactions et afficher ce contenu dans un format facile à utiliser.

Lecteur de fichiers journaux SysTools SQL outil, qui peut être facilement utilisé pour lire le contenu du fichier journal des transactions SQL en ligne. En utilisant ce logiciel, l'utilisateur peut facilement lire et analyser les fichiers journaux transactionnels de SQL Server INSERT / UPDATE / DELETE opérations. Cette application professionnelle de niveau entreprise peut fonctionner sur un environnement de base de données hors ligne et en ligne. En outre, cette application offre une option de filtres dynamiques pour exporter un fichier de journal transactionnel sélectif. Ce logiciel prend en charge la version SQL Server 2019.

Étapes pour récupérer les données du journal des transactions SQL Server

  1. Téléchargez et installez l'analyseur de journaux SQL.

2. Sélectionnez maintenant l'option de base de données

3. Prévisualisez les données du fichier journal transactionnel SQL Server.

4. Cliquez sur le bouton Exporter pour exporter les données du fichier journal.

Conclusion

Bien que la technique manuelle puisse récupérer les éléments supprimés des tables SQL, ce n'est pas une option prescrite pour les clients en raison de sa complexité et de sa lenteur. Il est plutôt recommandé d'utiliser une solution idéale pour récupérer les données du fichier journal des transactions SQL Server.