Je viens de lire une grande partie de la documentation MSDN et je pense comprendre les différents modèles de récupération et le concept de chaîne de sauvegarde. J'ai encore une question:
Une sauvegarde complète de la base de données tronque-t-elle le journal des transactions (en mode de récupération complète)?
Si oui: Où est-ce mentionné dans le MSDN? Tout ce que j'ai pu trouver, c'est que seul BACKUP LOG tronque le journal.
Si non: pourquoi? Dans la mesure où une sauvegarde complète de la base de données lance une nouvelle chaîne de sauvegarde, à quoi sert-elle de conserver les transactions terminées avant la sauvegarde complète dans le journal?
la source
Une sauvegarde complète ne tronque PAS le journal, vous devez effectuer une opération de journal de sauvegarde. Une sauvegarde complète NE RÉINITIALISE PAS la chaîne de journaux - cela gâcherait totalement la réplication / l'envoi des journaux, etc.
Vous devez examiner de près la façon dont SQL Server effectue les sauvegardes, mais sachez que les transactions en vol ou à exécution longue ne sont pas incluses dans la sauvegarde (sinon, la sauvegarde risque de ne jamais s'achever). Il n'est donc pas assez précis de dire qu'une sauvegarde complète d'un online-database est assuré de rendre la prochaine sauvegarde du journal obsolète.
http://msdn.microsoft.com/en-us/library/ms175477.aspx
la source
À ma connaissance, la seule chose qui tronque le journal des transactions est une sauvegarde du journal .
Une sauvegarde complète ne copie que suffisamment du journal pour qu'il soit cohérent sur le plan des transactions, car l'opération de sauvegarde prend un certain temps et les pages copiées peuvent avoir changé.
Vous avez toujours besoin de vos sauvegardes de journal pour la récupération à un moment précis.
Je n'ai pas de lien vers MSDN, mais je peux vous connecter au blog de Paul Randal , développeur de l'équipe SQL Server, qui a écrit DBCC CHECKDB et des parties de la documentation en ligne.
Il répond également aux questions sur ce forum, de sorte que ce serait une autorité encore meilleure que les informations en 2ème / 3ème main de moi :)
la source
Les gens ont souvent une idée fausse à propos de la sauvegarde complète et des sauvegardes du journal. Pour que la sauvegarde fonctionne dans le
FULL
modèle de récupération de sauvegarde, vous devez utiliser les journaux t, car pendant les sauvegardes, il peut toujours y avoir des transactions en cours dans la base de données (sauf si vous effectuez uneCOLD
sauvegarde lorsque vous arrêtez la base de données). Oracle utilise le même concept lorsque vous avez une base de données enARCHIVELOG
mode. La séquence d'une sauvegarde se résume à ceci:C’est la raison pour laquelle les journaux t ne sont pas tronqués / rétrécis par défaut, car ils constituent un élément essentiel de la poursuite des transactions pendant la phase de sauvegarde.
la source
Ne confondez pas la troncation du journal avec la réduction du journal.
TRUNCATE consiste à supprimer les transactions dans le journal qui se trouvent avant le dernier point de contrôle (le point de contrôle étant lorsque les transactions sont vidées dans la base de données elle-même). Ceci est fait en utilisant la commande BACKUP.
Pour réduire le journal, vous devez réduire la taille réelle du fichier journal. Ceci est fait en utilisant des commandes DBCC.
la source
En gros, vous n'avez pas besoin de réduire automatiquement le journal des transactions à chaque fois, car les journaux des transactions ont besoin d'espace pour fonctionner et si vous les tronquez automatiquement, ils resteront presque de la même taille.
la source