Büyük bir dosyayı bir Windows ağı üzerinden aktarmanın en basit ve en hızlı yolu nedir?


14

20 GB üzerinde veri depolayan MS SQL Server çalıştıran bir Windows Server 2000 makinem var. Veritabanı her gün ikinci sabit sürücüye yedeklenir. Başka bir test sunucusu oluşturmak ve kurtarma uygulamaları için bu yedekleme dosyalarını başka bir bilgisayara aktarmak istiyorum. (yedekleme neredeyse 5 yıl boyunca hiç geri yüklenmedi. Patronuma bundan bahsetme!)

Bu büyük dosyayı ağ üzerinden aktarırken sorun yaşıyorum. Düz ağ kopyalama, apache indirme ve ftp'yi denedim. Denediğim herhangi bir yöntem aktarılan veri miktarı 2GB'a ulaştığında başarısız oluyor. Dosyayı en son başarılı bir şekilde aktardığımda, bir usb bağlı harici sabitdisk ile oldu. Ancak bu görevi rutin ve tercihen otomatik olarak yapmak istiyorum.

Acaba bu durum için en pragmatik yaklaşım nedir?


Aktardığınız diskte hangi dosya sistemini kullanıyorsunuz?
Marko Carter

NTFS. Bu önemli mi?
Sake

Hedef dosya sisteminde, hatanızın her zaman 2 GB'de oluşmasına neden olabilecek 2 GB dosya boyutu sınırı olabileceğinden önemlidir. Ama NTFS, bu yüzden muhtemelen değil :)
Lucas

Evet, bahse girerim ki aslında NTFS değildir.
Brent Ozar

Yanıtlar:


16

Hedef dosya sisteminin suçlanacağı 2 Gb'de öngörülebilen bir hata ... Her ikisi de NTFS'de mi? Herhangi bir sıkıştırmadan geçiyor musunuz (zip 2GB sınırlarında başarısız oldu) ((apache sıkıştırma yapıyor))

Robocopy kullanarak 20 Gb üzerinde birçok dosya kopyaladım (diğerlerinin de belirttiği gibi) ama / MIR anahtarını kullanarak istediğiniz dosyaları kopyaladığınızdan emin olana kadar / MIR anahtarını kullanmaktan kaçınırım çünkü dosyaları siler ve kopyalar.

SMB zaman sınırında tek bir paketten muzdariptir, bu nedenle dosyaları kopyalamanın daha yavaş yolu vardır - push veya pull kullanarak kopyalama seçeneğiniz vardır. Şahsen ben itme yöntemini tercih ederim (kopya kaynak tarafından başlatılır).


3
Tamamen katılıyorum. 2gb, FAT dosya sistemleri için yaygın bir darboğazdır. FAT dosya sistemine kopyalamaya çalışmadığınızdan emin olmak için yakından kontrol ediyorum.
Brent Ozar

4 gb olduğunu düşündüm?
Journeyman Geek

10

MS Exchange aracı eseutil, büyük dosyaları ağ üzerinden hızlıca kopyalamak için mükemmel bir yardımcı programdır:

eseutil / y kaynak_dosyası / gün hedef_dosyası.


+1 Bunu Exchange dışında bir şey için kullanmayı düşünmedim! Buna bir koşuşturma vermem gerekecek.
squillman

3
Gönderen technet.microsoft.com/en-us/library/aa998673(EXCHG.80).aspx "Exchange Server Veritabanı Araçları (Eseutil.exe) / Y kopya dosya modu verimli çok büyük dosyaları kopyalamak için optimize edilmiştir. Kullanabilirsiniz / Y veritabanı dosyasını veya günlük dosyasını kopyalamak için geçiş
yapın.Ancak

+1, bu muhtemelen bir veritabanı bakım yardımcı programı şimdiye kadar duydum en harika yan etkisi!
Massimo

6

RichCopy ücretsiz yardımcı programını kullanmanızı şiddetle tavsiye ederim . Çok iş parçacıklıdır ve dosya kopyalama işlemlerini duraklatabilir ve devam ettirebilir. Ben severs arasında dosya aktarmak için kullanarak çok iyi şanslar oldu.

RichCopy kullanmak için en iyi üç ipucum

  1. Bir veya birkaç büyük dosyayı kopyalıyorsanız, 'Dosya Kopyalama' özniteliğini '1'den daha fazla olarak ayarlayın. Kaynakları kullanır ancak büyük dosyaları daha hızlı kopyalar

  2. Çok sayıda dosya kopyalıyorsanız, 'İş parçacığı numarası' özniteliklerini 10-10-1 olarak ayarlayın. Bu, birden fazla dosyayı daha hızlı kopyalar

  3. Çok tehlikeli bir bağlantı üzerinden kopyalama yapıyorsanız. İndirmeyi yeniden çalıştırabilirsiniz ve ilk kez almak için yönetmediği dosyaları bulur.

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


5

Dosya kopyalama yardımcı programları gittikçe, TeraCopy , çok sayıda dosyayı sıraya alabilen, duraklatmayı ve devam ettirmeyi destekleyen, hızı optimize etmek için arabellek boyutunu dinamik olarak değiştirebilen ve isteğe bağlı olarak Windows Gezgini'nin yerine geçebilen güzel bir GUI tabanlı (komut satırı değil) kendi kopyala / taşı.


3

/ MIR seçeneğiyle robokopi, makineler arasında hızlı ve kirli yedeklemeler için çok kullanışlıdır. Robocopy'yi Windows Server 200X Resouce Kitinde bulabilirsiniz

MIR, bir dizinin içeriğini başka bir sunucuya çevirir. Yalnızca değişen dosyaları kopyalar.


2
/ Z da tatlı bir seçenektir. Başarısız kopyaları sürdürmenizi sağlar. Bu yavaş ağlar üzerinden hayatımı kurtardı
Nick Kavadias

2

Büyük SQL Server yedekleme dosyalarının tekrar tekrar karıştırılması için en pragmatik çözüm, bir üçüncü taraf yedekleme sıkıştırma ürünü veya SQL Server 2008 Enterprise Edition'ın yerleşik yedekleme sıkıştırmasını kullanmaktır.

Orada farklı satıcılardan birkaç tane var. LiteSpeed'in yapımcıları Quest Software için çalışıyorum, ancak hiçbir şey satmak için burada değilim. Tüm ürünleri kontrol etmek ve ihtiyaçlarınıza en uygun olanı belirlemek istiyorsunuz. İşte LiteSpeed ​​hakkında özel olarak konuşan yeni bir blog yazısı, ancak aynı kavramlar diğer ürünler için de geçerlidir:

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


1

Dosyayı LAN üzerinden mi yoksa ADSL gibi bir WAN bağlantısı üzerinden mi kopyalıyorsunuz? Bir WAN olduğunu düşünüyorum çünkü 20GB bir LAN üzerinden kopyalamak için büyük bir dosya değil. Her gün bu tür dosyaları kopyalarım.

Bir WAN bağlantısıysa, bunu yapmamın yolu rsync'in Cygwin sürümünü kullanmaktır.

JR


1

Ağ aktarımları 2GB civarında başarısız oldu - hatalı bir NIC olduğu ortaya çıktı.


3
hatalı NIC her zaman 2GB civarında başarısız oldu? garip!
Lucas,

belki bu NIC bir hata ile donanım hızlandırılmış TCP vardı?
qbeuek

NIC'in kendisinde neyin yanlış olduğundan% 100 emin değilim, ancak eBay'den markasız bir olaydı - onu değiştirir değiştirmez ağ aktarımları bağlantıda herhangi bir düşüş olmadan büyük ölçüde gelişti.
Lazlow


1

Biraz geç ama ben bir 3. taraf yedekleme ve uygulama seçeneği geri yükleme öneriyoruz. Red Gate SQL Backup ( www.red-gate.com ) kullanıyoruz, GUI'de sıkıştırma ve alternatif konum seçenekleri var. Kompresyonların ortalama% 80 tasarruf sağlandığından, gerçek db boyutunun sadece% 20'sini aktarırsınız. Şifrelemeyi de destekler, böylece bir WAN üzerinden müdahale endişesi olmadan kullanılabilir.

Tamamen programlanabilir böylece seçtiğiniz bir döngüde otomatik olarak çalışabilir.

GUI ayrıca günlük gönderimini yapılandırmanıza ve yönetmenize de olanak tanır.

Yukarıdaki ücretsiz deneme sürümü.


0

Böyle büyük bir dosya ile deneyimim yok, ancak yeniden başlatılabilir olduğunu iddia eden / Z seçeneği ile robocopy veya hatta xcopy kullanabilirsiniz. Ağın güvenilir olmadığı büyük dosya kopyaları için tasarlanmış gibi görünüyor.


0

Ben 1 gb üzerinde robocopy kullandım ve hiç problem yaşamadım. ss64.com anahtarların iyi bir açıklamasına sahiptir. Yine de bağlantıyı gönderemiyorum :-(


0

Kötü cevap ..

Netcat kullanın . Dosyaları aktarmak için unix tabanlı bir öğretici burada bulunabilir . İşleri daha da hızlandırabilirsiniz:

  1. Gönderen tarafında sıkıştırın ve hedef tarafta açın. (komut satırlarının ortasında gzip'e eşdeğer chuck pencereleri.)
  2. Verileri tcp yerine udp ile göndermeyi seçin (hey, veri bütünlüğünü önemseyen adam ?? !!)

Şaka bir yana, netcat muhtemelen büyük dosyaları bir LAN'a aktarmanın en hızlı yoludur. Hiçbir sağlama toplamı yapılmadığından, dosyayı göndermeden önce bir MD5 toplamı yapmak ve alınan dosyanın MD5 toplamı ile karşılaştırmak isteyebilirsiniz.

Netcat'i bu şekilde çok kullandım, başarısız olduğunu hiç görmedim, ağını da maksimize etmeyi hiç görmedim.


Belki Netcat'in kullanımı kolay ve hızlıdır, ancak onunla yüksek hız elde edememiştim. IIRC, 2-3 MB / s'ye zorlukla ulaşabilir. Hız söz konusu olduğunda çok fazla berbat.
Cristian Ciupitu

Bazı performans testlerinin geldiğini hissediyorum ... Yerel ev ağımda nfs, cifs, ftp ve nc'yi karşılaştırmak için zaman bulabileceğimi göreceğim.
Matthew

Netcat size sadece 2-3MB / s veriyorsa sisteminiz bozulur. ftp ve netcat aynı şekilde çalışmalıdır. nfs ve cifler de genellikle aynıdır.
Justin

0

Sorunu tespit edene kadar dosyayı kısa vadeli bir çözüm olarak daha küçük parçalara ayırmaya değer olabilir. Geçmişte buna benzer sorunlar yaşadık ve ftp her zaman bizim için çalıştı


0

Bunlar kopyaladığınız SQL .bak dosyalarıysa, kopyalamadan önce dosyalarınızı küçültmek için aşağıdakilerden birini yapmanızı şiddetle tavsiye ederim:

  • Veritabanını küçültün ve yedeklemeyi çalıştırmadan önce günlüğü kesin. VEYA
  • Kopyalamadan önce .bak dosyasını sıkıştırın. Veri ve günlük dosyalarında tam olarak ayrılmış alanı kullanmıyorsanız, SQL .bak dosyaları aşağı doğru sıkıştırır.

Büyük dosyaları kopyalamak için alternatif bir yönteme duyulan ihtiyacı ortadan kaldırabilir.


Bunu denedim. Ne yazık ki fazla yardım yok.
Sake

Sadece meraktan, o zaman ... Otomatik büyümenizi sabit bir bayt değerine mi, yoksa% değerine mi ayarladınız? Ya da otomatik olarak büyümeye ayarlandınız mı?
squillman

0

Daha hızlı aktarılacak bir şey bulmak sorun değil, başkalarının söylediği gibi, hedef dosya sisteminizin FAT DEĞİL olduğundan emin olmak için iki kez kontrol edin. Ayrıca, her iki taraftaki NIC'lerin sürücülerinin güncellenmiş olduğundan ve aksi halde kesintili davranmadığından emin olun.

Bununla birlikte, birçok küçük dosyayı mı yoksa sadece birkaç büyük dosyayı mı taşıyorsunuz? Milyonlarca küçük dosyayı taşımaya çalışırken RAID denetleyicisi sorunları gördüm.

Hataya neyin neden olduğunu anladıktan sonra bunu otomatikleştirmede bir sorun yaşayacağınızı sanmıyorum. Donanımınız ve olay görüntüleyicide görebileceğiniz ilgili hatalar hakkında daha fazla ayrıntı listelemenize yardımcı olabilir.


0

Harici bir sabit sürücüye eSATA bağlantısı kullanmaya çalıştınız mı? Bağlantılar hızlı bir şekilde sigara içiyor (3 gigabit!) Ve bu dosyayı hemen aktarabilmelidir!

Ağ kartınız sunucuda ne hızda, 10/100 veya 10/100/1000? Dosyayı ele alırken sunucu ağ bant genişliği ve anahtarı neye benziyor? Hedef konumun (sunucunun?) Ağ bant genişliği kopyalama sırasında neye benziyor? 2 NIC ile birlikte çalışmayı denediniz mi? Ağ kartı sürücüleri güncel mi? BIOS güncel mi?

Dosya aktarımlarında sorun olabilecek birçok şey var. Donanım sürücülerinin ve BIOS'un güncel olduğundan emin olmak gerçekten fark yaratabilir.

-JFV


0

En basit ve en hızlı yol: harici USB diskler ve yürüme.

Yolum: rsync kullanın. Kopyalama başarısız olursa, yeniden başlatın ve kaldığı yerden devam edecektir.


0

Kontrol edilecek diğer bir şey, kota hizmetinin hedef sunucuda ayarlanıp ayarlanmadığını görmek olacaktır; Kullanıcı başına varsayılan kota olarak 2 GB kullandığını düşünüyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.