Was ist der einfachste und schnellste Weg, um große Dateien über ein Windows-Netzwerk zu übertragen?

14

Ich habe einen Windows Server 2000-Computer mit MS SQL Server, auf dem über 20 GB Daten gespeichert sind. Die Datenbank wird täglich auf der zweiten Festplatte gesichert. Ich möchte diese Sicherungsdateien auf einen anderen Computer übertragen, um einen anderen Testserver zu erstellen und die Wiederherstellung zu üben. (Das Backup wurde fast 5 Jahre lang nicht wiederhergestellt. Erzählen Sie meinem Chef nichts davon!)

Ich habe Probleme beim Übertragen dieser riesigen Datei über das Netzwerk. Ich habe versucht, einfache Netzwerkkopie, Apache-Download und FTP. Jede Methode, die ich ausprobiert habe, schlägt fehl, wenn die übertragene Datenmenge 2 GB erreicht. Das letzte Mal, dass ich die Datei erfolgreich übertragen habe, war dies über eine externe USB-Festplatte. Aber ich möchte diese Aufgabe routinemäßig und vorzugsweise automatisch ausführen.

Fragen Sie sich, was der pragmatischste Ansatz für diese Situation ist?

Sake
quelle
Welches Dateisystem verwenden Sie auf der Festplatte, auf die Sie übertragen?
Marko Carter
NTFS. Ist das egal
Sake
Dies ist wichtig, da das Zieldateisystem möglicherweise eine Dateigrößenbeschränkung von 2 GB aufweist, die dazu führen kann, dass Ihr Fehler immer bei 2 GB liegt. Aber es ist NTFS, das ist es wahrscheinlich nicht :)
Lucas
Ja, ich wette mit Geld, dass es nicht wirklich NTFS ist.
Brent Ozar

Antworten:

16

Ein auf 2 GB vorhersehbarer Fehler klingt nach einer Schuld des Zieldateisystems ... Sind beide auf NTFS zurückzuführen? Leiten Sie durch eine Komprimierung (Zip wird verwendet, um an 2 GB-Grenzen zu versagen) (Apache macht Komprimierung)

Ich habe viele Dateien über 20 GB mit Robocopy kopiert (wie andere bereits erwähnt haben), aber ich würde die Verwendung der Option / MIR vermeiden, bis Sie sicher sind, dass die Kopie das tut, was Sie wollen - da sie sowohl Dateien löscht als auch kopiert.

SMB leidet unter einem zeitlichen Limit von einem Paket, daher ist das Kopieren von Dateien häufig langsamer - Sie haben die Möglichkeit, per Push oder Pull zu kopieren. Persönlich bevorzuge ich die Push-Methode (Kopie wird von der Quelle initiiert).

Iain
quelle
3
Stimme voll und ganz zu. 2 GB ist ein allgemeiner Engpass für FAT-Dateisysteme. Ich würde wirklich genau prüfen, ob Sie nicht versuchen, in ein FAT-Dateisystem zu kopieren.
Brent Ozar
Ich dachte, das war 4 GB?
Geselle Geek
10

Das MS Exchange-Tool eseutil ist ein hervorragendes Dienstprogramm zum schnellen Kopieren großer Dateien über ein Netzwerk:

eseutil / y Quelldatei / d Zieldatei.

this.matthew
quelle
+1 Ich hätte nie gedacht, das für etwas anderes als Exchange zu verwenden! Ich werde es versuchen müssen.
squillman
3
Von technet.microsoft.com/en-us/library/aa998673(EXCHG.80).aspx "Der Modus" Exchange Server-Datenbankdienstprogramme (Eseutil.exe) / Y-Datei kopieren "ist für das effiziente Kopieren sehr großer Dateien optimiert / Y-Schalter zum Kopieren einer Datenbank- oder Protokolldatei. Der Modus ist jedoch nicht als Allzweck-
Kopierdienstprogramm
+1, dies ist wahrscheinlich der beeindruckendste Nebeneffekt eines Datenbankwartungsprogramms, von dem je gehört wurde!
Massimo
6

Ich kann die Verwendung des kostenlosen Dienstprogramms RichCopy nur empfehlen . Es ist Multithread-fähig und kann Dateikopiervorgänge anhalten und fortsetzen. Ich hatte sehr viel Glück damit Dateien zwischen Servern zu übertragen.

Meine drei wichtigsten Tipps zur Verwendung von RichCopy

  1. Wenn Sie eine oder mehrere große Dateien kopieren, setzen Sie das Attribut "Dateikopie" auf mehr als "1". Es verbraucht Ressourcen, kopiert jedoch große Dateien schneller nach unten

  2. Wenn Sie viele Dateien kopieren, setzen Sie die Attribute 'Thread number' auf 10-10-1. Dadurch werden mehrere Dateien schneller kopiert

  3. Wenn Sie über eine zweifelhafte Verbindung kopieren. Sie können den Download erneut ausführen. Anschließend werden die Dateien gesucht, die beim ersten Mal nicht abgerufen wurden.

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

notandy
quelle
5

TeraCopy ist ein nützliches GUI-basiertes Dienstprogramm (keine Befehlszeile), das viele Dateien in die Warteschlange stellt, das Anhalten und Fortsetzen unterstützt, die Puffergröße dynamisch ändert, um die Geschwindigkeit zu optimieren, und optional die Standardeinstellungen von Windows Explorer ersetzt Kopieren / Verschieben mit eigenen.

Lucas
quelle
3

Robocopy mit der Option / MIR ist sehr nützlich für schnelle und fehlerhafte Sicherungen zwischen Computern. Sie finden Robocopy im Windows Server 200X Resouce Kit

MIR spiegelt den Inhalt eines Verzeichnisses auf einen anderen Server. Es werden nur geänderte Dateien kopiert.

Cephas
quelle
2
/ Z ist auch eine süße Option. Hiermit können Sie fehlgeschlagene Kopien fortsetzen. Dies hat mir über langsame Netzwerke das Leben gerettet
Nick Kavadias
2

Die pragmatischste Lösung für das wiederholte Mischen großer SQL Server-Sicherungsdateien ist die Verwendung eines Sicherungskomprimierungsprodukts eines Drittanbieters oder der integrierten Sicherungskomprimierung von SQL Server 2008 Enterprise Edition.

Es gibt mehrere von verschiedenen Anbietern. Ich arbeite für Quest Software, die Hersteller von LiteSpeed, aber ich bin nicht hier, um etwas zu verkaufen. Sie möchten sich alle Produkte ansehen und entscheiden, was für Ihre Anforderungen am besten geeignet ist. In einem kürzlich erschienenen Blog-Beitrag wird LiteSpeed ​​speziell behandelt. Die gleichen Konzepte gelten jedoch auch für andere Produkte:

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

Brent Ozar
quelle
1

Kopieren Sie die Datei über ein LAN oder über eine WAN-Verbindung wie ADSL? Ich nehme an, es ist ein WAN, weil 20 GB keine große Datei ist, die über ein LAN kopiert werden kann. Ich kopiere jeden Tag viele solcher Dateien.

Wenn es sich um eine WAN-Verbindung handelt, verwende ich die Cygwin-Version von rsync.

JR

John Rennie
quelle
1

Ich hatte Netzwerkübertragungen um die 2 GB-Marke fehlgeschlagen - es stellte sich als fehlerhafte Netzwerkkarte heraus.

Lazlow
quelle
3
fehlerhafte NIC immer um 2GB ausgefallen? komisch!
Lucas
Vielleicht hatte diese Netzwerkkarte mit einem Fehler in der Hardware TCP beschleunigt?
qbeuek
Ich bin mir nicht hundertprozentig sicher, was mit der Netzwerkkarte selbst los war, aber es war eine markenlose Angelegenheit von eBay. Sobald ich sie ersetzte, verbesserten sich die Netzwerkübertragungen erheblich, ohne dass die Konnektivität abfiel.
Lazlow
1

Es ist ein bisschen spät, aber ich würde eine Drittanbieter-Option zum Sichern und Wiederherstellen von Anwendungen empfehlen. Wir verwenden Red Gate SQL Backup ( www.red-gate.com ), es verfügt über Komprimierungs- und alternative Speicherortoptionen in der GUI. Ich erhalte eine durchschnittliche Komprimierungsersparnis von 80% - Sie übertragen also nur 20% der tatsächlichen Datenbankgröße. Es unterstützt auch die Verschlüsselung, sodass es über ein WAN verwendet werden kann, ohne Abhörsorgen zu haben.

Es ist vollständig planbar und kann daher automatisch in einem Zyklus Ihrer Wahl ausgeführt werden.

Über die GUI können Sie auch den Protokollversand konfigurieren und verwalten.

Kostenlose Testversion unter den oben genannten.

Fatherjack
quelle
0

Ich habe keine Erfahrung mit einer so großen Datei, aber könnten Sie Robocopy oder sogar xcopy mit der / Z-Option verwenden, die behauptet, neu startbar zu sein. Dies scheint für große Dateikopien gedacht zu sein, bei denen das Netzwerk nicht zuverlässig ist.

Knox
quelle
0

Ich habe Robocopy verwendet, um weit über 1 GB und hatte keine Probleme. ss64.com hat eine gute Erklärung der Schalter. Ich kann den Link allerdings nicht posten :-(

JoeOD
quelle
0

Böse Antwort ..

Verwenden Sie Netcat . Ein unix-orientiertes Tutorial zum Übertragen von Dateien finden Sie hier . Sie können die Dinge weiter beschleunigen, indem Sie:

  1. Auf der Senderseite komprimieren und auf der Zielseite dekomprimieren. (Chuck Windows entspricht gzip in der Mitte der Befehlszeile.)
  2. Wählen Sie, ob Sie Daten über udp anstatt über tcp senden möchten (hey man, wen interessiert die Datenintegrität? !!)

Spaß beiseite, Netcat ist wahrscheinlich der schnellste Weg, um große Dateien in einem LAN zu übertragen. Da keine Prüfsumme erstellt wurde, möchten Sie möglicherweise vor dem Senden eine MD5-Summe der Datei erstellen und diese mit der MD5-Summe der empfangenen Datei vergleichen.

Ich habe Netcat oft auf diese Weise benutzt, habe noch nie gesehen, dass es versagt, das Netzwerk zu maximieren.

Matthew
quelle
Vielleicht ist Netcat einfach und schnell zu bedienen, aber ich hatte damit keine hohen Geschwindigkeiten erreicht. IIRC kann es kaum 2-3 MB / s erreichen. Wenn es um Geschwindigkeit geht, saugt es zu viel.
Cristian Ciupitu
Ich habe das Gefühl, dass einige Leistungstests anstehen ... Ich werde sehen, ob ich die Zeit finde, um nfs, cifs, ftp und nc in meinem lokalen Heimnetzwerk zu vergleichen.
Matthew
Wenn netcat nur 2-3 MB / s zur Verfügung stellt, ist Ihr System defekt. ftp und netcat sollten beide identisch funktionieren. nfs und cifs sind normalerweise auch ungefähr gleich.
Justin
0

Vielleicht lohnt es sich, die Datei als kurzfristige Lösung in kleinere Teile aufzuteilen, bis Sie das Problem genau bestimmen können. Wir hatten in der Vergangenheit ähnliche Probleme, und FTP hat immer für uns funktioniert

beakersoft
quelle
0

Wenn es sich um SQL-.bak-Dateien handelt, die Sie kopieren, empfehle ich dringend, eine der folgenden Aktionen auszuführen, um Ihre Dateien vor dem Kopieren zu verkleinern:

  • Verkleinern Sie die Datenbank und kürzen Sie das Protokoll, bevor Sie die Sicherung ausführen. ODER
  • Komprimieren Sie die .bak-Datei vor dem Kopieren. SQL-.bak-Dateien werden stark komprimiert, wenn Sie nicht den vollständig zugewiesenen Speicherplatz in den Daten- und Protokolldateien verwenden.

Möglicherweise ist keine alternative Methode zum Kopieren großer Dateien erforderlich.

Squillman
quelle
Ich habe es versucht. Leider nicht viel Hilfe.
Sake
Nur aus Neugierde, dann ... Haben Sie Ihr Autogrowth auf einen harten Bytewert oder ein Prozent gesetzt? Oder haben Sie es sogar auf Autogrow eingestellt?
squillman
0

Ich denke nicht, dass es Ihr Problem ist, etwas zu finden, das schneller übertragen werden kann. Überprüfen Sie, ob Ihr Zieldateisystem NICHT FETT ist, wie andere bereits gesagt haben. Stellen Sie außerdem sicher, dass die NICs auf beiden Seiten über aktualisierte Treiber verfügen und ansonsten nicht unzuverlässig sind.

Verschieben Sie mit diesen Worten viele, viele kleine Dateien oder nur ein paar große? Beim Versuch, Millionen winziger Dateien zu verschieben, sind RAID-Controller-Probleme aufgetreten.

Ich glaube nicht, dass Sie Probleme haben werden, dies zu automatisieren, wenn Sie herausgefunden haben, was den Fehler verursacht. Es kann hilfreich sein, weitere Details zu Ihrer Hardware und relevante Fehler in der Ereignisanzeige aufzulisten.

jhayes
quelle
0

Haben Sie versucht, eine eSATA-Verbindung zu einer externen Festplatte herzustellen? Verbindungen sind schnell (3 Gigabit!) Und sollten in der Lage sein, diese Datei in kürzester Zeit zu übertragen!

Welche Geschwindigkeit hat Ihre Netzwerkkarte auf dem Server, 10/100 oder 10/100/1000? Wie sehen die Bandbreite und der Switch des Servernetzwerks aus, wenn Sie die Datei kopieren? Wie sieht die Netzwerkbandbreite des Zielorts (des Servers) beim Kopieren aus? Haben Sie versucht, zwei Netzwerkkarten zusammen zu stellen? Sind die Netzwerkkartentreiber auf dem neuesten Stand? Ist das BIOS auf dem neuesten Stand?

Es gibt viele Dinge, die das Problem bei der Dateiübertragung sein können. Wenn Sie sicherstellen, dass die Hardwaretreiber und das BIOS auf dem neuesten Stand sind, kann dies wirklich einen Unterschied bewirken.

-JFV

JFV
quelle
0

Der einfachste und schnellste Weg: Externe USB-Sticks und Walking.

Mein Weg: benutze rsync. Wenn der Kopiervorgang fehlschlägt, starten Sie ihn einfach neu und er wird dort weitermachen, wo er noch vorhanden ist.


quelle
0

Die andere zu überprüfende Sache wäre zu prüfen, ob der Kontingentdienst auf dem Zielserver eingerichtet ist. Ich denke, es verwendet 2 GB als Standardkontingent pro Benutzer.

Jason Cumberland
quelle