2

我在尝试为 Windows Server 编写的自动化脚本中复制大型数据库文件(~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>
4

5 回答 5

1

使用XCOPYwith/J option来避免大文件的网络故障。不过,这仅适用于 2008 R2 和 Windows 7。这解决了我的超时问题。

请检查。

于 2014-03-12T13:40:16.003 回答
1

我想出了如何解决这个问题!

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

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

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

于 2011-04-29T16:56:56.637 回答
0

您是否尝试过使用旧的拖放方式复制文件?

我会这样做一次,以确保它不是您的网络故障。确保它有效,然后尝试查看其他解决方案。

1) 确保您的目标驱动器是 NTFS 而不是 Fat32。
2)检查复制失败时,是否总是在同一点?( IE 如果它在 2gb 之后总是失败)

于 2010-02-04T16:53:01.747 回答
0

你试过xcopy吗?它适用于大文件和递归副本。 文档

此外,根据我自己使用网络驱动器和命令行的经验,这是一种痛苦和错误。映射网络驱动器并使用诸如 z:\ 之类的驱动器号也是一个好主意

xcopy /K /R /E /I /S /C /H /G /X /Y s:\*.* t:\

/K 复制属性。普通 Xcopy 将重置只读属性。

/R 覆盖只读文件。

/E 复制目录和子目录,包括空目录。

/I 如果目标不存在并且复制多个文件,则假定目标必须是一个目录。

/S 复制目录和子目录,除了空目录。

/C 即使发生错误也继续复制。

/H 也复制隐藏文件和系统文件。

/Y 禁止提示确认您要覆盖现有的目标文件。

/G 允许将加密文件复制到不支持加密的目标。

/X 复制文件审核设置(隐含 /O)。

于 2010-02-04T16:55:55.500 回答
0

eseutil 第二部分的格式应该是:

/d\\server\folder\filename

注意后面没有空格/d

于 2018-07-01T20:40:26.513 回答