วิธีที่ง่ายและรวดเร็วที่สุดในการถ่ายโอนไฟล์ขนาดใหญ่ผ่านเครือข่าย Windows คืออะไร


14

ฉันมีเครื่อง Window Server 2000 ที่ใช้ MS SQL Server ที่เก็บข้อมูลมากกว่า 20GB ฐานข้อมูลถูกสำรองทุกวันถึงฮาร์ดไดรฟ์ที่สอง ฉันต้องการถ่ายโอนไฟล์สำรองข้อมูลเหล่านั้นไปยังคอมพิวเตอร์เครื่องอื่นเพื่อสร้างเซิร์ฟเวอร์ทดสอบอีกเครื่องและสำหรับการฝึกการกู้คืน (การสำรองข้อมูลไม่เคยถูกกู้คืนมาเป็นเวลาเกือบ 5 ปีอย่าบอกเจ้านายของฉันเกี่ยวกับเรื่องนี้!)

ฉันมีปัญหาในการถ่ายโอนไฟล์ขนาดใหญ่ผ่านเครือข่าย ฉันลองคัดลอกเครือข่ายธรรมดาดาวน์โหลด apache และ ftp แล้ว วิธีการใดก็ตามที่ฉันพยายามจะล้มเหลวเมื่อปริมาณข้อมูลที่ถ่ายโอนมาถึง 2GB ครั้งสุดท้ายที่ฉันถ่ายโอนไฟล์สำเร็จมันผ่าน usb ที่ต่อพ่วงกับฮาร์ดไดรฟ์ภายนอก แต่ฉันต้องการที่จะทำงานนี้เป็นประจำและโดยเฉพาะอย่างยิ่งโดยอัตโนมัติ

สงสัยว่าอะไรคือแนวทางที่จริงจังที่สุดสำหรับสถานการณ์นี้?


คุณใช้ระบบไฟล์ใดในดิสก์ที่คุณถ่ายโอนไป
Marko Carter

NTFS นั่นเป็นเรื่องหรือไม่
เห็นแก่

มันเป็นเรื่องสำคัญเนื่องจากระบบไฟล์เป้าหมายอาจมีขนาด จำกัด ไฟล์ 2GB ซึ่งอาจทำให้เกิดข้อผิดพลาดของคุณที่ 2GB เสมอ แต่มันเป็น NTFS เพื่อที่ว่ามันอาจจะไม่ได้ :)
ลูคัส

ใช่ฉันเดิมพันเงินที่ไม่ใช่ NTFS จริง
Brent Ozar

คำตอบ:


16

ความล้มเหลวที่คาดการณ์ได้ที่ 2Gb ดูเหมือนว่าระบบไฟล์เป้าหมายคือการตำหนิ ... ทั้งคู่อยู่ใน NTFS หรือไม่ คุณกำลังบีบอัดผ่านการบีบอัดใด ๆ หรือไม่ (ใช้ zip ที่ล้มเหลวที่ขอบเขต 2gb) ((กำลังทำการบีบอัด apache))

ฉันคัดลอกไฟล์มากกว่า 20Gb โดยใช้ robocopy (ตามที่คนอื่นพูดถึง) แต่ฉันจะหลีกเลี่ยงการใช้สวิตช์ / MIR จนกว่าคุณจะแน่ใจว่าคุณได้คัดลอกในสิ่งที่คุณต้องการเพราะมันจะลบไฟล์และคัดลอก

SMB ทนทุกข์ทรมานจากแพ็กเก็ตเดียวในเวลาที่กำหนดดังนั้นมักจะเป็นวิธีที่ช้ากว่าในการคัดลอกไฟล์ - คุณมีตัวเลือกในการคัดลอกโดยใช้การกดหรือดึง โดยส่วนตัวแล้วฉันชอบวิธีการพุช (การคัดลอกเริ่มต้นโดยแหล่งที่มา)


3
เห็นด้วยอย่างสิ้นเชิง. 2gb เป็นปัญหาคอขวดสำหรับระบบไฟล์ FAT ฉันจะตรวจสอบอย่างใกล้ชิดเพื่อให้แน่ใจว่าคุณไม่ได้พยายามคัดลอกไปยังระบบไฟล์ FAT
Brent Ozar

ฉันคิดว่านั่นคือ 4 gb?
Geek

10

เครื่องมือ MS Exchange eseutil เป็นเครื่องมือที่ยอดเยี่ยมในการคัดลอกไฟล์ขนาดใหญ่ได้อย่างรวดเร็วผ่านเครือข่าย:

eseutil / y source_file / d dest_file


+1 ไม่เคยคิดที่จะใช้สิ่งนั้นนอกจากการแลกเปลี่ยน! ฉันจะต้องหมุนวนนั้น
squillman

3
จากtechnet.microsoft.com/en-us/library/aa998673(EXCHG.80).aspx "ยูทิลิตีฐานข้อมูล Exchange Server (Eseutil.exe) / Y โหมดไฟล์สำเนาถูกปรับให้เหมาะสมเพื่อคัดลอกไฟล์ขนาดใหญ่อย่างมีประสิทธิภาพคุณสามารถใช้ / Y สลับไปที่การคัดลอกไฟล์ฐานข้อมูลหรือไฟล์บันทึกอย่างไรก็ตามโหมดนี้ไม่เหมาะกับยูทิลิตี้การคัดลอกวัตถุประสงค์ทั่วไป "
Goyuix

+1 นี่น่าจะเป็นผลข้างเคียงที่ยอดเยี่ยมที่สุดของยูทิลิตี้การบำรุงรักษาฐานข้อมูลที่เคยได้ยินมา!
Massimo

6

ฉันขอแนะนำให้ใช้โปรแกรมอรรถประโยชน์RichCopyฟรี มันเป็นแบบมัลติเธรดและสามารถหยุดและดำเนินการคัดลอกไฟล์ต่อ ฉันโชคดีมากที่ใช้มันเพื่อถ่ายโอนไฟล์ระหว่าง severs

เคล็ดลับสามข้อของฉันในการใช้ 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


5

ตราบใดที่ยูทิลิตี้คัดลอกไฟล์ดำเนินไปTeraCopyเป็นหนึ่งใน GUI ที่ดี (ไม่ใช่บรรทัดคำสั่ง) ที่สามารถจัดคิวไฟล์จำนวนมากรองรับการหยุดชั่วคราวและทำงานต่อสามารถเปลี่ยนขนาดบัฟเฟอร์เพื่อปรับความเร็วให้เหมาะสมที่สุด คัดลอก / ย้ายด้วยตัวเอง


3

Robocopy พร้อมตัวเลือก / MIR มีประโยชน์มากสำหรับการสำรองข้อมูลที่รวดเร็วและสกปรกระหว่างเครื่อง คุณสามารถค้นหา robocopy ได้ใน Windows Server 200X Resouce Kit

MIR จะ MIRror เนื้อหาของไดเรกทอรีหนึ่งไปยังเซิร์ฟเวอร์อื่น มันจะคัดลอกไฟล์ที่มีการเปลี่ยนแปลงเท่านั้น


2
/ Z ยังเป็นตัวเลือกที่ดี ช่วยให้คุณสามารถทำสำเนาที่ล้มเหลวต่อได้ สิ่งนี้ช่วยชีวิตฉันบนเครือข่ายที่ช้า
Nick Kavadias

2

วิธีแก้ปัญหาในทางปฏิบัติที่มากที่สุดสำหรับการสับซ้ำของไฟล์สำรอง SQL Server ขนาดใหญ่นั้นคือการใช้ผลิตภัณฑ์บีบอัดข้อมูลสำรองของบุคคลที่สามหรือการบีบอัดสำรองข้อมูลในตัวของ SQL Server 2008 Enterprise Edition

มีหลายอย่างจากผู้จำหน่ายที่แตกต่างกัน ฉันทำงานให้กับ Quest Software ผู้ผลิต LiteSpeed ​​แต่ฉันไม่ได้มาที่นี่เพื่อขายอะไร คุณต้องการตรวจสอบผลิตภัณฑ์ทั้งหมดและตัดสินใจเลือกสิ่งที่ดีที่สุดสำหรับความต้องการของคุณ นี่เป็นบล็อกโพสต์ล่าสุดที่พูดถึง LiteSpeed ​​โดยเฉพาะ แต่แนวคิดเดียวกันนี้ใช้กับผลิตภัณฑ์อื่นด้วย:

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


1

คุณคัดลอกไฟล์ผ่าน LAN หรือผ่านการเชื่อมต่อ WAN เช่น ADSL หรือไม่ ฉันถือว่าเป็น WAN เพราะ 20GB ไม่ใช่ไฟล์ขนาดใหญ่ที่จะคัดลอกผ่าน LAN ฉันคัดลอกไฟล์ดังกล่าวจำนวนมากทุกวัน

หากเป็นการเชื่อมต่อ WAN วิธีที่ฉันทำได้คือใช้ rsync รุ่น Cygwin

จูเนียร์


1

ฉันมีการถ่ายโอนเครือข่ายล้มเหลวที่เครื่องหมาย 2GB - กลายเป็น NIC ที่ผิดพลาด


3
ข้อบกพร่อง NIC มักจะล้มเหลวประมาณ 2GB? แปลก!
ลูคัส

อาจ NIC นี้มีฮาร์ดแวร์เร่ง TCP กับข้อผิดพลาดหรือไม่
qbeuek

ฉันไม่แน่ใจ 100% ว่ามีอะไรผิดปกติกับ NIC แต่เป็นเรื่องที่ไม่ได้รับการตีตราจาก eBay - ทันทีที่ฉันแทนที่มันเครือข่ายการถ่ายโอนก็ดีขึ้นอย่างมากโดยไม่มีการเชื่อมต่อที่ลดลง
Lazlow


1

มันค่อนข้างช้า แต่ฉันขอแนะนำให้สำรองข้อมูลบุคคลที่สามและเรียกคืนตัวเลือกแอปพลิเคชัน เราใช้การสำรองข้อมูล Red Gate SQL ( www.red-gate.com ) มันมีตัวเลือกการบีบอัดและตำแหน่งอื่นใน GUI ฉันได้รับการประหยัดการบีบอัดโดยเฉลี่ย 80% ดังนั้นคุณจึงโอน 20% ของขนาด db จริงเท่านั้น นอกจากนี้ยังรองรับการเข้ารหัสเพื่อให้สามารถใช้งานผ่าน WAN ได้โดยไม่ต้องกังวลเรื่องการสกัดกั้น

สามารถกำหนดตารางเวลาได้อย่างเต็มที่เพื่อให้สามารถทำงานอัตโนมัติในรอบที่คุณเลือก

GUI ยังให้คุณกำหนดค่าและจัดการการจัดส่งบันทึก

รุ่นทดลองใช้ฟรีมีให้ที่ด้านบน


0

ฉันไม่มีประสบการณ์กับไฟล์ขนาดใหญ่เช่นนี้ แต่คุณสามารถใช้ robocopy หรือแม้แต่ xcopy ด้วยตัวเลือก / Z ที่อ้างว่าสามารถรีสตาร์ทได้ ดูเหมือนว่าสิ่งนี้มีไว้สำหรับการคัดลอกไฟล์ขนาดใหญ่ที่เครือข่ายไม่น่าเชื่อถือ


0

ฉันใช้ robocopy กับ 1GB ได้ดีและไม่มีปัญหา ss64.com มีคำอธิบายที่ดีเกี่ยวกับสวิตช์ ฉันไม่สามารถโพสต์ลิงค์ได้ว่า :-(


0

คำตอบที่ชั่วร้าย ..

ใช้Netcat ยูนิกซ์ที่มุ่งเน้นการกวดวิชาสำหรับการถ่ายโอนไฟล์ที่สามารถพบได้ที่นี่ คุณสามารถเพิ่มความเร็วให้กับ:

  1. บีบอัดที่ด้านผู้ส่งและคลายที่ด้านปลายทาง (ชัค windows เทียบเท่า gzip ที่อยู่ตรงกลางบรรทัดคำสั่ง)
  2. เลือกที่จะส่งข้อมูลผ่าน udp แทนที่จะเป็น tcp (เฮ้ชายผู้ใส่ใจเรื่องความถูกต้องของข้อมูล ?? !!)

ล้อเล่นกัน netcat น่าจะเป็นวิธีที่เร็วที่สุดในการถ่ายโอนไฟล์ขนาดใหญ่บน LAN เนื่องจากไม่มีการตรวจสอบสำเร็จคุณอาจต้องการทำผลรวม MD5 ของไฟล์ก่อนส่งและเปรียบเทียบกับผลรวม MD5 ของไฟล์ที่ได้รับ

ฉันใช้ netcat มากด้วยวิธีนี้ไม่เคยเห็นมันล้มเหลวไม่เคยเห็นมันล้มเหลวในการขยายเครือข่ายให้สูงสุด ..


บางที Netcat นั้นใช้งานง่ายและรวดเร็ว แต่ฉันไม่ได้รับความเร็วสูงด้วย IIRC มันแทบจะไม่สามารถเข้าถึง 2-3 MB / s เมื่อพูดถึงความเร็วมันดูดมากเกินไป
Cristian Ciupitu

ฉันรู้สึกว่ามีการทดสอบประสิทธิภาพมา ... ฉันจะดูว่าฉันสามารถหาเวลาเปรียบเทียบ nfs, cifs, ftp และ nc บนเครือข่ายในบ้านของฉันได้ไหม
Matthew

หาก netcat ให้คุณเพียง 2-3MB / s ระบบของคุณจะเสีย ftp และ netcat ควรทำงานเหมือนกันทั้งคู่ nfs และ cifs มักจะเหมือนกัน
Justin

0

อาจคุ้มค่าที่จะแบ่งไฟล์เป็นส่วนย่อย ๆ เป็นวิธีแก้ปัญหาระยะสั้นจนกว่าคุณจะสามารถระบุปัญหาได้ เรามีปัญหาที่คล้ายกันนี้ในอดีตและ ftp ได้ทำงานให้เราเสมอ


0

หากสิ่งเหล่านี้คือไฟล์ SQL. bak ที่คุณกำลังคัดลอกฉันขอแนะนำให้ทำอย่างใดอย่างหนึ่งต่อไปนี้เพื่อย่อขนาดไฟล์ของคุณก่อนที่จะทำการคัดลอก:

  • ย่อขนาดฐานข้อมูลและตัดทอนบันทึกก่อนเรียกใช้การสำรองข้อมูล หรือ
  • บีบอัดไฟล์. bak ก่อนทำการคัดลอก ไฟล์ SQL. bak บีบอัดลงหากคุณไม่ได้ใช้พื้นที่ที่จัดสรรอย่างเต็มที่ในข้อมูลและไฟล์บันทึก

อาจไม่จำเป็นต้องใช้วิธีอื่นในการคัดลอกไฟล์ขนาดใหญ่


ฉันลองแล้ว ช่วยได้ไม่มากนัก
เห็นแก่

เพิ่งอยากรู้อยากเห็นแล้ว ... คุณตั้งค่า autogrowth ของคุณเป็นค่าไบต์ที่แข็งหรือ a% หรือไม่? หรือคุณยังตั้งให้ autogrow ด้วยซ้ำ
squillman

0

ฉันไม่คิดว่าการค้นหาสิ่งที่จะถ่ายโอนได้เร็วขึ้นคือปัญหาของคุณตรวจสอบอีกครั้งเพื่อให้แน่ใจว่าระบบไฟล์เป้าหมายของคุณไม่เป็น FAT ดังที่คนอื่นพูด ตรวจสอบให้แน่ใจว่า NICs ทั้งสองด้านได้อัปเดตไดรเวอร์แล้ว

ด้วยที่กล่าวว่าคุณจะย้ายไฟล์ขนาดเล็กจำนวนมากหรือเพียงแค่ไฟล์ขนาดใหญ่ไม่กี่? ฉันเห็นปัญหาคอนโทรลเลอร์ RAID เมื่อพยายามย้ายไฟล์เล็ก ๆ นับล้าน

ฉันไม่คิดว่าคุณจะมีปัญหาโดยอัตโนมัติเมื่อคุณเข้าใจว่าอะไรเป็นสาเหตุของความล้มเหลว อาจช่วยแสดงรายละเอียดเพิ่มเติมเกี่ยวกับฮาร์ดแวร์ของคุณและข้อผิดพลาดที่เกี่ยวข้องที่คุณอาจเห็นใน Event Viewer


0

คุณเคยลองใช้การเชื่อมต่อ eSATA กับฮาร์ดไดรฟ์ภายนอกหรือไม่? การเชื่อมต่อนั้นรวดเร็วมาก (3 กิกะบิต!) และควรจะสามารถถ่ายโอนไฟล์นั้นในเวลาไม่นาน!

การ์ดเครือข่ายของคุณความเร็วเท่าไหร่บนเซิร์ฟเวอร์ 10/100 หรือ 10/100/1000 แบนด์วิธเครือข่ายเซิร์ฟเวอร์และสวิตช์มีลักษณะอย่างไรเมื่อคุณจัดการกับไฟล์ แบนด์วิดท์เครือข่ายของตำแหน่งปลายทาง (ของเซิร์ฟเวอร์คืออะไร) มีลักษณะอย่างไรเมื่อคัดลอก คุณพยายามร่วม 2 NIC ด้วยกันไหม? ไดรเวอร์การ์ดเครือข่ายเป็นรุ่นล่าสุดหรือไม่ ไบออสเป็นเวอร์ชั่นล่าสุดหรือไม่?

มีหลายสิ่งที่อาจเป็นปัญหาสำหรับการถ่ายโอนไฟล์ ตรวจสอบให้แน่ใจว่าไดรเวอร์ฮาร์ดแวร์และ BIOS เป็นรุ่นล่าสุดสามารถสร้างความแตกต่างได้

-JFV


0

วิธีที่ง่ายที่สุดและเร็วที่สุด: ดิสก์ USB ภายนอกและการเดิน

ทางของฉัน: ใช้ rsync หากการคัดลอกล้มเหลวเพียงแค่เริ่มต้นใหม่และมันจะไปรับตำแหน่งที่เหลือ


0

สิ่งอื่น ๆ ที่จะตรวจสอบคือการดูว่ามีการตั้งค่าบริการโควต้าบนเซิร์ฟเวอร์เป้าหมายหรือไม่ ฉันคิดว่ามันใช้ 2 GB เป็นโควต้าเริ่มต้นต่อผู้ใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.