El archivo .bak no está visible en ningún directorio en SSMS


46

Tengo un archivo .bak creado hoy por otra persona, creado manualmente a través de SSMS 2008 R2. Estoy tratando de restaurar manualmente la base de datos, desafortunadamente el archivo no aparece cuando voy a explorarlo.

Puedo escribir el proceso de restauración, pero he visto este problema antes y no estoy seguro de qué podría hacer que el .bak no aparezca.


Voy a escribir un script para la restauración, solo quiero saber qué lo está causando. Definitivamente es un .bak, no un .bak.txt ni nada.
Sean Long

Entonces, ¿puede explorar la carpeta donde sabe que está el archivo y no aparece? ¿O no puede navegar a la carpeta?
Aaron Bertrand

Puedo buscar la carpeta, pero no veo ninguno de los archivos .bak. Verifiqué los permisos del usuario con el que estoy ejecutando SSMS, son administradores locales y el archivo no está marcado como "oculto" ni nada.
Sean Long

¿Puedes publicar una captura de pantalla en alguna parte, que muestre la vista de Windows Explorer de la carpeta y la de SSMS? También explique en la pregunta el proceso que está utilizando para llegar a este paso.
Aaron Bertrand

1
(También tenga en cuenta que la cuenta de servicio de SQL Server también debe tener permisos, no solo el usuario de SSMS. Aunque eso no debería evitar que los archivos .bak se muestren en la lista antes de hacer algo con ellos.)
Aaron Bertrand

Respuestas:


39

Tuvimos el mismo problema hoy. Resultó ser un problema de permisos, como se ilustra en algunas de las otras respuestas. La diferencia es que la cuenta que necesitábamos agregar era NT SERVICE\MSSQLSERVER.

Captura de pantalla

Identifiqué la cuenta comparando los permisos de los permisos predeterminados de la carpeta de copia de seguridad de SQL con la carpeta que contiene el archivo de copia de seguridad.

Agregar la cuenta de servicio no es tan simple como parece. Esto es lo que funcionó para mí. (Servidor 2012 R2)

  1. Inicia sesión en el servidor. (El cambio debe realizarse en el servidor real, no a través de un recurso compartido de red).
  2. Cambie las ubicaciones al nombre del servidor local.
  3. Escriba en NT SERVICE\MSSQLSERVERel cuadro de nombre. (No haga clic en Comprobar nombres)
  4. Haga clic en Aceptar. Luego verá una lista de las cuentas de servicio coincidentes. Seleccione MSSQLSERVER y haga clic en Aceptar para aceptar la selección.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Debería ver la cuenta de servicio en la configuración de seguridad y puede ajustar los permisos en consecuencia.

Después de agregar permisos (agregué Control total, para que coincida con la carpeta predeterminada de Copia de seguridad de SQL) y reinicie la Consola de administración de SQL Server, pude seleccionar y restaurar mi archivo de copia de seguridad.


superuser.com/questions/248315/… nos dice cómo enumerar las cuentas de usuario en una computadora. Para cualquier servicio nombrado s, hay una cuenta virtual nombrada NT Service\s, incluso si el servicio no se ejecuta bajo esa cuenta.
Tahir Hassan

2
La cuenta que tuve que agregar fue NT Service\MSSQL$SQLSERVER2014, quizás porque nombré mi instanciaSQLSERVER2014
thinkOfaNumber

16

Tengo esto hoy.

Desactivé el intercambio de archivos, la indexación y borré las sesiones abiertas (personas que iniciaron sesión para copiar copias de seguridad), pero el problema no desapareció.

Fui al Explorador de Windows, copié las copias de seguridad en otra carpeta y busqué esa a través de Management Studio, y pude verla allí.

Eliminé la carpeta original y la volví a crear, volví a copiar el contenido y volví a buscar los .bakarchivos y volvió a la normalidad.

Espero que esto ayude a alguien.


1
¡Ayudó! :)
Peter PitLock

5

Encontré este problema un par de veces. El problema no es con SQL Server sino con el permiso de Windows de la carpeta. Debe agregar el permiso apropiado a la carpeta donde copió el archivo .bak (creo que System Networkrol).

La solución más fácil es mover el archivo a la carpeta de respaldo predeterminada en Archivos de programa. Tiene todos los permisos necesarios. Para SQL Server 2012 es

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup

Esta es una gran solución porque uno no está abriendo posibles agujeros de seguridad en su computadora solo para restaurar un archivo.
Michael Potter

funciona muy bien sin necesidad de políticas y cosas
Marin

3

También me encontré con el mismo problema hoy. Me dieron un archivo de respaldo para restaurar, pero no estaba visible para mí mientras navegaba. Sin embargo, pude acceder al sistema de archivos pero al asistente de restauración SQL Server management Studio.

Después de gastar un poco descubrí que es un problema de permisos. El servicio SQL Server se está ejecutando usando Network Servicepero la Network Servicecuenta no tenía permisos para acceder a la carpeta. Después de otorgar los permisos a Network Service. El archivo de copia de seguridad estaba visible para restaurar.

Para más detalles, consulte por Blog .


2

Si puede encontrarlo en el Explorador de Windows, debe escribir un RESTORE DATABASEcomando en lugar de confiar en la torpe interfaz gráfica de usuario para encontrarlo. Quién sabe qué código está sucediendo allí y por qué es posible que no pueda encontrar el archivo; lo siento, solo tengo una solución y no una solución.

También asegúrese de que el archivo sea realmente algo.bak y no algo.bak.txt (Windows puede estar "ayudando" ocultándole la extensión. Odio ese comportamiento predeterminado).


1

Esto me sucedió hoy en mi caja de desarrollo. En mi caso, la cuenta de servicio tenía permisos para la carpeta, pero mi cuenta de usuario no. Una vez que concedí los permisos de mi cuenta a la carpeta, pude ver los archivos .BAK.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.