J'ai besoin d'afficher les journaux des transactions d'une base de données sur SQL Server 2008 afin de rechercher une transaction de suppression et, espérons-le, de l'annuler.
Malheureusement, je ne sais pas par où commencer et j'ai du mal à déterminer quels sont de bons articles sur Google.
Que devrais-je faire?
Vous pouvez utiliser les sans-papiers
DBCC LOG(databasename, typeofoutput)
où typeofoutput:
0: Return only the minimum of information for each operation -- the operation, its context and the transaction ID. (Default)
1: As 0, but also retrieve any flags and the log record length.
2: As 1, but also retrieve the object name, index name, page ID and slot ID.
3: Full informational dump of each operation.
4: As 3 but includes a hex dump of the current transaction log row.
Par exemple, DBCC LOG (base de données, 1)
Vous pouvez également essayer fn_dblog.
Pour annuler une transaction à l'aide du journal des transactions, jetez un coup d'œil à Stack Overflow post Annulation d'une transaction à l'aide du journal des transactions.
Vous ne pouvez pas lire facilement le fichier du journal des transactions car il n’est pas correctement documenté. Il y a fondamentalement deux façons de faire cela. Utilisation de fonctions de base de données non documentées ou semi-documentées ou à l'aide d'outils tiers.
Remarque: Cela n'a de sens que si votre base de données est en mode de récupération complète.
Fonctions SQL:
DBCC LOG et fn_dblog - plus de détails ici et ici .
Outils tiers:
Toad for SQL Server et journal ApexSQL .
Vous pouvez également consulter plusieurs autres sujets où cela a été discuté:
J'ai accidentellement supprimé un tas de données dans le mauvais environnement et cet article a été l'un des premiers que j'ai trouvés.
Comme je paniquais simultanément et que je cherchais une solution, j’ai choisi la première chose que j’ai vue - ApexSQL Logs , c’était 2 000 $, ce qui était un coût acceptable.
Cependant, j'ai depuis découvert que Toad for Sql Server peut générer des scripts d'annulation à partir de journaux de transactions et que le coût est de 655 $ seulement.
Enfin, trouvé une option encore moins chère SysToolsGroup Log Analyzer et il n’est que de 300 $.