Jaki jest najprostszy i najszybszy sposób przesyłania dużych plików przez sieć Windows?

14

Mam komputer z systemem Windows Server 2000 z systemem MS SQL Server, który przechowuje ponad 20 GB danych. Kopia zapasowa bazy danych jest codziennie tworzona na drugim dysku twardym. Chcę przenieść te pliki kopii zapasowej na inny komputer, aby zbudować inny serwer testowy i ćwiczyć odzyskiwanie. (kopia zapasowa nigdy nie została przywrócona przez prawie 5 lat. Nie mów o tym mojemu szefowi!)

Mam problem z przesyłaniem tego ogromnego pliku przez sieć. Próbowałem zwykłego kopiowania sieciowego, pobierania apache i ftp. Każda metoda, którą próbowałem, kończy się niepowodzeniem, gdy ilość przesyłanych danych osiąga 2 GB. Ostatnim razem, gdy pomyślnie przesłałem plik, był to zewnętrzny dysk twardy podłączony do USB. Ale chcę wykonywać to zadanie rutynowo, najlepiej automatycznie.

Zastanawiacie się, jakie jest najbardziej pragmatyczne podejście do tej sytuacji?

Wzgląd
źródło
Jakiego systemu plików używasz na dysku, na który przenosisz?
Marko Carter
NTFS. Czy to ważne?
Sake
Ma to znaczenie, ponieważ docelowy system plików mógł mieć limit rozmiaru pliku 2 GB, który mógł powodować błąd zawsze przy 2 GB. Ale to NTFS, więc prawdopodobnie nie o to chodzi :)
Lucas
Tak, założę się o pieniądze, że tak naprawdę nie jest to NTFS.
Brent Ozar

Odpowiedzi:

16

Awaria przewidywalna na poziomie 2 Gb wydaje się, że winny jest docelowy system plików ... Czy oba są w systemie plików NTFS? Czy przepływasz przez jakąkolwiek kompresję (zip używany do awarii na granicach 2 GB) ((apache wykonuje kompresję))

Skopiowałem wiele plików o wielkości ponad 20 Gb za pomocą robocopy (jak wspomnieli inni), ale unikałbym używania przełącznika / MIR, dopóki nie będziesz mieć pewności, że kopia robi to, co chcesz - ponieważ spowoduje to usunięcie plików i skopiowanie ich.

SMB cierpi z powodu jednego pakietu w określonym czasie, więc często jest to wolniejszy sposób kopiowania plików - masz możliwość kopiowania za pomocą push lub pull. Osobiście wolę metodę push (kopiowanie jest inicjowane przez źródło).

Iain
źródło
3
Kompletnie się zgadzam. 2 GB jest powszechnym wąskim gardłem w systemach plików FAT. Naprawdę sprawdziłbym dokładnie, aby upewnić się, że nie próbujesz skopiować do systemu plików FAT.
Brent Ozar
myślałem, że to 4 GB?
Journeyman Geek
10

Narzędzie MS Exchange eseutil to doskonałe narzędzie do szybkiego kopiowania dużych plików w sieci:

eseutil / y plik_źródłowy / d plik_doc.

this.matthew
źródło
+1 Nigdy nie myślałem, że użyję tego do niczego innego niż Exchange! Będę musiał to zrobić.
squillman
3
Z technet.microsoft.com/en-us/library/aa998673(EXCHG.80).aspx „Tryb kopiowania plików programu Exchange Server (Eseutil.exe) / Y jest zoptymalizowany do wydajnego kopiowania bardzo dużych plików. Możesz użyć Przełącznik / Y, aby skopiować plik bazy danych lub plik dziennika. Jednak tryb ten nie jest odpowiedni jako narzędzie do kopiowania ogólnego przeznaczenia ”
Goyuix,
+1, to prawdopodobnie najbardziej niesamowity efekt uboczny narzędzia do konserwacji baz danych, o jakim kiedykolwiek słyszano!
Massimo,
6

Bardzo polecam korzystanie z bezpłatnego narzędzia RichCopy . Jest wielowątkowy i może wstrzymywać i wznawiać operacje kopiowania plików. Miałem bardzo dużo szczęścia, używając go do przesyłania plików między serwerami.

Moje trzy najważniejsze wskazówki dotyczące korzystania z RichCopy

  1. Jeśli kopiujesz jeden lub kilka dużych plików, ustaw atrybut „Kopiuj plik” na więcej niż „1”. Zużywa zasoby, ale szybciej kopiuje duże pliki

  2. Jeśli kopiujesz wiele plików, ustaw atrybuty „Numer wątku” na 10-10-1. Spowoduje to szybsze kopiowanie wielu plików

  3. Jeśli kopiujesz przez podejrzane połączenie. Możesz ponownie uruchomić pobieranie, a ono znajdzie pliki, których nie udało się uzyskać za pierwszym razem.

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

notandy
źródło
5

Jeśli chodzi o narzędzia do kopiowania plików, TeraCopy jest przyjemnym opartym na graficznym interfejsie użytkownika (nie wierszem poleceń), który może umieszczać w kolejce wiele plików, obsługuje wstrzymywanie i wznawianie, może dynamicznie zmieniać rozmiar bufora w celu optymalizacji prędkości i może opcjonalnie zastąpić domyślny Eksplorator Windows kopiuj / przenieś z własnym.

Lucas
źródło
3

Robocopy z opcją / MIR jest bardzo przydatny do szybkiego i brudnego tworzenia kopii zapasowych między komputerami. Możesz znaleźć robocopy w zestawie Windows Server 200X Resouce Kit

MIR przeniesie zawartość jednego katalogu na inny serwer. Skopiuje tylko te pliki, które uległy zmianie.

Cefas
źródło
2
/ Z to także słodka opcja. Umożliwia wznowienie nieudanych kopii. To uratowało mi życie przez powolne sieci
Nick Kavadias
2

Najbardziej pragmatycznym rozwiązaniem powtarzających się przetasowań dużych plików kopii zapasowych programu SQL Server jest użycie kompresji kopii zapasowej innej firmy lub wbudowanej kompresji kopii zapasowej programu SQL Server 2008 Enterprise Edition.

Istnieje kilka różnych dostawców. Pracuję dla Quest Software, twórców LiteSpeed, ale nie jestem tu, by coś sprzedawać. Chcesz sprawdzić wszystkie dostępne produkty i zdecydować, co najlepiej odpowiada Twoim potrzebom. Oto najnowszy post na blogu dotyczący konkretnie LiteSpeed, ale te same pojęcia dotyczą również innych produktów:

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

Brent Ozar
źródło
1

Czy kopiujesz plik przez sieć LAN lub przez jakieś połączenie WAN, takie jak ADSL? Zakładam, że jest to sieć WAN, ponieważ 20 GB nie jest dużym plikiem do skopiowania przez sieć LAN. Codziennie kopiuję wiele takich plików.

Jeśli jest to połączenie WAN, to sposobem, w jaki to robię, jest użycie rsync w wersji Cygwin.

JR

John Rennie
źródło
1

Miałem awarie transferów sieciowych na poziomie około 2 GB - okazało się, że to wadliwa karta sieciowa.

Łazłów
źródło
3
wadliwa karta sieciowa zawsze zawodziła około 2 GB? dziwne!
Lucas
może ta karta sieciowa przyspieszyła sprzęt TCP z błędem?
qbeuek
Nie jestem w 100% pewien, co było nie tak z samą kartą sieciową, ale była to niemarkowa sprawa z serwisu eBay - jak tylko ją wymieniłem, transfery sieciowe uległy znacznej poprawie bez spadku łączności.
Lazlow
1

Jest trochę późno, ale polecam opcję aplikacji do tworzenia kopii zapasowych i przywracania innych firm. Używamy Red Gate SQL Backup ( www.red-gate.com ), ma kompresję i alternatywne opcje lokalizacji w GUI. Uzyskuję oszczędność kompresji średnio o 80% - więc przenosisz tylko 20% rzeczywistej wielkości db. Obsługuje także szyfrowanie, dzięki czemu można go używać w sieci WAN bez obaw o przechwycenie.

Jest w pełni programowalny, dzięki czemu może działać automatycznie w wybranym przez Ciebie cyklu.

GUI pozwala także konfigurować wysyłanie dziennika i administrować nim.

Darmowa wersja próbna dostępna powyżej.

Ojcze
źródło
0

Nie mam doświadczenia z tak dużym plikiem, ale czy mógłbyś użyć robocopy lub nawet xcopy z opcją / Z, która twierdzi, że można ją zrestartować. Wydaje się, że jest to przeznaczone dla dużych kopii plików, w których sieć nie jest niezawodna.

Knox
źródło
0

Użyłem robocopy do ponad 1 GB i nie miałem problemów. ss64.com ma dobre objaśnienie przełączników. Nie mogę jednak opublikować linku :-(

JoeOD
źródło
0

Zła odpowiedź ..

Użyj Netcat . Samouczek zorientowany na uniks do przesyłania plików można znaleźć tutaj . Możesz dodatkowo przyspieszyć:

  1. Kompresuj po stronie nadawcy i dekompresuj po stronie docelowej. (uchwyt okna odpowiada ekwiwalentowi gzip w środkowej linii wiersza poleceń).
  2. Wybierz wysyłanie danych przez udp zamiast przez tcp (hej, kogo to obchodzi o integralność danych ?? !!)

Żartując na bok, netcat jest prawdopodobnie najszybszym sposobem przesyłania dużych plików w sieci LAN. Ponieważ suma kontrolna nie jest wykonywana, możesz zrobić sumę MD5 pliku przed wysłaniem go i porównać z sumą MD5 otrzymanego pliku.

Używałem często netcata w ten sposób, nigdy nie widziałem, żeby zawiódł, nigdy nie widziałem, żeby nie mógł maksymalnie rozwinąć sieci.

Mateusz
źródło
Może Netcat jest łatwy i szybki w użyciu, ale nie uzyskałem z nim dużych prędkości. IIRC może osiągnąć zaledwie 2-3 MB / s. Jeśli chodzi o prędkość, to jest do bani.
Cristian Ciupitu
Czuję, że nadchodzą testy wydajności ... Zobaczę, czy znajdę czas na porównanie nfs, cifs, ftp i nc w mojej lokalnej sieci domowej.
Matthew
Jeśli netcat daje tylko 2-3 MB / s, twój system jest uszkodzony. ftp i netcat powinny działać identycznie. NFS i CIF są również zwykle mniej więcej takie same.
Justin
0

Być może warto podzielić plik na mniejsze części jako rozwiązanie krótkoterminowe, dopóki nie uda się zlokalizować problemu. W przeszłości mieliśmy podobne problemy, a ftp zawsze dla nas pracował

beakersoft
źródło
0

Jeśli są to kopiowane pliki .bak SQL, zdecydowanie zalecamy wykonanie jednej z poniższych czynności, aby zmniejszyć pliki przed skopiowaniem:

  • Zmniejsz bazę danych i skróć dziennik przed uruchomieniem tworzenia kopii zapasowej. LUB
  • Skopiuj plik .bak przed skopiowaniem. Pliki .bak SQL kompresują się znacznie, jeśli nie używasz w pełni przydzielonego miejsca w plikach danych i dzienników.

Może to wyeliminować potrzebę alternatywnej metody kopiowania dużych plików.

squillman
źródło
Próbowałem tego. Niestety niewiele pomocy.
Sake
Po prostu z ciekawości, to ... Czy masz ustawiony automatyczny wzrost na wartość w bajtach lub%? A może w ogóle masz ustawiony autogrow?
squillman
0

Nie sądzę, że znalezienie czegoś do szybszego transferu jest twoim problemem, sprawdź dokładnie, czy docelowy system plików NIE jest TŁUSZCZEM, jak powiedzieli inni. Upewnij się również, że karty sieciowe po obu stronach mają zaktualizowane sterowniki i nie zachowują się inaczej.

Powiedziawszy to, czy przenosisz wiele wielu małych plików, czy tylko kilka dużych? Widziałem problemy z kontrolerem RAID, gdy próbowałem przenieść miliony małych plików.

Nie sądzę, abyś miał problem z automatyzacją tego, gdy dowiesz się, co jest przyczyną awarii. Może pomóc wymienić więcej szczegółów na temat twojego sprzętu i wszelkich istotnych błędów, które możesz zobaczyć w przeglądarce zdarzeń.

jhayes
źródło
0

Czy próbowałeś użyć połączenia eSATA z zewnętrznym dyskiem twardym? Połączenia palą szybko (3 gigabit!) I powinny być w stanie przenieść ten plik w mgnieniu oka!

Jaką prędkość ma twoja karta sieciowa na serwerze 10/100 lub 10/100/1000? Jak wygląda przepustowość sieci i przełącznik serwera podczas kopiowania pliku? Jak wygląda przepustowość sieci miejsca docelowego (serwera?) Podczas kopiowania? Czy próbowałeś połączyć razem 2 karty sieciowe? Czy sterowniki karty sieciowej są aktualne? Czy system BIOS jest aktualny?

Istnieje wiele rzeczy, które mogą stanowić problem przy przesyłaniu plików. Dopilnowanie, aby sterowniki sprzętu i system BIOS były aktualne, może naprawdę coś zmienić.

-JFV

JFV
źródło
0

Najprostszy i najszybszy sposób: zewnętrzne dyski USB i chodzenie.

Mój sposób: użyj rsync. Jeśli kopia nie powiedzie się, po prostu uruchom ją ponownie, a rozpocznie od miejsca, w którym została.


źródło
0

Inną sprawą do sprawdzenia byłoby sprawdzenie, czy usługa przydziału jest skonfigurowana na serwerze docelowym; Myślę, że używa 2 GB jako domyślnego przydziału na użytkownika.

Jason Cumberland
źródło