我们一直在使用 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 for host 选项时,我们得到“登录失败”。使用 MS SQL Server Management Studio,我们可以使用 Windows 身份验证登录到另一台服务器,因为我的机器和另一台主机使用相同的用户名和相同的密码。
当我从 MGMT Studio 控制台运行备份语句时,备份将保存到另一台主机的磁盘,而不是将备份传输到客户端计算机。有什么想法可以从不同于 mssql 引擎本身的另一台主机备份 MSSQL 数据库吗?
您应该在 -s 参数中指定服务器名称,而不是 -H,尽管这仍将备份到运行 SQL 服务的服务器。
根据我的经验,SQL Server 对在网络驱动器上进行操作很挑剔,但您可以尝试将 UNC 路径 (
\\<server>\<share>\<backup_file>
) 指定到您希望备份在网络上的位置。我相信 SQL Server 实例正在运行的用户需要对目标计算机的写访问权限,尽管通过 Windows 集成安全性登录,我认为它不会使用您的帐户,因此您需要先进行安排。