Comment supprimer la restauration de la base de données

14

J'exécute l'envoi de journaux avec SQL Server 2008 R2.

J'ai une situation où le lecteur de base de données secondaire a manqué d'espace et n'appliquait pas les journaux de transactions d'envoi de journaux.

La façon dont je veux résoudre ce problème est de supprimer les bases de données au niveau secondaire et de configurer l'envoi de journaux à partir de zéro.

Le problème que j'ai maintenant est que mes bases de données secondaires sont à l'état de restauration et je ne peux pas les supprimer. Comment puis-je procéder?

Par exemple, si j'essaie de les mettre hors ligne, j'obtiens l'erreur,

ALTER DATABASE is not permitted while the database is in the Restoring state.
peter
la source
vous ne pouvez pas exécuter de commande alter sur une base de données en cours de restauration, vous devrez effectuer une suppression.
Jason Cumberland

Réponses:

25
RESTORE DATABASE dbname 
FROM DISK = 'dbname .bak'
WITH REPLACE, RECOVERY --force restore 

ou juste

RESTORE DATABASE dbname WITH RECOVERY

la REPLACEEcraser la base de données existante, faites - le seulement si vous êtes sûr que vous souhaitez remplacer votre base de données existante que vous avez mentionné que vous ne se soucient de le supprimer

RESTORE WITH RECOVERY est le comportement par défaut qui laisse la base de données prête à l'emploi en annulant les transactions non validées. Les journaux de transactions supplémentaires ne peuvent pas être restaurés.

Cela devrait mettre la base de données en ligne. Ensuite, vous pouvez le supprimer et réessayer.

AmmarR
la source
Je pense que ce que vous dites aurait dû fonctionner. Ma solution était cependant de redémarrer le service sql puis de supprimer les bases de données travaillées après cela.
peter
true, lorsque le service est désactivé, la suppression des journaux de transactions en créera toujours un nouveau. tout le meilleur
AmmarR
3

La meilleure façon, comme je l'ai fait avec ce problème, est d'écrire cette commande «supprimer la base de données [nom de la base de données]», puis d'en créer une nouvelle avec le même nom, puis de restaurer la base de données à partir d'un autre fichier .bak car le fichier .bak est corrompu ou défectueux.

Ashar
la source
Il n'y a aucune mention dans la question des sauvegardes corrompues.
ypercubeᵀᴹ