У меня есть машина с Windows Server 2000, на которой работает MS SQL Server, на котором хранится более 20 ГБ данных. Резервное копирование базы данных выполняется каждый день на второй жесткий диск. Я хочу перенести эти файлы резервных копий на другой компьютер, чтобы построить еще один тестовый сервер и для практики восстановления. (Бэкап не восстанавливался почти 5 лет. Не говори об этом моему боссу!)
У меня проблемы с передачей этого огромного файла по сети. Я пробовал обычное сетевое копирование, загрузку apache и ftp. Любой метод, который я пробовал, терпел неудачу, когда объем передаваемых данных достигал 2 ГБ. В последний раз я успешно перенес файл через внешний жесткий диск, подключенный к USB. Но я хочу выполнять эту задачу регулярно и желательно автоматически.
Интересно, какой подход в этой ситуации наиболее прагматичный?
Прогнозируемый сбой на 2 ГБ звучит так, как будто виновата целевая файловая система ... Оба они на NTFS? Вы пропускаете через какое-либо сжатие (zip используется для сбоя на границах 2 ГБ) ((apache выполняет сжатие))
Я скопировал много файлов размером более 20 ГБ с помощью robocopy (как упоминали другие), но я бы не стал использовать переключатель / MIR, пока вы не будете уверены, что у вас есть копия, делающая то, что вы хотите, - поскольку она удалит файлы, а также скопирует их.
SMB страдает от одного пакета за раз, поэтому часто это более медленный способ копирования файлов - у вас есть возможность копировать с помощью push или pull. Лично я предпочитаю метод push (копирование инициируется источником).
Инструмент MS Exchange eseutil - отличная утилита для быстрого копирования больших файлов по сети:
eseutil / y исходный_файл / d целевой_файл.
Очень рекомендую воспользоваться бесплатной утилитой RichCopy. Он многопоточный и может приостанавливать и возобновлять операции копирования файлов. Мне очень повезло с его использованием для передачи файлов между серверами.
Три моих главных совета по использованию RichCopy
Если вы копируете один или несколько больших файлов, установите для атрибута «Копирование файла» значение больше 1. Он использует ресурсы, но быстрее копирует большие файлы
Если вы копируете много файлов, установите для атрибута «Номер потока» значение 10-10-1. Это позволит быстрее скопировать несколько файлов
Если вы копируете изворотливое соединение. Вы можете повторно запустить загрузку, и она пойдет и найдет файлы, которые не удалось получить в первый раз.
http://blogs.technet.com/markdea/archive/2009/03/24/richcopy-is-it-the-new-sliced-bread.aspx
Что касается утилит копирования файлов, TeraCopy - это хороший графический интерфейс (не командная строка), который может ставить в очередь множество файлов, поддерживает приостановку и возобновление, может динамически изменять размер своего буфера для оптимизации скорости и может при желании заменить копирование / перемещение по умолчанию в Проводнике Windows на свои собственные.
Robocopy с параметром / MIR очень полезен для быстрого и грязного резервного копирования между машинами. Вы можете найти robocopy в Windows Server 200X Resouce Kit
MIR передаст MIR-копию содержимого одного каталога другому серверу. Он будет копировать только те файлы, которые были изменены.
Наиболее практичным решением для повторяющейся перетасовки больших файлов резервных копий SQL Server является использование стороннего продукта сжатия резервных копий или встроенного в SQL Server 2008 Enterprise Edition сжатия резервных копий.
Есть несколько от разных поставщиков. Я работаю в компании Quest Software, создателе LiteSpeed, но я здесь не для того, чтобы что-либо продавать. Вы хотите проверить все продукты и решить, что лучше всего подходит для ваших нужд. Вот недавнее сообщение в блоге, в котором говорится конкретно о LiteSpeed, но те же концепции применимы и к другим продуктам:
http://blogs.lessthandot.com/index.php/DataMgmt/DBAdmin/title-8
Это немного поздно, но я бы порекомендовал стороннее приложение для резервного копирования и восстановления. Мы используем Red Gate SQL Backup (www.red-gate.com), он имеет параметры сжатия и альтернативного расположения в графическом интерфейсе. Я получаю экономию сжатия в среднем 80% - так что вы переносите только 20% фактического размера db. Он также поддерживает шифрование, поэтому его можно использовать по WAN без опасений по поводу перехвата.
Его полностью настраиваемый, поэтому он может запускаться автоматически в цикле по вашему выбору.
Графический интерфейс также позволяет настраивать и администрировать доставку журналов.
Бесплатная пробная версия доступна по ссылке выше.
У меня произошел сбой сетевой передачи примерно на отметке 2 ГБ - это оказалась неисправная сетевая карта.
Вы копируете файл через локальную сеть или через какое-либо подключение к глобальной сети, например ADSL? Я предполагаю, что это WAN, потому что 20 ГБ - небольшой файл для копирования через LAN. Я копирую много таких файлов каждый день.
Если это WAN-соединение, то я использую версию rsync для Cygwin.
JR
Я использую синхронизацию ( http://www.2brightsparks.com/syncback/sbse.html ) ежедневно для передачи файлов размером в несколько раз больше вашего. Никогда не было проблем с этим.
Вы пробовали использовать подключение eSATA к внешнему жесткому диску? Соединения очень быстрые (3 гигабита!), И этот файл должен быть передан в кратчайшие сроки!
Какая скорость у вашей сетевой карты на сервере, 10/100 или 10/100/1000? Как выглядит пропускная способность сети и коммутатор сервера при копировании файла? Как выглядит пропускная способность сети места назначения (сервера?) При копировании? Вы пробовали объединить 2 сетевых адаптера вместе? Обновлены ли драйверы сетевой карты? Обновлен ли BIOS?
Есть много вещей, которые могут быть проблемой при передаче файлов. Убедитесь, что драйверы оборудования и BIOS обновлены, и это действительно может иметь значение.
-JFV
Я не думаю, что ваша проблема заключается в том, чтобы найти что-то для передачи быстрее, дважды проверьте, чтобы ваша целевая файловая система НЕ была FAT, как говорили другие. Кроме того, убедитесь, что на сетевых адаптерах с обеих сторон установлены обновленные драйверы и они не работают нестабильно.
С учетом сказанного, вы перемещаете много маленьких файлов или только несколько больших? Я видел проблемы с контроллером RAID при попытке переместить миллионы крошечных файлов.
Я не думаю, что у вас возникнет проблема с автоматизацией этого, если вы выясните, что вызывает сбой. Это может помочь перечислить более подробную информацию о вашем оборудовании и любых соответствующих ошибках, которые вы можете увидеть в средстве просмотра событий.
Если вы копируете файлы SQL .bak, я настоятельно рекомендую сделать одно из следующих действий, чтобы уменьшить ваши файлы перед копированием:
Может устранить необходимость в альтернативном методе копирования больших файлов.
Возможно, стоит разделить файл на более мелкие части в качестве краткосрочного решения, пока вы не сможете точно определить проблему. У нас были проблемы, подобные этой, в прошлом, и ftp всегда работал на нас.
Злой ответ ..
Использовать Netcat. Можно найти unix-ориентированный учебник по передаче файлов. Вот. Вы можете еще больше ускорить процесс:
Помимо шуток, netcat, вероятно, самый быстрый способ передачи больших файлов по локальной сети. Поскольку контрольная сумма не выполняется, вы можете захотеть вычислить сумму MD5 файла перед его отправкой и сравнить ее с суммой MD5 полученного файла.
Я много использовал netcat таким образом, никогда не видел, чтобы он терпел неудачу, никогда не видел, чтобы он не смог максимально использовать сеть ..
Я использовал robocopy для более чем 1 ГБ и не имел никаких проблем. ss64.com имеет хорошее объяснение переключателей. Я не могу опубликовать ссылку :-(
У меня нет опыта работы с таким большим файлом, но не могли бы вы использовать robocopy или даже xcopy с параметром / Z, который утверждает, что его можно перезапустить. Похоже, это предназначено для больших копий файлов, где сеть ненадежна.
Самый простой и быстрый способ: внешние USB диски и ходьба.
Мой способ: используйте rsync. Если копия не удалась, просто перезапустите ее, и она продолжит работу с того места, где она была.
Другая вещь, которую нужно проверить, - это увидеть, настроена ли служба квот на целевом сервере; Я думаю, что в качестве квоты по умолчанию на пользователя используется 2 ГБ.