¿Cuál es la forma más simple y rápida de transferir archivos grandes a través de una red de Windows?


14

Tengo una máquina con Windows Server 2000 que ejecuta MS SQL Server que almacena más de 20 GB de datos. La base de datos se respalda todos los días en el segundo disco duro. Quiero transferir esos archivos de respaldo a otra computadora para construir otro servidor de prueba y para practicar la recuperación. (la copia de seguridad nunca se restauró en realidad durante casi 5 años. ¡No se lo cuentes a mi jefe!)

Tengo problemas para transferir ese archivo enorme a través de la red. He intentado una copia de red simple, descarga de apache y ftp. Cualquier método que probé termina fallando cuando la cantidad de datos transferidos alcanza los 2 GB. La última vez que transfirí el archivo con éxito, fue a través de un disco duro externo conectado al usb. Pero quiero realizar esta tarea de forma rutinaria y preferiblemente automática.

¿Se pregunta cuál es el enfoque más pragmático para esta situación?


¿A qué sistema de archivos está utilizando en el disco al que está transfiriendo?
Marko Carter

NTFS. ¿Eso es importante?
Sake

Es importante porque el sistema de archivos de destino podría haber tenido un límite de tamaño de archivo de 2 GB que podría haber causado su error siempre a 2 GB. Pero es NTFS, así que probablemente no sea eso :)
Lucas

Sí, apuesto dinero que en realidad no es NTFS.
Brent Ozar

Respuestas:


16

Una falla predecible a 2 Gb parece que el sistema de archivos objetivo es el culpable ... ¿Ambos están en NTFS? ¿Está pasando por alguna compresión (el zip solía fallar en límites de 2 gb) ((es apache haciendo compresión))

He copiado muchos archivos de más de 20 Gb usando robocopy (como otros han mencionado) pero evitaría usar el modificador / MIR hasta que esté seguro de que tiene la copia haciendo lo que desea, ya que eliminará los archivos y los copiará.

SMB sufre de un paquete único en un límite de tiempo, por lo que a menudo es la forma más lenta de copiar archivos: tiene la opción de copiar usando push o pull. Personalmente, prefiero el método push (la copia la inicia la fuente).


3
Totalmente de acuerdo. 2 gb es un cuello de botella común para los sistemas de archivos FAT. Realmente lo comprobaré de cerca para asegurarme de que no intentes copiar a un sistema de archivos FAT.
Brent Ozar

pensé que eran 4 gb?
Journeyman Geek

10

La herramienta MS Exchange eseutil es una excelente utilidad para copiar archivos grandes rápidamente en una red:

eseutil / y archivo_origen / d archivo_destino.


+1 ¡Nunca pensé usar eso para nada más que Exchange! Tendré que darle un giro.
Squillman

3
Desde technet.microsoft.com/en-us/library/aa998673(EXCHG.80).aspx "El modo de copia de las Utilidades de la base de datos de Exchange Server (Eseutil.exe) / Y está optimizado para copiar archivos muy grandes de manera eficiente. Puede usar el / Y cambiar para copiar un archivo de base de datos o archivo de registro. Sin embargo, el modo no es adecuado como una utilidad de copia de uso general "
Goyuix

¡+1, este es probablemente el efecto secundario más asombroso de una utilidad de mantenimiento de bases de datos que se haya escuchado!
Massimo

6

Le recomiendo usar la herramienta gratuita RichCopy . Es multiproceso y puede pausar y reanudar las operaciones de copia de archivos. He tenido mucha suerte usándolo para transferir archivos entre servidores.

Mis tres mejores consejos para usar RichCopy

  1. Si está copiando uno o algunos archivos grandes, establezca el atributo 'Copia de archivo' en más de '1'. Utiliza recursos pero copia archivos grandes más rápido

  2. Si está copiando muchos archivos, configure los atributos 'Número de subproceso' en 10-10-1. Esto copiará múltiples archivos más rápido

  3. Si está copiando a través de una conexión dudosa. Puede volver a ejecutar la descarga e irá a buscar los archivos que no logró obtener la primera vez.

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


5

En lo que respecta a las utilidades de copia de archivos, TeraCopy es una buena interfaz gráfica de usuario (no línea de comando) que puede poner en cola muchos archivos, admite pausas y reanudaciones, puede cambiar dinámicamente el tamaño de su búfer para optimizar la velocidad y, opcionalmente, puede reemplazar el valor predeterminado de Windows Explorer copiar / mover con lo suyo.


3

Robocopy con la opción / MIR es muy útil para realizar copias de seguridad rápidas y sucias entre máquinas. Puede encontrar robocopy en el Kit de recursos de Windows Server 200X

MIR enviará los contenidos de un directorio a otro servidor. Solo copiará los archivos que hayan cambiado.


2
/ Z también es una buena opción. Le permite reanudar copias fallidas. Esto me ha salvado la vida en redes lentas
Nick Kavadias,

2

La solución más pragmática para la combinación aleatoria repetida de grandes archivos de copia de seguridad de SQL Server es utilizar un producto de compresión de copia de seguridad de terceros o la compresión de copia de seguridad incorporada de SQL Server 2008 Enterprise Edition.

Hay varios por ahí de diferentes proveedores. Trabajo para Quest Software, los creadores de LiteSpeed, pero no estoy aquí para vender nada. Desea consultar todos los productos disponibles y decidir qué es lo mejor para sus necesidades. Aquí hay una publicación de blog reciente que habla específicamente de LiteSpeed, pero los mismos conceptos también se aplican a otros productos:

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


1

¿Está copiando el archivo a través de una LAN o mediante alguna conexión WAN como ADSL? Supongo que es una WAN porque 20 GB no es un archivo grande para copiar en una LAN. Copio muchos de esos archivos todos los días.

Si se trata de una conexión WAN, la forma en que lo hago es usar la versión Cygwin de rsync.

JR


1

Las transferencias de red fallaron alrededor de la marca de 2 GB; resultó ser una NIC defectuosa.


3
NIC defectuoso siempre falla alrededor de 2 GB? extraño!
Lucas

¿Tal vez esta NIC tenía TCP acelerado por hardware con un error?
qbeuek

No estoy 100% seguro de lo que estaba mal con el NIC en sí, pero fue un asunto sin marca de eBay: tan pronto como lo reemplacé, las transferencias de red mejoraron enormemente sin una caída en la conectividad.
Lazlow


1

Es un poco tarde, pero recomendaría una opción de copia de seguridad y restauración de terceros. Utilizamos Red Gate SQL Backup ( www.red-gate.com ), tiene opciones de compresión y ubicación alternativa en la GUI. Obtengo un ahorro de compresiones del 80% promedio, por lo que solo transfieres el 20% del tamaño real de base de datos También es compatible con el cifrado, por lo que se puede utilizar en una WAN sin problemas de intercepción.

Es totalmente programable, por lo que puede ejecutarse automáticamente en el ciclo que elija.

La GUI también le permite configurar y administrar el envío de registros.

Versión de prueba gratuita disponible en lo anterior.


0

No tengo experiencia con un archivo tan grande, pero ¿podría usar robocopy o incluso xcopy con la opción / Z que dice ser reiniciable? Parece que esto está destinado a copias de archivos grandes donde la red no es confiable.


0

He usado robocopy a más de 1 gb y no tuve problemas. ss64.com tiene una buena explicación de los interruptores. Sin embargo, no puedo publicar el enlace :-(


0

Mala respuesta ..

Utiliza Netcat . Un tutorial orientado a Unix para transferir archivos se puede encontrar aquí . Puede acelerar aún más las cosas:

  1. Comprima en el lado del remitente y descomprima en el lado del destino. (Chuck Windows equivalente a gzip en el medio de las líneas de comando).
  2. Elija enviar datos a través de udp en lugar de a través de tcp (oye hombre, ¿a quién le importa la integridad de los datos?)

Bromas aparte, netcat es probablemente la forma más rápida de transferir archivos grandes en una LAN. Como no se realiza ninguna suma de comprobación, puede hacer una suma MD5 del archivo antes de enviarlo y compararlo con la suma MD5 del archivo recibido.

He usado mucho netcat de esta manera, nunca lo vi fallar, nunca lo vi fallar para maximizar la red tampoco ...


Quizás Netcat es fácil y rápido de usar, pero no obtuve ninguna velocidad alta con él. IIRC apenas puede alcanzar 2-3 MB / s. Cuando se trata de acelerar, apesta demasiado.
Cristian Ciupitu

Siento que se avecinan algunas pruebas de rendimiento ... Veré si puedo encontrar el tiempo para comparar nfs, cifs, ftp y nc en mi red doméstica local.
Mateo,

Si netcat solo le da 2-3MB / s, su sistema está dañado. ftp y netcat deberían funcionar de manera idéntica. nfs y cifs también suelen ser casi lo mismo.
Justin

0

Puede valer la pena dividir el archivo en fragmentos más pequeños como una solución a corto plazo hasta que pueda identificar el problema. Hemos tenido problemas similares a esto en el pasado, y ftp siempre ha funcionado para nosotros.


0

Si estos son archivos .bak de SQL que está copiando, le recomiendo que haga una de las siguientes acciones para reducir sus archivos antes de copiarlos:

  • Reducir la base de datos y truncar el registro antes de ejecutar la copia de seguridad. O
  • Comprima el archivo .bak antes de copiarlo. Los archivos .bak de SQL se comprimen mucho si no está utilizando el espacio totalmente asignado en los archivos de datos y registros.

Podría eliminar la necesidad de un método alternativo para copiar archivos grandes.


Lo he intentado No mucha ayuda por desgracia.
Sake

Solo por curiosidad, entonces ... ¿Tiene su crecimiento automático establecido en un valor de byte duro o un%? ¿O incluso lo tienes configurado para crecer automáticamente?
Squillman

0

No creo que sea un problema encontrar algo para transferir más rápido, verifique dos veces para asegurarse de que su sistema de archivos de destino NO sea GRANDE, como han dicho otros. Además, asegúrese de que las NIC de ambos lados tengan controladores actualizados y que, de lo contrario, no estén actuando de manera escasa.

Dicho esto, ¿está moviendo muchos archivos pequeños o solo algunos grandes? He visto problemas con el controlador RAID al intentar mover millones de archivos pequeños.

No creo que tenga problemas para automatizar esto una vez que descubra qué está causando la falla. Puede ser útil enumerar más detalles sobre su hardware y cualquier error relevante que pueda ver en el visor de eventos.


0

¿Has intentado usar una conexión eSATA a un disco duro externo? Las conexiones son rápidas (¡3 gigabits!) Y deberían poder transferir ese archivo en muy poco tiempo.

¿Qué velocidad tiene su tarjeta de red en el servidor, 10/100 o 10/100/1000? ¿Cómo se ve el ancho de banda de la red del servidor y el conmutador cuando está copiando el archivo? ¿Cómo se ve el ancho de banda de red de la ubicación de destino (¿del servidor?) Al copiar? ¿Has intentado unir 2 NIC juntos? ¿Están actualizados los controladores de la tarjeta de red? ¿Está el BIOS actualizado?

Hay muchas cosas que podrían ser el problema para las transferencias de archivos. Asegurarse de que los controladores de hardware y el BIOS estén actualizados realmente puede marcar la diferencia.

-JFV


0

La forma más simple y rápida: discos USB externos y caminar.

Mi manera: usar rsync. Si la copia falla, simplemente reiníciela y continuará donde la dejó.


0

La otra cosa para verificar sería ver si el servicio de cuotas está configurado en el servidor de destino; Creo que usa 2 GB como cuota predeterminada por usuario.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.