Question

Le problème est le suivant:

t0: Insert is made into my database
t1: Delete is executed
t2: Full backup is made
t3: Transaction log backup is made

Comment puis-je récupérer l'enregistrement supprimé après t3 (qui est maintenant)? Je veux la base de données dans un état compris entre t0 et t1. Le niveau de journalisation était complet.

Edit: J'ai déjà exécuté DBCC LOG (DB-Name, 3), mais le journal semble être tronqué. Il n'y a que 10 articles, mais il doit y en avoir des milliers.

Était-ce utile?

La solution

Pour relire le journal, vous commencez toujours à partir d'un journal complet, appliquez les différentiels, puis les sauvegardes du journal. La chronologie est toujours en avant depuis la sauvegarde complète, jamais en arrière. Donc, pour arriver à l’état après t0 (c’est-à-dire récupérer l’enregistrement supprimé), vous commencez par une sauvegarde complète qui a été effectuée avant puis appliquez les sauvegardes du journal avec arrêt à t0.

Autres conseils

Bien que cette solution ne soit pas idéale, vous pouvez essayer de restaurer la sauvegarde de la base de données dans une base de données séparée, comparer les bases de données et apporter les modifications nécessaires manuellement.

Vous pouvez également utiliser un lecteur de journaux de transactions tiers, tel que le Journal ApexSQL .

Lance,

Le journal des transactions n'est pas conçu pour afficher les transactions. Ce n'est pas vraiment ce genre de journal. De plus, lors de la sauvegarde du journal des transactions, le fichier journal aurait été tronqué, car les informations étaient sauvegardées dans un fichier.

Il convient également de mentionner que lorsque vous insérez une base de données dans le modèle de récupération complète, celle-ci reste en mode Simple jusqu'à ce que vous effectuiez une sauvegarde complète de la base de données. Par conséquent, si aucune sauvegarde n'a été effectuée avant t0, vous ne pouvez pas revenir à cet état.

Rob

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top