web-dev-qa-db-fra.com

Comment restaurer plusieurs sauvegardes

J'utilise expressmaint et Windows Tâches planifiées pour créer des sauvegardes hebdomadaires complètes et quotidiennes de certaines bases de données MS SQL Server 2008 R2 Express

Fulls hebdomadaires

expressmaint -S (local)\SQLExpress -D ALL -T DB -R D:\Backup\Reports -RU WEEKS -RV 1 -B D:\Backup\Data -BU WEEKS -BV 4 -V -C

Diffs quotidien

expressmain -S (local)\SQLExpress -D ALL -T DIF -R D:\Backup\Reports -RU WEEKS -RV 1 -B D:\Backup\Data -BU days -BV 7 -V -C

Lorsque je viens de les restaurer à un certain point, je dois restaurer chaque sauvegarde individuellement. Y a-t-il quelque chose que je peux chaîne une série de sauvegardes en une seule restauration qui sera réduite dans le bon ordre?

Quand j'essaye ça, je reçois l'erreur

Une exception s'est produite lors de l'exécution d'une instruction TRAND-SQL ou d'un lot. (Microsoft.SQLSERVER.ConnectionInfo)


INFORMATIONS COMPLÉMENTAIRES:

Les médias chargés sur "C:\foo\bar_fullbackup_20110130_2346.bak" sont formatés pour soutenir 1 familles de médias, mais 2 familles de médias sont attendues en fonction de la spécification de périphérique de sauvegarde. Restaurer la tête de tête se termine anormalement. (Microsoft SQL Server, Erreur: 3231)

Pour obtenir de l'aide, cliquez sur: http://go.microsoft.com/fwlink?prodname=microsoft+SQL+Server&prodver=10.50.1600&evtsrc=mssqlserver&evtid=3231&linkid=20476

Edit

J'utilise la boîte de dialogue Restaurer dans le menu Tâches lorsque vous cliquez avec le bouton droit de la souris sur une base de données. De là, je sélectionne "restaurer à partir de périphérique" et ajouter les fichiers .bak que je souhaite restaurer.

Si je n'aijoune qu'un seul fichier .bak, je vais bien, si j'ajoute plusieurs fichiers, je reçois l'erreur ci-dessus.

7
Greg B

En utilisant SSMS, vous ne pouvez pas chaîner une restauration des sauvegardes en une seule opération. Vous devriez faire plusieurs restaurations. Vous voudrez utiliser T-SQL pour être plus efficace.

--Restore the most recent full backup
RESTORE DATABASE <mydb>
FROM DISK = 'Path to full backup'
WITH NORECOVERY, STATS=10 --If only restoring the full, change to RECOVERY

--Restore the most recent diff backup
RESTORE DATABASE <mydb>
FROM DISK = 'Path to diff backup'
WITH RECOVERY, STATS=10

Plus d'informations sur Restaurer: http://msdn.microsoft.com/en-us/library/ms186858.aspx

10

--Restore la plus récente sauvegarde complète

RESTORE DATABASE <DATABASE NAME>
FROM DISK = <Path to full backup>
WITH NO RECOVERY

--Restore la dernière sauvegarde différentielle

RESTORE DATABASE <DATABASE NAME>
FROM DISK = <Path to differential backup>
WITH NORECOVERY

--Restore toutes les sauvegardes de journal transactionnelles qui ont été prises après la dernière sauvegarde différentielle

RESTORE DATABASE <DATABASE NAME>
FROM DISK = <Path to first transactional log backup>
WITH NORECOVERY

. . . . .

RESTORE DATABASE <DATABASE NAME>
FROM DISK = <Path to last transactional log backup>
WITH RECOVERY 
6
Ranjith Kumar

Vous essayez de restaurer à partir d'un appareil, mais de savoir ce que vous voulez vraiment faire est de spécifier l'option "de la base de données" dans SSMS. L'interface graphique devrait présenter les fichiers de sauvegarde disponibles et vous pouvez sélectionner les fichiers complets et différenciaux.

4
SQLRockstar