[Error resuelto] Error de restauración de base de datos SQL, base de datos en uso
Resumen: Este blog describirá las soluciones para solucionar el error "Error de restauración de base de datos SQL, base de datos en uso". Estas soluciones incluyen la desconexión de las conexiones activas (usuarios y procesos) a la base de datos y el uso de Stellar Toolkit para el software MS SQL para recuperar la base de datos SQL (db) desde un archivo db o de copia de seguridad (.bak) dañado. Las soluciones se aplican a MS SQL Server 2019, 2017, 2016, 2014 y versiones inferiores.
Al intentar restaurar la base de datos de SQL Server a partir de una copia de seguridad, es habitual recibir un mensaje de error con el siguiente texto:
Error de restauración para el servidor ‘xxx’ (Microsoft.SqlServer.SmoExtended)
Información adicional: System.Data.SqlClient.SqlError: No se pudo obtener acceso exclusivo porque la base de datos está en uso.
Razones del error “Error de restauración de base de datos SQL, base de datos en uso
A continuación se indican algunas razones que podrían interferir con el proceso de restauración y arrojar el error ‘restore of database failed because the database is in use‘:
- Está conectado a la base de datos que intenta restaurar.
- Al utilizar SQL Server Management Studio (SSMS) para realizar una restauración de la base de datos, tiene más de una ventana abierta en él.
- Los demás usuarios están conectados a la base de datos maestra.
Ahora, vamos a discutir las soluciones para corregir el error.
Antes de empezar
Antes de proceder a resolver el error – no se ha podido obtener acceso exclusivo porque la base de datos está en uso, asegúrese de cumplir los siguientes requisitos previos:
- SQL Server, de cualquier versión, debe estar instalado en su sistema.
- Necesitará tener instalado SQL Server Management Studio (SSMS) en su ordenador.
¿Cómo solucionar el problema de “no se puede restaurar la base de datos SQL porque está en uso”?
Cuando intente restaurar una base de datos SQL Server, asegúrese de que no hay conexiones activas. Si alguien está utilizando la base de datos, la operación de restauración fallará. Para resolver el problema, deberá desconectar a los usuarios activos. Puede hacerlo siguiendo cualquiera de estos métodos:
NOTA: Antes de desconectar a los usuarios, utilice el procedimiento almacenado SQL ‘sp_who’ para comprobar todos los usuarios que están utilizando actualmente la base de datos. Si encuentra usuarios realizando algunas tareas importantes, notifíqueselo a dichos usuarios antes de desconectarlos. Para obtener información detallada sobre sp_who, consulte este enlace. Si no desea notificar a los usuarios, pase al método 2.
Método 1 – Cerrar las conexiones existentes a la base de datos
Para cerrar las conexiones existentes a SQL db, siga estos pasos:
Paso 1: Abra SSMS y conéctese a la base de datos.
Paso 2: Después de conectarse a la base de datos, aparecerá el panel Explorador de objetos en la parte izquierda de la ventana de SSMS.
Paso 3: En el panel Explorador de objetos, haga clic con el botón derecho en Bases de datos y, a continuación, seleccione Restaurar base de datos.
Paso 4: En el cuadro de diálogo Restaurar base de datos, haga lo siguiente:
- Seleccione una de las bases de datos que desea restaurar.
- En el panel izquierdo, haga clic en Opciones.
Paso 5: En la página Opciones, marque la casilla “cerrar las conexiones existentes con la base de datos de destino”.
Una vez cerradas las conexiones SQL Server, proceda con la operación de restauración.
Método 2 -Cambiar del modo multiusuario al modo monousuario
Si cambia el modo multiusuario por defecto al modo de usuario único, se desconectarán todos los usuarios conectados. Puede utilizar esta opción si desea desconectar a todos los usuarios sin notificárselo.
Para forzar a los usuarios a desconectarse de SQL Server, configure la base de datos de modo multiusuario a modo monousuario siguiendo estos pasos:
Paso 1: Abra SSMS, conéctese a la base de datos.
Paso 2: En la ventana del Explorador de Objetos, seleccione Nueva Consulta. Copie y pegue el siguiente fragmento de código T-SQL en la ventana de consulta y, a continuación, haga clic en Ejecutar:
USE master;
IR A
ALTER DATABASE AdventureWorks2012
SET USUARIO_ÚNICO
CON ROLLBACK INMEDIATO;
IR A
La ejecución del código anterior cambiará la base de datos a modo monousuario.
Método 3 – Reinicie el servicio de SQL Server
También puede desconectar a los usuarios reiniciando el servicio SQL. Puede reiniciar el servicio mediante el Administrador de configuración de SQL Server, SSMS, la consola de servicios o la línea de comandos.
NOTA: Utilice este método como último recurso. Esto es porque, puede que sólo necesite restaurar una sola db, pero reiniciar el servidor matará las conexiones a todas las bases de datos.
Los pasos para reiniciar el servicio desde SQL Server Configuration Manager son los siguientes:
Paso 1: Navegue por SQL Server Configuration Manager utilizando cualquiera de las siguientes rutas:
SQL Server 2019 C:\Windows\SysWOW64\SQLServerManager15.msc
SQL Server 2017 C:\Windows\SysWOW64\SQLServerManager14.msc
SQL Server 2016 C:\Windows\SysWOW64\SQLServerManager13.msc
SQL Server 2014 C:\Windows\SysWOW64\SQLServerManager12.msc
SQL Server 2012 C:\Windows\SysWOW64\SQLServerManager11.msc
Paso 2: En el panel izquierdo de la ventana Administrador de configuración de SQL Server, haga clic en Servicios de SQL Server. Y en el panel derecho, haga clic con el botón derecho en el servicio SQL Server, y Detenga e Inícielo.
Paso 3: Haga clic en Aceptar para salir del Administrador de configuración de SQL Server.
¿Y si el problema persiste?
Si el problema persiste, es probable que haya un problema con la base de datos o que el archivo de copia de seguridad utilizado para restaurar la base de datos esté dañado. En ese caso, utilice Stellar Toolkit for MS SQL. El software puede recuperar una base de datos de un servidor SQL corrupto. También puede extraer una base de datos – de archivos de copia de seguridad (.bak) corruptos – que necesitan ser restaurados.
Stellar Toolkit for MS SQL también puede ayudarle a restablecer contraseñas de usuario y de administrador de SQL Server perdidas u olvidadas. Usted puede leer la revisión de software realizado por MVP desde aquí.
Para restaurar la base de datos desde un archivo de copia de seguridad (.bak) de SQL Server dañado utilizando el software, siga estos pasos:
Paso 1: Descargue, instale y ejecute el software Stellar Toolkit for MS SQL.
Paso 2: En la interfaz de usuario del software, seleccione Extract from MS SQL Backup.
Paso 3: En la ventana de Stellar Backup Extractor for MS SQL, haga clic en Select File para elegir el archivo .bak.
NOTA: Elija la opción “Buscar en carpeta” si no conoce la ubicación del archivo./p>
Paso 4: Tras seleccionar el archivo .bak, haga clic en Escanear.
Paso 5: Aparece la ventana BackupSet con los detalles de todas las copias de seguridad.
Paso 6: Elija el archivo .bak que desea recuperar de la lista Tipo de copia de seguridad y, a continuación, haga clic en Siguiente para continuar con el proceso de escaneado.
Paso 7: Una vez finalizado el escaneado, aparece un cuadro de diálogo que muestra el número total de registros disponibles en el archivo de copia de seguridad.
Paso 8: El software muestra una vista previa de los registros de la base de datos.
Paso 9: Para guardar el archivo .bak recuperado, haga clic en Save en el menú File.
Paso 10: En la ventana emergente, seleccione MSSQL en Guardar como y, a continuación, haga clic en Examinar para seleccionar la ubicación en la que desea guardar el archivo recuperado. Haz clic en Aceptar.
Paso 11: Elija Nueva base de datos o Base de datos activa en Opciones de guardado. A continuación, especifique los detalles necesarios en la sección Conectar con el servidor y haga clic en Conectar.
Paso 12: Haga clic en Aceptar cuando aparezca el mensaje “El proceso de recuperación se ha completado correctamente”.
El archivo recuperado se guardará en la ubicación seleccionada.
Puede ver el vídeo completo desde aquí:
Conclusión
En este blog se explica cómo solucionar el problema de restauración de base de datos SQL fallida, base de datos en uso. Puede desconectar a los usuarios activos cerrando las conexiones existentes o cambiando del modo multiusuario al modo monousuario. O bien, desconecte todos los usuarios reiniciando el servicio de SQL Server. Pero, si todavía tiene problemas para restaurar la base de datos, Stellar SQL Database Toolkit puede serle útil. Ayuda a resolver el problema reparando la base de datos SQL corrupta o recuperando el archivo de copia de seguridad de SQL Server.