Quiero ejecutar una copia de seguridad de la base de datos a través de SQLCMD desde un host remoto.
Mi comando que uso se ve así:
sqlcmd -H IP.OF.Machine -S .\SQLDOTNET -U User -P Password -Q "Backup Database [database_name] TO DISK= 'C:\backups\backup.bak'"
Cuando ejecuto esto obtendré un error:
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : SQL Server
Network Interfaces: Error Locating Server/Instance Specified
[xFFFFFFFF]. .
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Login timeout
expired.
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : A
network-related or instance-specific error has occurred while
establishing a connection to SQL Server. Server is not found or not
accessible. Check if instance name is correct and if SQL Server is
configured to allow remote connections. For more information see SQL
Server Books Online..
Verifiqué dos veces que mi servidor acepta el control remoto (Servidor => Propiedades del servidor => Conexiones => la conexión remota está marcada).
Cuando ejecuto el comando en el servidor de la base de datos, la copia de seguridad se crea correctamente.
¿Hay alguna propiedad o configuración del servidor que me falta aquí?
Respuesta1
-H
establece el nombre de su estación de trabajo (si desea configurarlo). Dehttps://msdn.microsoft.com/en-us/library/ms162773%28v=sql.110%29.aspx:
-H nombre_estación de trabajo
Un nombre de estación de trabajo. Esta opción establece la variable de scripting sqlcmd SQLCMDWORKSTATION. El nombre de la estación de trabajo aparece en la columna de nombre de host de la vista del catálogo sys.processes y se puede devolver mediante el procedimiento almacenado sp_who. Si no se especifica esta opción, el valor predeterminado es el nombre de la computadora actual. Este nombre se puede utilizar para identificar diferentes sesiones de sqlcmd.
Debe especificar el nombre del servidor -S
junto con la instancia. Un punto significa "local", por lo que está intentando conectarse con la instancia denominada que SQLDOTNET
se ejecuta en su máquina local. Debe reemplazar el punto con el nombre de su servidor SQL remoto (o su dirección si lo prefiere).
También recomendaría conectarse al servidor y ejecutar sus comandos de forma interactiva primero (como prueba). Consulte aquí para conocer su uso:https://msdn.microsoft.com/en-us/library/ms180944%28v=sql.110%29.aspx