web-dev-qa-db-fra.com

Comment supprimer la restauration de la base de données

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 des 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.
14
peter
RESTORE DATABASE dbname 
FROM DISK = 'dbname .bak'
WITH REPLACE, RECOVERY --force restore 

ou juste

RESTORE DATABASE dbname WITH RECOVERY

REPLACE Écraser la base de données existante, ne le faites que si vous êtes sûr de vouloir remplacer votre base de données existante car vous avez mentionné que vous ne vous souciez pas de la 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.

25
AmmarR

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.

3
Ashar