sql-server - una - script para hacer backup sql server




Copia de seguridad de servidor SQL a UNC (5)

Creé un plan de mantenimiento en mi servidor SQL Server 2005. La copia de seguridad debe escribirse en otro servidor. Estoy usando una ruta UNC para esto. El usuario que ejecuta los trabajos del Agente SQL tiene acceso completo al otro servidor. Es administrador en ambos servidores.

El problema es que esta declaración falla (tiene el nombre correcto del servidor por supuesto):

EJECUTAR master.dbo.xp_create_subdir N '\\ servername \ c $ \ SqlServerBackup \ Test'

El error que obtengo es: Msg 22048, nivel 16, estado 1, línea 0 xp_create_subdir () devolvió el error 123, 'El nombre del archivo, el nombre del directorio o la sintaxis de la etiqueta del volumen es incorrecto'.

¿Alguien sabe cuál podría ser el problema?


¿No es la falta de una doble barra invertida antes del nombre del servidor?


Verifique en la cuenta donde se ejecuta SqlAgent. Por lo general, el sistema \ NetworkService y no tiene derechos de acceso en otras computadoras.

O bien, otorgue temporalmente derechos de escritura a todos en la ruta UNC o en Panel de control / Servicios cambie la cuenta utilizada para SqlAgent.


Después de tener este problema yo mismo, sin que ninguna de las soluciones anteriores fuera lo suficientemente clara, pensé que publicaría una respuesta más clara. De hecho, el error no tiene nada que ver con la sintaxis, sino con permisos. Lo importante aquí es que es la cuenta del servicio SQL Server, NO la cuenta del Agente SQL Server, la que intenta iniciar sesión para crear el directorio. Puede verificar su Visor de eventos en el servidor de destino y mirar el registro de seguridad para ver los inicios de sesión fallidos de la cuenta de SQL Server en la otra máquina (la mía se estaba ejecutando como administrador local).

Para solucionar esto, configure su cuenta de servicio de SQL Server para que sea un usuario de dominio que puede escribir en el recurso compartido remoto. Hubiera esperado que el Agente SQL Server pudiera usar sus propias credenciales para realizar estas operaciones de copia de seguridad, ¡pero aparentemente no!


El Agente SQL realmente no ejecuta copias de seguridad, es capaz de ejecutar comandos en SQL Server que realiza la copia de seguridad. Por lo tanto, la cuenta de servicio de SQL Server es la que necesita permisos para compartir UNC.

Sin embargo, creo que hay un problema real con el procedimiento xp_create_subdir. Dejaré de usar planes de mantenimiento porque recibo exactamente el mismo error de vez en cuando. No hay permisos cambian y "normalmente" funciona, pero "normalmente" no funciona.


Vi este error en el historial del plan de mantenimiento.

Error del sistema operativo 3 (El sistema no puede encontrar la ruta especificada). BACKUP DATABASE está terminando anormalmente. ". Posibles razones de falla: problemas con la consulta, la propiedad" ResultSet "no configurada correctamente, los parámetros no configurados correctamente o la conexión no establecida correctamente.

Traté de ejecutar la primera parte del paso de Copia de seguridad donde estaba creando el directorio en compartir. Obtuve el error de acceso denegado.

Finalmente, otorgué todos los permisos a la cuenta de servicio bajo la cual SQL Agent se ejecuta y el plan de mantenimiento se ejecutó con éxito.





backup