2009-03-08 8 views
2

J'ai deux confusions au sujet de récupération SQL Server et le mode de récupération en bloc.Confusions de mode de récupération SQL Server et de récupération en bloc

  1. si le processus de récupération lui-même va générer journal des transactions (ici ce que je veux dire les journaux sont les journaux générés par le processus de récupération - le cas échéant, et non générée par les opérations base de données normale DML/DDL)? Pourquoi?

  2. en mode de récupération en vrac, que ce soit la compréhension de A ou B est correcte (si ni est corect, s'il vous plaît aider à me corriger, voici mes 2 interprétations différentes qui me fait confus)

A. l'opération en bloc DML/DLL normale sur la base de données produit (pas l'opération de récupération) génère une quantité minimale de journaux, puisque les journaux sont minimes, le processus de récupération qui utilise log, ne peut récupérer aucun point au milieu des opérations en bloc; B. l'opération en bloc DML/DLL normale sur la base de données produit générera toujours une grande quantité normale de journaux (identique au mode de récupération de journal non vrac), mais le processus de récupération traitera l'opération en bloc dans le journal des transactions comme une unité à récupérer. génère des journaux minimaux pour le processus de récupération lui-même;

salutations George

+0

N'est pas votre question (1) la même que notre post précédent: http://stackoverflow.com/questions/613276/does-the-full-recovery-model-generate-additional-transaction-logs - Si non, pouvez-vous clarifier s'il vous plaît – Kristen

+0

Salut Kristen, cette question est dépensée à partir de cette question après mon plus tard apprendre pour quelques jours. Je ne veux pas le confondre dans le même sujet pour discuter de tant de choses, alors j'ai ouvert un nouveau sujet pour clarifier à tous les gens mes nouvelles pensées et confusions. Merci. :-) – George2

Répondre

1

S'il vous plaît lire les deux articles suivants:

http://technet.microsoft.com/en-us/magazine/2009.02.logging.aspx

http://www.simple-talk.com/sql/backup-and-recovery/simple-talk-sql-server-backup-crib-sheet/

Un processus de récupération ne crée pas les journaux. Les journaux sont ce qui est nécessaire pour effectuer un processus de récupération dans le temps (avec une sauvegarde complète de la base de données, et éventuellement des sauvegardes différentielles).

Une base de données avec récupération « en vrac journalisé » fonctionnera bien comme une opérations « » l'un , sauf que seul l'effet de volume sont enregistrés dans les sauvegardes, plutôt que les transactions concernées. Ces opérations en bloc comprennent BCP, certaines opérations opérations de transformation (DTS) opérations, l'image et le texte manipulations, et SELECT INTO. Par en utilisant un modèle de récupération «en bloc», les opérations en vrac sont unlogged et donc beaucoup plus rapide. récupération à temps n'est pas possible si l'un des ces opérations en vrac ont eu lieu parce que si une sauvegarde du journal couvre toutes les opérations en vrac, la sauvegarde du journal contient les enregistrements du journal et les données pages qui ont été modifiées par gros opérations, et cela s'applique à toutes les modifications jusqu'à ce que le journal a été sauvegardé.

+0

Merci Mitch! 1. Si la récupération elle-même ne génère pas de journal, si le système échoue au milieu de la récupération, comment s'assurer que l'état de la base de données est cohérent et sain (dans le processus de récupération)? 2. Donc, vous pensez que ma compréhension A est correcte pour la récupération de journaux en bloc? – George2

+0

Si un système tombe en panne au milieu d'une récupération, vous êtes dans la même position qu'au début de la récupération. Recommencez. Une base de données n'est pas utilisable jusqu'à ce que la fin du processus de récupération soit indiquée en activant la base de données pour une utilisation normale. –

+0

Mais si la récupération échoue au milieu (supposons que nous redémarrons la machine du serveur de base de données), alors quand le service de base de données est redémarré, comment pouvons-nous savoir que l'état de récupération est raté au milieu? Si nous oublions de récupérer et continuer à utiliser, la base de données sera dans un état incohérent? – George2

Questions connexes