通过网络将MSSQL数据库备份到客户端本地磁盘

通过网络将MSSQL数据库备份到客户端本地磁盘

我正在尝试MSSQL从 Linux 备份服务器。我可以使用tsql(来自 freetds 项目)连接到服务器,我什至可以使用备份数据库命令备份服务器上的数据库,但我无法将此备份下载到计算机上我用来连接到MSSQL服务器。

如果这是一台mySQL服务器,我可以使用下载数据库的备份mysqldump。我可以为 Linux 中的 MSSQL 服务器做类似的事情吗?

答案1

在 Linux 计算机上安装 mssql-tools 包,其中包括 sqlcmd 实用程序。您可以使用适用于您的 Linux 发行版的包管理器来安装它。

安装 mssql-tools 后,您可以使用以下命令执行备份:

sqlcmd -S <server_name> -U <username> -P <password> -Q "BACKUP DATABASE <database_name> TO DISK='<backup_file_path>'"

将 <server_name> 替换为 SQL Server 实例的名称或 IP 地址以及访问服务器的相应凭据,将 <database_name> 替换为要备份的数据库的名称,将 <backup_file_path> 替换为所需的位置和文件名用于备份文件。

例如:

sqlcmd -S localhost -U sa -P mypassword -Q "BACKUP DATABASE MyDatabase TO DISK='/backup/MyDatabase.bak'"

该命令将执行并执行数据库备份。生成的备份文件将保存到指定位置。

请注意,您可能需要根据特定的 SQL Server 配置和身份验证方法调整命令。此外,请确保运行 sqlcmd 命令的用户具有执行备份操作的适当权限。

创建备份文件后,您可以使用各种方法(例如 SCP、SFTP 或任何其他文件传输协议)将其下载到本地计算机,具体取决于您的网络设置和首选项。

答案2

这个问题关于SO建议一种可能的方法:将数据从 MSSQL 转储到 MySQL。然后你就可以使用你熟悉的MySQL工具了。

对于 MSSQL -> MySQL 转储,有几种建议的方法,因此请选择您的方法。

答案3

您无法使用 mysql 客户端连接到 mssql 服务器。 MSSQL 是基于 Windows 的 SQL 数据库服务,而 MySQL 是完全不同的协议,MSSQL 是完全不同的协议。正是 TDS 协议将两者分开。如果你想从 Unix 上的工具连接到 MSSQL 服务,那么有很多这样的工具。您可以使用 FreeTDS、PyMSSQL、ODBC/JDBC 方法。

如果您正在寻找一些现成的方法工具,那么我知道的工具很少:

http://sqldump.sourceforge.net/

http://sqlbackupandftp.com/

看看他们。

脆弱,

mysqldump 实用程序支持数据库备份文件到本地磁盘位置,但 mssql 或 sybase 似乎没有直接提供这种灵活性。然而,在 MSSQL 中,我们可以将数据库备份文件写入 UNC 路径(例如网络共享),这些路径也可以称为本地安装在 mssql 数据库服务器上的远程文件系统路径。还可以直接从 SQL 命令本身支持 ftp BACKUP DATABASE,因此可以将数据库备份文件作为流上传到 ftp 上传位置。不过,仍需考虑带宽差异和协议限制。如果您可以在本地计算机上设置 winbind/smb 共享,并且可以使其在工作组/AD 域中可用,然后可由 MSSQL 服务器访问,那么使用 UNC 路径会很好;前提是有网络带宽限制。如果是本地的,我会选择它,以确保覆盖所有安全要素。

如果是 ftp,那就很简单,因为 ftp 管理完全是本地的,您可以在 ftp 文件系统区域限制上传路径。您无需担心 samba 加入/AD 用户要求等问题。只是 ftp 服务作为纯粹的网络位置,也许会强制执行安全权限。顺便说一句,请确保您的转储是安全的,如果是生产,我将加倍确保它们的安全:-)

相关内容