我在尝试为 Windows 服务器编写的自动化脚本中复制大型数据库文件 (~100GB) 时遇到问题。我尝试过使用“copy”、“robocopy”,甚至“eseutil”。

我的脚本在 Windows 2008 Server(文件的目标)上运行,并从 Windows 2003 Server(文件的源)中提取。

我已经尝试更改 IRPStackSize 注册表设置,以及 HKLM/SYSTEM/CurrentControlSet/Control/SessionManager/MemoryManagement 配置单元中的两个注册表设置。这一切都是在 2008 服务器上完成的,重新启动后没有任何效果。有没有人有好的解决方法?

Copy 和 Robocopy 都给我这个:

服务器存储空间不足,无法处理此命令。

Eseutil.exe 给我这个:

H:\TempSQLBackups>eseutil /y \\SRC_SERVER\SQL_BACKUPS\BIG_DB.BAK /d H:\TempSQLBackups\BIG_DB.bak 
 
Extensible Storage Engine Utilities for Microsoft(R) Exchange Server 
Version 08.01 
Copyright (C) Microsoft Corporation. All Rights Reserved. 
 
Initiating COPY FILE mode... 
     Source File: \\SRC_SERVER\SQL_BACKUPS\BIG_DB.BAK 
Destination File: H:\TempSQLBackups\BIG_DB.bak 
 
                      Copy Progress (% complete) 
 
          0    10   20   30   40   50   60   70   80   90  100 
          |----|----|----|----|----|----|----|----|----|----| 
          ........FAILURE: ReadFile: The specified network name is no longer available. 
 
 
Operation terminated unsuccessfully after 11336.16 seconds. 
 
 
H:\TempSQLBackups> 

请您参考如下方法:

我想出了解决办法!

使用 LINUX 机器通过 samba 挂载源和目标目录/驱动器并通过网络复制它们。就个人而言,我使用 rsync,因为它会重新创建目录结构并且只复制不存在或不同的文件。因此,您可以随时停止和/或重新开始而不会丢失您的进度。

我不敢相信我们还在为这个垃圾操作系统付钱给微软。我有类似的问题,除了这个似乎没有其他解决办法。它有点慢,但不会像在 native 上那样慢,因为它每次都会失败。

有一次我认为 robocopy 肯定会使用/IPG:xx 选项(InterPacketGap 以毫秒为单位)来完成它。没有。它只是延长堆栈溢出和远程控制台锁定。我想,也许,微软在这个操作系统上做得对。 Win2K8 非常可靠。啊! Windoze 适用于工作站。对于服务器,您需要一个服务器操作系统而不是修补程序代码。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!