Je semble me souvenir qu'en 2008, vous pouviez restaurer une sauvegarde sur une nouvelle copie d'une base de données, en changeant le nom dans le champ "Destination Database" de l'assistant de restauration. Cela créerait une toute nouvelle base de données, qui est une copie de la base de données d'origine restaurée au moment voulu. Pour ma vie, je n'ai pas compris comment faire faire à SQL 2012 cela.
Maintenant, je comprends (grâce à Aaron Bertrand) que cela n'a pas vraiment changé, et que 2012 me rend en fait plus évident que cette stratégie était une mauvaise idée en premier lieu!
Donc, ce que je dois faire est le suivant: Créez une nouvelle base de données, 'MyDB_Copy', à partir d'une base de données existante, 'MyDB', en utilisant ses fichiers de sauvegarde. Nous avons des sauvegardes complètes nocturnes (.bak) et des TLogs toutes les 15 minutes (.trn). Je ne veux pas que le «MyDB» existant soit affecté / touché du tout, car il est «en direct».
Après la création de MyDB_Copy à partir du fichier principal de sauvegarde complète, je dois ensuite restaurer quelques dizaines de sauvegardes TLog pour le faire arriver à un certain moment.
Réponses:
Basé sur l' exemple E de la documentation , ouvrez une nouvelle fenêtre de requête et exécutez:
Les noms logiques ne sont pas importants; les noms de fichiers physiques sont. Cela fait des hypothèses sur vos noms de fichiers logiques et qu'il n'y en a que deux; courir
EXEC MyDB..sp_helpfile;
pour être sûr.Si vous devez restaurer des journaux, passez
RECOVERY
àNORECOVERY
:Ensuite, vous pouvez émettre une série de:
Et sur le tout dernier:
Ou si vous n'avez besoin que d'une partie d'un journal jusqu'à un certain point dans le temps (je suppose que vous avez vérifié où se trouvent les LSN et les heures afin que vous sachiez exactement de quels fichiers vous avez besoin):
La façon dont vous avez dit fonctionner dans les versions précédentes n'aurait jamais fonctionné, à moins que la sauvegarde ne provienne d'un autre serveur. Par défaut, il essaiera de placer les nouveaux fichiers mdf et ldf exactement au même endroit, ce qui n'est pas possible.
la source
Tout ce que vous devez faire pour restaurer plusieurs fois la même base de données est de changer le nom des fichiers disque de cette base de données. De toute évidence, vous devez également donner à la base de données un nom différent de toute autre base de données dans SQL Server. Dans SSMS après avoir sélectionné le fichier .bak pour la restauration et tapé le nom de la base de données, vous cliquez ensuite sur «Fichiers» dans la section «Sélectionner une page» à gauche et changez simplement le nom des fichiers disque.
A bientôt Doug
la source