是否有可能从Linux命令行中备份MS SQL数据库?

是否有可能从Linux命令行创build远程Microsoft SQL Server数据库的本地备份文件?

我知道我可以从Windows命令行使用SQLCMD ,但从一个Linux的盒子是可能的?

当您从Windows命令行使用sqlcmd发出备份命令时,您正在告诉服务器备份数据库。 sqlcmd只是传递命令; 它并不真正知道你要求SQL Server做什么。 如果其他工具以其他方式工作,我会感到惊讶。

SQL Server希望将备份(如果需要)写入本地存储(具有驱动器号的东西,如c:\ temp \ mybackupdir)或UNCpath(看起来像\ hal9000 \ mybackupshare)。

只要Windows可以欺骗SQL Server使其认为它是“真正的”本地驱动器,本地path就可能是iSCSI设备。 SQL Server中没有内置的nfs,ftp,scp或者类似的支持。 我知道和/或假定有软件可以使nfs或ftp“共享”看起来像本地path。 我不太确定SCP。 没有原始的数据输出,你可以netcat到一个文件,无论是。

另一个常见的问题是,在Windows上,驱动器映射是每个用户。 这意味着您可以login到该Windows机器,永久映射R驱动器(或任何驱动器)与存储的凭据和SQL Server将不会看到映射,因为SQL Server服务可能运行在不同的帐户下。

UNCpath可能是Samba服务器上的一个共享,可能与您运行* nix命令工具的主机位于同一主机上。

您必须注意bitplayer提到的问题,但是您可以在FreeTDS中使用Linux远程运行SQL。 还有一个Perl模块来运行它: http : //www.perlmonks.org/?node_id=392385 。

您可以使用它来远程运行执行备份所需的SQL。 然后,您可以在Linux中安装一个Windows共享来提取备份文件,除非您有另一种方法将备份文件放到您想要的位置。

searchSQL服务器的ODBC驱动程序以在您的操作系统上运行。 使用这个ODBC,你可以连接(提供你有权限),并发送备份命令到SQL服务器。 如果您可以将UNCpath映射到本地驱动器,则可以备份到此位置。