Я хочу выполнить резервное копирование базы данных через SQLCMD с удаленного хоста.

Моя команда, которую я использую, выглядит так:

sqlcmd -H IP.OF.Machine -S .\SQLDOTNET -U User -P Password -Q "Backup Database [database_name] TO DISK= 'C:\backups\backup.bak'"

Когда я выполню это, я получу ошибку:

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..

Я дважды проверил, что мой сервер принимает удаленное управление (Сервер => Свойства сервера => Подключения => Удаленное подключение проверено).

Когда я выполняю команду на сервере базы данных, резервная копия создается правильно.

Есть ли свойство или конфигурация сервера, которые мне здесь не хватает?

1 ответ1

1

-H устанавливает имя вашей рабочей станции (если вы хотите установить его). С https://msdn.microsoft.com/en-us/library/ms162773%28v=sql.110%29.aspx:

-H рабочая станция_имя

Название рабочей станции. Эта опция устанавливает переменную сценария sqlcmd SQLCMDWORKSTATION. Имя рабочей станции указано в столбце hostname представления каталога sys.processes и может быть возвращено с помощью хранимой процедуры sp_who. Если этот параметр не указан, по умолчанию используется текущее имя компьютера. Это имя может использоваться для идентификации различных сеансов sqlcmd.

Вам необходимо указать имя сервера в -S вместе с экземпляром. Точка означает "локальный", поэтому вы пытаетесь подключиться к экземпляру с именем SQLDOTNET работающему на вашем локальном компьютере. Вам нужно заменить точку именем вашего удаленного сервера SQL (или его адресом, если хотите).

Я также посоветовал бы сначала подключиться к серверу и выполнить ваши команды в интерактивном режиме (в качестве теста). См. Здесь для использования: https://msdn.microsoft.com/en-us/library/ms180944%28v=sql.110%29.aspx

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .