如何使用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作为主机选项时,我们会看到“login失败”。 使用MS SQL Server Management Studio,我们可以使用Windows身份validation来正常login到其他服务器,因为我的机器和其他主机使用相同的用户名和密码。

从MGMT Studio控制台运行备份语句时,备份将保存到其他主机的磁盘上,而不是将备份传输到客户机。 任何想法如何能够从另一个主机不同于mssql引擎本身备份MSSQL数据库?

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

根据我的经验,SQL Server在networking驱动器上操作很烦人,但是你可以试着指定一个UNCpath( \\<server>\<share>\<backup_file> )到备份去networking的地方。 我相信用户SQL Server实例正在运行,因为需要对目标机器进行写入访问,我不认为它将使用您的帐户,尽pipe通过Windows集成安全性login,所以你需要先安排。