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

14

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

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

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

Ради
источник
Какую файловую систему вы используете на диске, на который переносите?
Марко Картер
NTFS. Это имеет значение?
Саке
Это важно, потому что целевая файловая система могла иметь ограничение на размер файла 2 ГБ, что могло всегда вызывать вашу ошибку в 2 ГБ. Но это NTFS, так что это, вероятно, не так :)
Лукас
Да, держу пари, что это не NTFS.
Брент Озар

Ответы:

16

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

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

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

Iain
источник
3
Полностью согласен. 2 ГБ является общим узким местом для файловых систем FAT. Я действительно проверю, чтобы убедиться, что вы не пытаетесь копировать в файловую систему FAT.
Брент Озар
я думал, что это было 4 ГБ?
подмастерье Geek
10

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

eseutil / y source_file / d dest_file.

this.matthew
источник
+1 Никогда не думал использовать это для чего-либо кроме Exchange! Я должен дать этому водоворот.
squillman
3
На сайте technet.microsoft.com/en-us/library/aa998673(EXCHG.80).aspx "Утилиты базы данных сервера Exchange Server (Eseutil.exe) / Y режим копирования файлов оптимизирован для эффективного копирования очень больших файлов. Вы можете использовать Переключатель / Y для копирования файла базы данных или файла журнала. Однако этот режим не подходит в качестве утилиты копирования общего назначения "
Goyuix
+1, это, пожалуй, самый удивительный побочный эффект утилиты обслуживания баз данных, о которой когда-либо слышали!
Массимо
6

Я настоятельно рекомендую использовать бесплатную утилиту 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

notandy
источник
5

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

Лукас
источник
3

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

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

Кифа
источник
2
/ Z также сладкий вариант. Это позволяет вам возобновить неудачные копии. Это спасло мне жизнь в медленных сетях
Ник Кавадиас
2

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

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

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

Брент Озар
источник
1

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

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

JR

Джон Ренни
источник
1

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

Lazlow
источник
3
неисправный NIC всегда выходил из строя около 2Гб? странно!
Лукас
может быть, у этого сетевого адаптера был аппаратно ускоренный TCP с ошибкой?
qbeuek
Я не уверен на 100%, что не так с самой сетевой платой, но это был не брендированный процесс от eBay - как только я заменил его, сетевые передачи значительно улучшились без потери соединения.
Lazlow
1

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

Питер Стуэр
источник
1

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

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

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

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

Fatherjack
источник
0

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

Нокс
источник
0

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

JoeOD
источник
0

Злой ответ ..

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

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

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

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

Мэтью
источник
Возможно, Netcat прост и быстр в использовании, но я не добился высоких скоростей. IIRC его едва достигает 2-3 МБ / с. Когда дело доходит до скорости, это слишком много.
Кристиан Чиупиту
Я чувствую, что начинаются некоторые тесты производительности ... Я посмотрю, смогу ли я найти время для сравнения nfs, cifs, ftp и nc в моей локальной домашней сети.
Мэтью
Если netcat дает только 2-3 МБ / с, ваша система сломана. ftp и netcat должны работать одинаково. НФС и СИФ также обычно примерно одинаковы.
Джастин
0

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

beakersoft
источник
0

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

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

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

squillman
источник
Я попробовал это. К сожалению, мало что поможет.
Саке
Просто из любопытства, тогда ... Вы установили свой автостраст в жесткое значение байта или%? Или у вас вообще есть автоподстройка?
squillman
0

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

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

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

jhayes
источник
0

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

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

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

-JFV

JFV
источник
0

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

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


источник
0

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

Джейсон Камберленд
источник