Un dispositivo que falta hace que una base de datos se marque como sospechosa

Seleccione idioma Seleccione idioma
Id. de artículo: 180500 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E180500
Expandir todo | Contraer todo

Síntomas

SQL Server marca una base de datos como sospechosa si alguno de los archivos de dispositivo para la base de datos no está disponible cuando intenta iniciarse. Puede ver alguno de los siguientes conjuntos de mensajes en el registro de errores de SQL Server:
Mensaje de error 1
96/11/18 10:48:32.60 kernel udopen: Error del sistema operativo 32 (El
proceso no puede obtener acceso al archivo porque está siendo utilizado en otro
proceso.) durante la creación/apertura del dispositivo físico,
C:\DATA\SQL\MSDB.DAT (o C:\DATA\SQL\MSDB.MDF)

96/11/18 10:48:32.60 kernel udactivate (primary): error al abrir
dispositivo C:\MSSQL\DATA\MSDB.DAT (o C:\DATA\SQL\MSDB.MDF) para vdn 127
Mensaje de error 2
96/11/18 10:48:32.60 kernel udopen: Error del sistema operativo 2 (El
sistema no puede encontrar el archivo especificado.) al crear/abrir
el dispositivo físico C:\MSSQL\DATA\MSDB.DAT (o C:\DATA\SQL\MSDB.MDF)

96/11/18 10:48:32.60 kernel udactivate (primary): error al abrir dispositivo C:\MSSQL\DATA\MSDB.DAT (o C:\DATA\SQL\MSDB.MDF) para vdn 127
Esto irá seguido más adelante en el registro por:
96/11/18 10:48:36.70 kernel udread: Error del sistema operativo 6 (El
identificador no es válido.) en el dispositivo 'C:\MSSQL\DATA\MSDB.DAT' (o C:\DATA\SQL\MSDB.MDF) (virtpage
0x7f000018).

96/11/18 10:48:36.77 spid11 Error : 840, Gravedad: 17, estado: 2

96/11/18 10:48:36.77 spid11 El dispositivo 'MSDBData' (con el nombre físico
'C:\MSSQL\DATA\MSDB.DAT' (or C:\DATA\SQL\MSDB.MDF), y el número de dispositivo virtual 127) no está
disponible. Póngase en contacto con el administrador del sistema para obtener asistencia.

96/11/18 10:48:36.77 spid11 El búfer 1092480 de la base de datos 'msdb'
tiene el número de página 0 en el encabezado de página y el número de página 24 en el
encabezado de búfer

96/11/18 10:48:37.43 spid11 No se puede continuar con la recuperación de
dbid <5> debido a errores anteriores. Continuando con la siguiente
base de datos.
Por ejemplo, si se realizan los pasos siguientes se demuestra el problema:
  1. Detenga SQL Server.
  2. Escriba el comando siguiente desde un símbolo del sistema en el directorio Mssql\Data:

    ren msdb.dat msdb.sav
  3. Inicie SQL Server.
Los errores anteriores (los del segundo conjunto) aparecerán en el registro de errores de SQL Server. Si a continuación realiza la siguiente consulta en la base de datos master
   select name, dbid, mode, status from sysdatabases where dbid =
   db_id('msdb')
				

Recibirá los siguientes resultados:
   name     dbid   mode   status
   ------------------------------
   msdb      5      0      328
				

El estado 328 indica:
   truncate log on chkpt
   database not recovered yet
   database is suspect
				

Para obtener más información al respecto, vea el tema "Sysdatabases (Master Database Only)" en los Libros en pantalla de SQL Server.

Causa

Al iniciarse, SQL Server intenta obtener un bloqueo exclusivo en el archivo de dispositivo. Si el dispositivo está siendo utilizado por otro proceso (por ejemplo, por software de copia de seguridad) o si no se encuentra el archivo, se encontrará con el escenario descrito anteriormente. En estos casos, normalmente no hay ningún problema con los dispositivos ni con la base de datos. Para que la base de datos se recupere correctamente, el dispositivo debe estar disponible y se debe restablecer el estado de la base de datos.

Solución

Para evitar este problema, siga estos pasos. Tenga en cuenta que el último paso es decisivo.
  1. Asegúrese de que el archivo del dispositivo está realmente disponible.
  2. Utilice el procedimiento almacenado adicional sp_resetstatus para restablecer el estado de una base de datos sospechosa. Si no lo ha hecho todavía, cree este procedimiento ejecutando la secuencia de comandos Instsupl.sql, que se encuentra en el directorio Mssql\Install. Para obtener más información acerca de sp_resetstatus, vea el tema "Restablecer el estado de sospecha" en los Libros en pantalla de SQL Server.
  3. Ejecute sp_resetstatus en la base de datos master para la base de datos sospechosa:
          use master
          go
          exec sp_resetstatus msdb   -- replace msdb with your database name
     
    						
    Obtendrá el siguiente resultado:
          Prior to Update sysdatabases attempt for DBName='msdb', the mode=0
          and status=328 (status suspect_bit=256). For DBName='msdb' in
          sysdatabases, status bit 256 was forced Off and mode was forced to
          0. WARNING: You MUST stop/restart SQL Server prior to accessing this
          database!
     
    					
  4. Detenga y reinicie SQL Server.
  5. Compruebe que la base de datos se recuperó y está disponible.
  6. Ejecute DBCC NEWALLOC, DBCC TEXTALL y DBCC CHECKDB.

Más información

Si la base de datos continúa marcada como sospechosa tras realizar estos pasos, es posible que haya otros problemas que impidan su recuperación. En este momento puede realizar la restauración a partir de una copia de seguridad válida o establecer la base de datos en modo de emergencia y utilizar el programa de copia masiva (BCP) para copiar de manera masiva los datos. Para obtener más información al respecto, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
165918 Modo de emergencia y DUMP TRANSACTION WITH NO_LOG
Importante
Si utiliza este artículo (165918) y no sabe con seguridad todas las consecuencias de las acciones que va a realizar, póngase en contacto con su proveedor principal de soporte técnico para pedir ayuda.

Propiedades

Id. de artículo: 180500 - Última revisión: lunes, 25 de septiembre de 2006 - Versión: 5.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
Palabras clave: 
kbprb KB180500
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com