我在远程数据中心有一台专用的 Windows Server,我的网站和 Microsoft SQL Server 数据库一起在那里运行。数据库有 50+ GB,我想对数据库进行本地备份。问题是如何从远程服务器传输巨大的备份文件。我尝试过常规 FTP 客户端(如 Filezilla)和 WinSCP,但两者都无法处理大文件。在这种情况下还有其他可靠的替代方案吗?我计划自动执行该过程并每周末下载备份。
答案1
如果您还没有尝试过,您可以使用 SQL Management Studio 对数据库文件进行计划备份。我从未尝试过将如此大的文件备份到远程站点,但我曾让它在单独的作业中处理远程站点和比 50 GB 大得多的文件。
或者,如果失败了,你试过 robocopy 吗?Robocopy 应该可以“正常工作”,并且易于编写脚本,当你使用 VB 或 Powershell(或任何其他程序)编写脚本时,你还可以添加一些电子邮件通知来通知成功和失败。
或者说 DFS?(您没有说 Windows 是哪个版本,但 DFS 在 2003 和 2008 下有了很大改进。)老实说,我很想建立一个 DFS 共享,其唯一目的是将数据库的差异更改从服务器传输到远程备份位置。每天在后台使用 BITS 传输几百 MB 的更改似乎比每次想要获取副本时移动整个 50 GB 文件要好得多。
编辑:我之前没有明确说过,但经过一番思考,我觉得也许我应该说...你绝对不要想要在 SQL 的工作文件夹中创建一个 DFS 命名空间,数据库文件当前位于该文件夹中。如果采用 DFS 路径,则需要对数据库文件进行本地复制/备份并共享那通过 DFS 复制文件。(并将备份/复制作业设置为覆盖现有文件,否则 DFS 每次都会复制整个文件,而不仅仅是更改部分。)
另外,所有这些选项都应该在 Windows 中可用,而不必依赖第三方工具。
答案2
您在使用 FTP 和 WinSCP 时遇到了什么问题?
如果传输在 4GB 左右失败,请确保您正在传输到 NTFS 文件系统。其他文件系统对文件大小有限制。
如果由于网络连接中断而失败,您可以设置任一选项以轻松恢复。
您没有提到您当地的互联网连接类型。但是,如果我们假设有 5mbit 电缆或 DSL 连接,则传输需要一天多一点的时间,因此可以像这样进行每周备份。
另一种方法是设置本地 SQL 服务器并设置复制。初始同步将需要相当长的时间,但之后您应该会获得相当最新的同步自动发生。