Ceci est mon premier article DBA.SE, alors s'il vous plaît, informez-moi de toute erreur, merci!
Je suis un nouveau DBA (pas un pro de l'informatique, juste personne d'autre dans l'entreprise pour le faire), donc plus l'explication est basique, mieux c'est. J'ai lu sur les stratégies de sauvegarde de base de données (ou, comme j'ai appris à les appeler, "stratégies de restauration"). Je comprends les fonctions des sauvegardes complètes, différentielles et des journaux de transactions, mais je veux savoir pourquoi une sauvegarde différentielle ne peut être basée que sur la sauvegarde complète la plus récente.
Si une sauvegarde différentielle est tout ce qui a changé depuis la dernière sauvegarde complète, alors pourquoi la différence ne peut-elle pas être basée sur une sauvegarde de mon choix? Pour être plus clair, je demande de spécifier la base lors de la sauvegarde , pas lors de la restauration. Je suppose que lors de la restauration, vous choisirez la base correcte et le différentiel correspondant pour effectuer la restauration (sans utiliser un différentiel fabriqué à partir de la base B pour restaurer à partir de la base A).
Quelle est la raison qui empêche cette fonctionnalité d'être possible? Je pense qu'il doit y avoir une raison, je ne sais pas ce que c'est.
Remarque: je comprends que la base ne peut pas être spécifiée, mais ma question est pourquoi pas ? (Je ne suis pas non plus intéressé par une discussion sur "pourquoi voudriez-vous?")
Analogie
Voici une analogie avec la façon dont je comprends une sauvegarde différentielle:
J'ai un fichier Excel avec des données dans les cellules.
Le jour 1, je fais une copie de ce fichier et je le stocke ailleurs (la "sauvegarde complète").
Le jour 2, je regarde le fichier et le compare à la copie de sauvegarde que j'ai faite le jour 1, et je note toutes les cellules qui ont changé et quelles sont leurs nouvelles valeurs (une "sauvegarde différentielle"). Je ne note pas chaque modification apportée à une cellule, mais uniquement sa valeur finale. Si la cellule A1 commençait comme "Alfred", changeait en "Betty", "Charlie", puis "Dave", je noterais seulement que "A1 est maintenant Dave".
Le jour 3, je compare à nouveau le fichier courant avec le fichier de sauvegarde et note les changements (une autre "sauvegarde différentielle" avec la même base que le jour 2). Encore une fois, ne notant que les valeurs finales par cellule au moment observé, pas toutes les valeurs que la cellule a été tout au long de la journée.
Le jour 4, je compare à nouveau et note à nouveau les changements. Poursuivant avec la cellule A1, maintenant il est dit "Sarah", même si c'était 10 autres noms tout au long de la journée, et tout ce que je note est "Maintenant A1 est Sarah".
Le jour 5, mon dossier est foiré; donc, je regarde la copie de sauvegarde que j'ai faite le jour 1, puis les états finaux notés le jour 4, et j'applique les modifications notées à la copie de sauvegarde et maintenant j'ai le fichier "restauré" à comment c'était au jour 4 Donc, je regarde la sauvegarde effectuée le jour 1, je vois que le jour 4, la cellule A1 se termine par "Sarah", et je change la cellule de sauvegarde A1 en "Sarah".
Pourquoi cela importerait-il si j'avais fait une autre copie de sauvegarde ("complète") du fichier le jour 2? Pourquoi ne serait-il pas encore possible de comparer (lire, "effectuer une sauvegarde différentielle de") le fichier au jour 3 ou 4 avec la copie faite au jour 1? Si je comprends bien, SQL Server m'obligerait à comparer (lors d'une autre sauvegarde différentielle) à une sauvegarde complète effectuée le jour 2 (si une autre avait été effectuée) - aucune autre option.
COPY_ONLY
- Si l'OP devait effectuer une sauvegarde complète régulière le jour 1 et uneCOPY_ONLY
sauvegarde complète le jour 2, quels problèmes seraient causés par l'application d'un différentiel ultérieur à partir de cette même base à la sauvegarde du jour 2?