원격 호스트에서 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
-H
워크스테이션 이름을 설정합니다(설정하려는 경우). 에서https://msdn.microsoft.com/en-us/library/ms162773%28v=sql.110%29.aspx:
-H 워크스테이션_이름
워크스테이션 이름. 이 옵션은 sqlcmd 스크립팅 변수 SQLCMDWORKSTATION을 설정합니다. 워크스테이션 이름은 sys.processes 카탈로그 뷰의 호스트 이름 열에 나열되며 저장 프로시저 sp_who를 사용하여 반환될 수 있습니다. 이 옵션을 지정하지 않으면 기본값은 현재 컴퓨터 이름입니다. 이 이름은 다양한 sqlcmd 세션을 식별하는 데 사용될 수 있습니다.
-S
인스턴스와 함께 에 서버 이름을 지정해야 합니다 . 점은 "로컬"을 의미하므로 SQLDOTNET
로컬 시스템에서 실행 중인 인스턴스와 연결을 시도하고 있습니다 . 점을 원격 SQL 서버의 이름(또는 원하는 경우 해당 주소)으로 바꿔야 합니다.
또한 서버에 연결하고 먼저 (테스트로서) 대화형으로 명령을 실행하는 것이 좋습니다. 사용법은 여기를 참조하세요:https://msdn.microsoft.com/en-us/library/ms180944%28v=sql.110%29.aspx