從遠端主機使用 sqlcmd 建立資料庫備份

從遠端主機使用 sqlcmd 建立資料庫備份

我想透過 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

相關內容