La réponse est non, quel que soit le logiciel de sauvegarde utilisé.
Une sauvegarde est une opération physique, pas une opération logique. Il lit toutes les extensions contenant des pages allouées (c'est-à-dire que même si une seule page d'une extension de 8 pages est allouée, il sauvegarde l'intégralité de 64 Ko), et il le fait dans l'ordre physique.
Une restauration est une opération physique, pas une opération logique. Il établit les étendues à leur place légitime dans les fichiers de données.
La reconstruction d'un index (ou quelque chose du genre) est une opération logique qui doit être journalisée. La sauvegarde et la restauration manipulent directement les fichiers de données, sans passer par le pool de tampons, ce qui explique pourquoi cela ne peut pas être fait. Une autre raison pour laquelle cela ne peut pas être fait est que la sauvegarde et la restauration n'ont aucune compréhension de ce qui est contenu dans les données en cours de sauvegarde.
La principale raison pour laquelle cela ne peut pas être fait, cependant, est que le déplacement des pages pendant une opération de restauration briserait les pointeurs de l'arborescence b. Si la page A pointe vers la page B, mais que la page A est déplacée par le processus de restauration, comment la page B est-elle mise à jour pour pointer vers la page A? S'il est mis à jour immédiatement, il peut être remplacé par le reste du processus de restauration. S'il est mis à jour différé, que se passe-t-il si le processus de restauration a restauré un journal de transactions qui a supprimé la page A ou la page B? Ça ne peut tout simplement pas être fait.
Conclusion - la sauvegarde et la restauration sont des opérations physiques qui ne modifient jamais les données.
J'espère que cela t'aides!
PS Bien qu'il ne réponde pas directement à cette question, consultez l'article que j'ai écrit pour le magazine TechNet de juillet qui explique comment les différentes sauvegardes fonctionnent en interne: Comprendre les sauvegardes SQL Server . Le magazine de septembre présentera le prochain de la série sur la compréhension des restaurations.
Une sauvegarde SQL native n'est qu'un vidage page par page des fichiers de sauvegarde, donc la réponse est «non». Une sauvegarde Quest lightspeed utilise probablement une sorte d'algorithme de compression et de compression, mais elle ne "reconstruira" toujours pas les fichiers de données ou les index, ce qui prendrait un temps horriblement long sur une grande base de données.
la source
La sauvegarde se fait régulièrement et très souvent (j'espère). Les concepteurs ont donc veillé à ce que la sauvegarde soit aussi rapide que possible. Quelle est l'E / S la plus rapide? Séquentiel. Vous lisez les blocs des disques dans l'ordre physique exact, vous avez les meilleures performances.
Pourquoi diable la base de données devrait-elle effectuer des opérations d'E / S aléatoires lourdes chaque nuit , jetant la tête des disques partout? La différence serait d'environ deux ordres de grandeur. Il n'y a aucun gain possible à cela.
la source
Hmmm. BradC, avez-vous déjà travaillé avec Firebird / Interbase - où l'utilitaire principal de sauvegarde / restauration / API est plus semblable à la "Copier la base de données ..." du SSMS / EM? Si oui, sachez que MS SQL Server n'est PAS comme ça.
Une sauvegarde SQLServer est plus un vidage de base de données qui est restauré "TEL QUEL" - c'est donc plus comme un raccourci en ligne confortable pour une opération "détacher-copier-rattacher à un autre endroit". La base de données restaurée est presque une copie exacte du fichier de base de données d'origine (presque parce que vous pouvez modifier le placement des fichiers de base de données d'une base de données restaurée) ...
la source