Habituellement, lorsque nous démarrons la sauvegarde, nous n'autorisons pas les modifications à valider ou la base de données ne sera pas accessible. Je veux dire que la base de données sera en mode mono-utilisateur mais je veux démarrer la sauvegarde et libérer la base de données pour utilisation. De plus, une fois que j'ai démarré la sauvegarde, je ne souhaite pas que les modifications en cours soient enregistrées dans le fichier de sauvegarde. Je veux savoir comment je peux y parvenir dans Microsoft SQL Server 2012.Veuillez m'aider.
Eh bien, laissez-moi d'abord expliquer mon problème. Actuellement, je mets la base de données en mode mono-utilisateur jusqu'à la fin de la sauvegarde. Ce mode servira à éviter les changements de données lorsque la sauvegarde est en cours. Mais mon application est liée aux multiples bases de données (chaque base de données est interconnectée et il y a des var dbs qui continuent de créer mensuellement). La sauvegarde de toutes ces bases de données est donc devenue un processus fastidieux et, plus important encore, je dois garder les utilisateurs hors du système lorsque la sauvegarde est en cours.
Je recherche donc un mécanisme de sauvegarde qui répondra aux exigences mentionnées ci-dessous.
- Démarrez la sauvegarde de tous les dbs à la fois et libérez la db pour l'utiliser.
- Comme les bases de données sont liées entre elles, je souhaite conserver la cohérence des données dans les fichiers de sauvegarde. Donc, en raison de cette exigence de cohérence des données, je ne veux pas que les modifications en cours soient validées dans mon fichier de sauvegarde.
Tout ce que je veux, c'est une sauvegarde de tous les dbs à un moment donné.
la source
Réponses:
Je suppose que votre tâche consiste à créer un ensemble de sauvegardes où vous pouvez les restaurer toutes en un seul point statique (pas de transactions ouvertes) (tous synchronisés). Semblable à ce qu'un point de repos fera pour vous dans DB2. Malheureusement, rien dans SQL Server ne fait exactement cela. Cependant, en supposant que vos bases de données sont en mode de récupération complète, vous pouvez faire quelque chose de similaire.
Vous pouvez créer une seule
MARKED
transaction sur toutes les bases de données à la fois . Ensuite, vous effectuez une sauvegarde du journal des transactions de chaque base de données. En supposant que vous suivez vos sauvegardes de journaux (que vous devriez être de toute façon), les sauvegardes de journaux ne prennent pas très longtemps. Et il n'est pas nécessaire d'empêcher quiconque d'être dans le système (sauf peut-être assez longtemps pour que vous puissiez créer votre transaction marquée).À ce stade, si vous devez effectuer une restauration, vous effectuez une
RESTORE STOPBEFOREMARK
sur chacune de vos bases de données. Cela restaurera toutes les bases de données au même point (en fonction de votre transaction). Remarque: Il existe également un STOPATMARK si vous souhaitez inclure cette transaction.Si vous voulez un exemple, j'en ai un dans le lien ci-dessus avec pas mal de lecture supplémentaire.
Je sais que cela ne répond pas exactement à votre question, mais j'espère que cela résoudra votre problème.
la source
Votre question est similaire à celle à laquelle j'ai répondu - Sauvegarder et restaurer les bases de données 10-20 SQL Server dans un état ~ synchrone?
En supposant que votre modèle de récupération de base de données est COMPLET, vous devez effectuer une sauvegarde complète, puis utiliser les transactions marquées .
Permet de démystifier vos mythes ...
Des mythes de sauvegarde (vous conseille fortement de lire tous les mythes de sauvegarde) :
Les transactions marquées vous aideront à effectuer une sauvegarde de LOG cohérente et vous pourrez les restaurer à l'aide de
RESTORE ... WITH STOPBEFOREMARK = '<mark_name>'
N'oubliez pas que les transactions marquées pour toutes les bases de données de l'instance sont également enregistrées dans le
dbo.logmarkhistory
tableau de laMSDB
base de données.la source
pour plus de détails: https://blogs.technet.microsoft.com/letsdothis/2013/11/06/backup-multiple-sql-databases-in-a-single-swoop/
la source