将 .bak 数据库文件从备份位置移动到另一台服务器

Posted

技术标签:

【中文标题】将 .bak 数据库文件从备份位置移动到另一台服务器【英文标题】:Move .bak database file from backup location to another server 【发布时间】:2022-01-21 15:44:53 【问题描述】:

我的任务是将 .bak 文件从实时数据库中,从其备份位置移动到另一台服务器,然后将其重新导入测试环境。如果我复制并粘贴文件,它会很好地复制。如果我使用 robocopy、Copy-Item 或 7z 压缩然后复制,它会导入错误。更糟糕的是,它是实时数据库所在的 2003 服务器,因此将其备份到网络位置已被证明是困难的。只是想知道是否有更好的解决方案,因为我每天都需要这样做?提前谢谢..

【问题讨论】:

我真的推荐升级。 2005 5年多没有任何形式的支持;您完成这些升级计划的时间已经过去很久了。推迟它们只会让事情变得更难,因为您唯一的升级路径 (SQL Server 2012) 在 几个月 内就会失去支持。 【参考方案1】:

如果我复制并粘贴文件,它会很好地复制。如果我使用 robocopy、Copy-Item 或 7z 压缩然后复制,它会导入错误。 . .它是实时数据库所在的 2003 服务器

这很糟糕。您正在运行古老且不受支持的软件,并且您可能遇到存储问题或其他问题,并且应该将该环境视为可能非常糟糕。在那个年纪,你不应该尝试解决任何问题。

您应该制定计划,将生产数据库迁移到稳定且可支持的环境。不要试图解决症状。

【讨论】:

【参考方案2】:

如果测试环境服务器可以访问生产数据库备份,那么您不需要复制它,因为您可以直接从测试 SQL Server 实例中恢复它。

如果测试环境是隔离的,那么我不知道您如何进行复制和粘贴,除非您使用某种类型的远程连接软件。

我认为 ROBOCOPY 不能在您的 Windows Server 2003 版本上进行压缩。PowerShell 的 Copy-Item 也不能压缩。

因此,要么是 7zip 无法正确压缩,要么是您在复制文件时遇到了某种类型的网络问题导致 ZIP 文件损坏,或者是测试环境 IO 子系统存在磁盘 IO 问题。

您可以尝试不同的压缩软件,例如 Windows 附带的默认软件(右键单击、发送到、压缩文件)或您选择的其他软件。

SFTP 也可能是您的选择。

【讨论】:

【参考方案3】:

我通过以下方式解决了这个问题:

    在旧服务器上更新 7Zip(是的,我知道它真的很旧,我很想更新它,而不是我的电话 ?) 使用批处理文件压缩为 .7z 而不是 .Zip(这需要事务日志 YAYY) 将项目移动到新的 2016 服务器 解压文件

感谢您的帮助和建议?

【讨论】:

以上是关于将 .bak 数据库文件从备份位置移动到另一台服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何将本地数据库备份到另一台服务器上?

如何使用 ASP.NET 将文件从一台机器移动到另一台机器?

如何将 redis 数据库从一台服务器移动到另一台服务器?

如何将 redis 数据库从一台服务器移动到另一台服务器?

如何将lvm卷移动到另一台服务器中

如何在 PHP 中将上传的文件移动到另一台主机