Какой самый простой и быстрый способ передачи большого файла через сеть Windows?

У меня есть машина с Windows Server 2000 под управлением MS SQL Server, которая хранит более 20 ГБ данных. База данных резервируется каждый день на второй жесткий диск. Я хочу перенести эти файлы резервных копий на другой компьютер для создания другого тестового сервера и для практики восстановления. (Резервная копия фактически не восстанавливалась в течение почти 5 лет. Не говорите об этом моему боссу!)

У меня проблемы с передачей этого огромного файла по сети. Я пробовал обычное сетевое копирование, загрузку apache и ftp. Любой метод, который я пробовал, заканчивался неудачей, когда объем передаваемых данных достигает 2 ГБ. В последний раз, когда я успешно передавал файл, он был подключен через внешний жесткий диск, подключенный по USB. Но я хочу выполнять эту задачу регулярно и желательно автоматически.

Интересно, что является наиболее прагматичным подходом к этой ситуации?

23 ответа

Решение

Прогнозируемый сбой на 2 Гбайт звучит так, как будто виновата целевая файловая система... Оба на NTFS? Пропускаете ли вы через какое-либо сжатие (zip раньше не работал на границах 2 ГБ) ((apache выполняет сжатие))

Я скопировал многие файлы размером более 20 Гб с помощью robocopy (как уже упоминали другие), но я бы не стал использовать ключ /MIR, пока вы не убедитесь, что копия выполняется именно так, как вы хотите - поскольку она будет удалять и копировать файлы.

SMB страдает от одного пакета во времени, поэтому зачастую это медленный способ копирования файлов - у вас есть возможность копировать, используя push или pull. Лично я предпочитаю метод push (копирование инициируется источником).

Средство MS Exchange eseutil - отличная утилита для быстрого копирования больших файлов по сети:

eseutil / y source_file / d dest_file.

Я настоятельно рекомендую использовать бесплатную утилиту RichCopy. Он многопоточный и может приостанавливать и возобновлять операции копирования файлов. Мне очень повезло, используя его для передачи файлов между серверами.

Мои три главных совета по использованию RichCopy

  1. Если вы копируете один или несколько больших файлов, установите для атрибута "Копирование файла" значение больше 1. Он использует ресурсы, но копирует большие файлы быстрее

  2. Если вы копируете много файлов, установите для атрибутов "Номер потока" значение 10-10-1. Это скопирует несколько файлов быстрее

  3. Если вы копируете через хитрое соединение. Вы можете повторно запустить загрузку, и она найдет файлы, которые не удалось получить в первый раз.

http://blogs.technet.com/markdea/archive/2009/03/24/richcopy-is-it-the-new-sliced-bread.aspx

Что касается утилит для копирования файлов, TeraCopy - это хороший графический интерфейс (не командная строка), который может ставить в очередь множество файлов, поддерживает паузу и возобновление, может динамически изменять размер буфера для оптимизации скорости и, при желании, заменять Windows Explorer по умолчанию. копировать / перемещать со своим.

Robocopy с параметром /MIR очень полезен для быстрого и грязного резервного копирования между машинами. Вы можете найти robocopy в Windows Server 200X Resouce Kit

MIR будет зеркалировать содержимое одного каталога на другой сервер. Он будет копировать только файлы, которые были изменены.

Наиболее прагматичным решением для повторных перемешиваний больших файлов резервных копий SQL Server является использование стороннего продукта сжатия резервных копий или встроенного сжатия резервных копий SQL Server 2008 Enterprise Edition.

Там есть несколько разных поставщиков. Я работаю на Quest Software, создателей LiteSpeed, но я не собираюсь ничего продавать. Вы хотите проверить все продукты там и решить, что лучше для ваших нужд. Вот недавнее сообщение в блоге, посвященное конкретно LiteSpeed, но те же понятия применимы и к другим продуктам:

http://blogs.lessthandot.com/index.php/DataMgmt/DBAdmin/title-8

Попробуйте Бинфер. Однажды я с легкостью отправил 44 ГБ данных. Просто убедитесь, что на принимающем компьютере есть место на диске. Их сайт http://www.binfer.com/

У меня был сбой передачи по сети около отметки 2 Гб - это оказалось неисправной сетевой платой.

Вы копируете файл через локальную сеть или через какое-либо WAN-соединение, например ADSL? Я предполагаю, что это WAN, потому что 20 ГБ не большой файл для копирования по локальной сети. Я копирую много таких файлов каждый день.

Если это WAN-соединение, то я использую Cygwin-версию rsync.

JR

Я использую syncback ( http://www.2brightsparks.com/syncback/sbse.html) ежедневно для передачи файлов, в несколько раз больших, чем у вас. Никогда не было проблем с этим.

Немного поздно, но я бы порекомендовал стороннее приложение для резервного копирования и восстановления. Мы используем Red Gate SQL Backup ( http://www.red-gate.com/), он имеет параметры сжатия и альтернативного расположения в графическом интерфейсе. Я получаю экономию сжатий в среднем на 80% - так что вы переносите только 20% от фактического размера БД. Он также поддерживает шифрование, поэтому его можно использовать в глобальной сети без проблем перехвата.

Его полностью планируемое, поэтому может работать автоматически в цикле по вашему выбору.

Графический интерфейс также позволяет настраивать и администрировать доставку журналов.

Бесплатная пробная версия доступна на выше.

Если вы копируете эти SQL-файлы.bak, я настоятельно рекомендую выполнить одно из следующих действий, чтобы уменьшить ваши файлы перед копированием:

  • Сократите базу данных и обрежьте журнал до запуска резервного копирования. ИЛИ ЖЕ
  • Сожмите файл.bak перед копированием. Файлы.bak SQL сжимаются, если вы не используете полностью выделенное пространство в файлах данных и журналов.

Может устранить необходимость в альтернативном методе копирования больших файлов.

Другая вещь, которую нужно проверить, это посмотреть, настроена ли служба квот на целевом сервере; Я думаю, что он использует 2 ГБ в качестве квоты по умолчанию на пользователя.

Я настоятельно рекомендую ExtremeCopy для вашей задачи копирования, она очень быстро копирует файлы по моему опыту, перейдите на ее сайт, чтобы узнать больше www.easersoft.com

Большую часть времени я копирую столько данных, которые я переношу, на общий ресурс сервера, к которому прикреплены пользователи, поэтому я часто использую Replistor, www.emc.com/products/detail/software/replistor.htm. Он будет синхронизировать каталоги source и dest во время копирования и после него.

Я не думаю, что найти что-то для более быстрой передачи - ваша проблема, проверьте, чтобы ваша целевая файловая система НЕ ЖИРА, как говорили другие. Кроме того, убедитесь, что сетевые карты с обеих сторон имеют обновленные драйверы и в противном случае они не работают некорректно.

С учетом сказанного, вы перемещаете много много маленьких файлов или только несколько больших? Я видел проблемы с контроллером RAID при попытке переместить миллионы крошечных файлов.

Я не думаю, что у вас возникнут проблемы с автоматизацией, когда вы выясните причину сбоя. Это может помочь перечислить более подробную информацию о вашем оборудовании и любых соответствующих ошибках, которые вы можете увидеть в программе просмотра событий.

Я использовал robocopy для более чем 1 ГБ и не было никаких проблем. У ss64.com есть хорошее объяснение переключателей. Я не могу опубликовать ссылку, хотя:-(

Злой ответ..

Используйте Netcat. Unix-ориентированное руководство по передаче файлов можно найти здесь. Вы можете еще больше ускорить процесс:

  1. Сжать на стороне отправителя и распаковать на стороне назначения. (Окна, эквивалентные gzip в середине командной строки.)
  2. Выберите, чтобы отправить данные через UDP, а не по TCP (эй человек, который заботится о целостности данных??!!)

Помимо шуток, netcat, вероятно, самый быстрый способ передачи больших файлов по локальной сети. Поскольку контрольная сумма не указана, вы можете указать сумму MD5 файла перед отправкой и сравнить его с суммой MD5 полученного файла.

Я так часто использовал netcat, никогда не видел, чтобы он выходил из строя, никогда не видел, чтобы он тоже не мог максимально использовать сеть..

Вы можете использовать Binfer для компьютерного копирования. Это не зависит от ОС и очень быстро. Он также не имеет ограничения 2 ГБ. http://www.binfer.com/

У меня нет опыта работы с такими большими файлами, но не могли бы вы использовать robocopy или даже xcopy с параметром /Z, который претендует на перезапуск. Похоже, что это предназначено для больших копий файлов, где сеть ненадежна.

Вы пытались использовать подключение eSATA к внешнему жесткому диску? Соединения очень быстрые (3 гигабита!) И должны быть в состоянии передать этот файл в кратчайшие сроки!

Какова скорость вашей сетевой карты на сервере, 10/100 или 10/100/1000? Как выглядит пропускная способность и коммутатор сети сервера при копировании файла? Как выглядит пропускная способность сети в месте назначения (на сервере?) При копировании? Вы пытались объединить 2 сетевых карт вместе? Обновлены ли драйверы сетевой карты? BIOS актуален?

Есть много вещей, которые могут быть проблемой для передачи файлов. Убедиться, что драйверы оборудования и BIOS соответствуют современным требованиям, действительно может иметь значение.

-JFV

Самый простой и быстрый способ: внешние USB-диски и ходьба.

Мой путь: используйте rsync. Если копия не удалась, просто перезапустите ее, и она подберет то, что осталось.

Возможно, стоит разделить файл на более мелкие куски в качестве краткосрочного решения, пока вы не сможете точно определить проблему. У нас были проблемы, подобные этому в прошлом, и ftp всегда работал для нас

Другие вопросы по тегам