将 .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 数据库文件从备份位置移动到另一台服务器的主要内容,如果未能解决你的问题,请参考以下文章