Comment arrêter, mettre hors ligne et supprimer une base de données SQL Server en mode récupération?

35

J'ai une base de données de développement qui est entrée en mode de récupération au redémarrage et en cours de récupération depuis environ une heure.

Je dois soit arrêter la récupération, soit la tuer d'une manière ou d'une autre.

Je me fiche un peu de la base de données ou de toute donnée, j'ai des scripts de déploiement.

Des idées?

Philᵀᴹ
la source

Réponses:

48
  • Arrêtez SQL Server
  • Supprimer MDF + LDF
  • Démarrer SQL Server
  • Restaurer (peut avoir besoin de laisser tomber en premier, vient suspect)

Si le MDF et le LDF sont présents au démarrage du service, la reprise après annulation / reprise est effectuée. Vous devez les laisser tomber pour empêcher cela.

gbn
la source
2
Que faire si vous ne pouvez pas arrêter le serveur SQL à cause d'autres bases de données qui ne devraient pas tomber? Il n'y a pas d'autre moyen?
Erik Dekker le
1
@ErikDekker Probablement trop tard pour vous aider, mais vous pouvez également détacher la base de données
Ben Aaronson
1
Ce conseil était parfait pour ma situation. Instance factice / dev-testing, la restauration de la base de données a été interrompue à mi-chemin, a dû la tuer complètement et la supprimer avant de tenter une nouvelle restauration. Le bit "besoin de supprimer d'abord" était l'astuce - après avoir arrêté le service SQL, supprimé les fichiers et démarré le service SQL, la base de données sera toujours répertoriée dans l'explorateur d'objets, mais il vous suffira simplement de cliquer avec le bouton droit de la souris sur "Supprimer" ( aka Drop) va le finir. Merci!
NateJ
1
Il est à noter que vous ne pouvez pas détacher une base de données bloquée dans l'état de restauration. Tu ne peux pas non plus le détacher.
Ian Boyd
Pour moi, avec une base de données dans "Récupération en attente" et un serveur disposant de peu d'espace disque (cause probable du "en attente"), en arrêtant SQL Server, en supprimant les fichiers mdf et ldf, un redémarrage était la seule façon d'avancer. Utiliser Detach Database ne fonctionnerait pas pour moi avec une base de données en attente de récupération.
Jeff Mergler
7
  1. Cliquez avec le bouton droit sur la base de données dans SQL Server Management Studio, puis cliquez sur Détacher.
  2. Sélectionnez uniquement la case à cocher Supprimer les connexions, puis cliquez sur OK.
  3. Ensuite, la base de données va disparaître.
  4. Cliquez avec le bouton droit sur le dossier Bases de données, puis cliquez sur Joindre ...
  5. Cliquez sur Ajouter et recherchez le fichier .mdf de la base de données que vous avez supprimée. Vous devrez le trouver dans le système de fichiers.
  6. Cliquez sur OK, et il sera de nouveau en ligne.
adamoaragato
la source