Cómo eliminar la base de datos de restauración

14

Estoy ejecutando el envío de registros con SQL Server 2008 R2.

Tengo una situación en la que la unidad de base de datos secundaria se quedó sin espacio y no estaba aplicando registros de transacciones de envío de registros.

La forma en que quiero solucionar esto es eliminar las bases de datos en el secundario y configurar el envío de registros desde cero.

El problema que tengo ahora es que mis bases de datos secundarias están en estado de restauración y no puedo eliminarlas. Como puedo proceder?

Por ejemplo, si trato de desconectarlos, aparece el error,

ALTER DATABASE is not permitted while the database is in the Restoring state.
Peter
fuente
no puede emitir un comando alter en una base de datos de restauración, deberá realizar una caída.
Jason Cumberland

Respuestas:

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

o solo

RESTORE DATABASE dbname WITH RECOVERY

la REPLACEsobrescritura de la base de datos existente, hacerlo sólo si está seguro de que desea anular su base de datos existente como se ha mencionado que no me importa para eliminarlo

RESTAURAR CON RECUPERACIÓN es el comportamiento predeterminado que deja la base de datos lista para su uso al revertir las transacciones no confirmadas. Los registros de transacciones adicionales no se pueden restaurar.

Eso debería poner la base de datos en línea. Luego puedes eliminarlo e intentarlo de nuevo.

AmmarR
fuente
Creo que lo que estás diciendo debería haber funcionado. Sin embargo, mi solución fue reiniciar el servicio sql y luego eliminar las bases de datos que funcionaron después de eso.
Peter
Es cierto, mientras el servicio está desactivado, la eliminación de los registros de transacciones siempre creará uno nuevo. todo lo mejor
AmmarR
3

La mejor manera que he hecho con este problema es escribir este comando 'soltar base de datos [nombre de la base de datos]' y luego crear uno nuevo con el mismo nombre y luego restaurar la base de datos desde otro archivo .bak porque el archivo .bak está dañado o es defectuoso.

Ashar
fuente
No se menciona en la pregunta sobre las copias de seguridad corruptas.
ypercubeᵀᴹ