Este artículo le explicará cómo resolver bases de datos dudosas de SQL Server. A veces una base de datos se marca como dudosa por accidente. Aquí hay algunas soluciones. 1. Primero confirme que se haya realizado una copia de seguridad de los archivos .mdf y .ldf.
2. Cree una nueva base de datos con el mismo nombre en SQL Server y luego detenga el servicio SQL Server.
3. Sobrescriba los archivos .mdf y .ldf correspondientes a la nueva base de datos con los archivos .mdf y .ldf originales.
4. Reinicie el servicio SQL Server. Debería ver que la base de datos está en estado sospechoso.
5. Ejecute el siguiente comando en SQL Query Analyzer para permitir que se actualicen las tablas del sistema:
use mastergosp_configure 'permitir actualizaciones', reconfigure con overridego
6. Ponga esta base de datos en modo de emergencia:
actualizar sysdatabases establecer estado = 32768 donde nombre = 'db_name'go
7. Utilice el comando DBCC CHECKDB para comprobar si hay errores en la base de datos:
DBCC CHECKDB('nombre_db')GO
8. Si el comando DBCC CHECKDB falla, vaya al paso 10; de lo contrario, coloque la base de datos en modo de usuario único antes de intentar repararla:
sp_dboption 'db_name','usuario único','true'DBCC CHECKDB('db_name', REPAIR_ALLOW_DATA_LOSS)GO
Si se le pregunta que la base de datos no está en modo de usuario único al ejecutar el comando DBCC CHECKDB('db_name', REPAIR_ALLOW_DATA_LOSS), reinicie el servicio SQL Server y continúe intentándolo.
9. Si el comando DBCC CHECKDB('db_name', REPAIR_ALLOW_DATA_LOSS) falla, vaya al paso 10; de lo contrario, si el error en la base de datos se repara exitosamente:
Vuelva a ejecutar el comando DBCC CHECKDB('db_name') para confirmar que no hay errores en la base de datos.
Borre el estado sospechoso de la base de datos: sp_resetstatus 'db_name'
Borre el estado del modo de usuario único de la base de datos: sp_dboption 'db_name','single user','false'
Reinicie el servicio SQL Server. Si todo es normal, la base de datos se ha restaurado correctamente.
10. Si los pasos anteriores no pueden resolver el problema, consulte el documento adjunto e intente restaurar los datos en la base de datos reconstruyendo el registro de transacciones. Si solo tienes archivos MDF, el problema es más complicado y necesitamos reconstruir el registro de transacciones directamente:
1. Cree una nueva base de datos con el mismo nombre en SQL Server y luego detenga el servicio SQL Server.
2. Utilice el archivo ldf original para sobrescribir el archivo .mdf correspondiente a la base de datos recién creada y elimine su archivo de registro (.ldf).
3. Inicie el servicio SQL Server y ponga la base de datos en modo de emergencia (igual que arriba: Paso 5 y Paso 6).
4. Detenga y reinicie el servicio SQL Server.
5. Ejecute el siguiente comando para reconstruir el archivo de registro de la base de datos: (El siguiente es un ejemplo, debe usar el nombre real de su base de datos)
DBCC REBUILD_LOG('cas_db', 'D:cas_dbcas_db_Log.LDF')
6. Reemplace la base de datos en modo de usuario único.
7. Inténtelo nuevamente usando el comando DBCC CHECKTABLE o DBCC CHECKDB para verificar y corregir errores en la base de datos.
-