如何使用 osql 从另一台主机备份 MSSQL 数据库?

如何使用 osql 从另一台主机备份 MSSQL 数据库?

我们一直使用 osql 执行我们的 sql 数据库,如下所示:

osql -s IP-9873743\SQLEXPRESS -E -Q "BACKUP DATABASE DBNAME TO 
Disk ='e:\sysbkup\sqlbackup\DBNAME.bak' WITH NOFORMAT, 
INIT, NAME = N' DBNAME-Full Database Backup', 
SKIP, NOREWIND, NOUNLOAD, STATS = 10"

我们想从另一台主机执行相同操作,但当我们在命令中添加主机选项 -H 时,我们收到“登录失败”的消息。使用 MS SQL Server Management Studio,我们能够使用 Windows 身份验证顺利登录到另一台服务器,因为我的机器和另一台主机使用相同的用户名和密码。

当我从 MGMT Studio 控制台运行备份语句时,备份将保存到另一台主机的磁盘,而不是将备份传输到客户端计算机。有什么想法我如何能够从不同于 mssql 引擎本身的另一台主机备份 MSSQL 数据库?

答案1

您应该在 -s 参数中指定服务器名称,而不是 -H,但这仍会备份到运行 SQL 服务的服务器。

根据我的经验,SQL Server 对于在网络驱动器上操作很挑剔,但您可以尝试指定 UNC 路径 ( \\<server>\<share>\<backup_file>) 到您希望备份在网络上的位置。我相信运行 SQL Server 实例的用户需要对目标计算机具有写访问权限,我认为尽管通过 Windows 集成安全性登录,它也不会使用您的帐户,因此您需要先安排好。

相关内容