Mümkün olan en küçük yedekleme… SQL Server ile


37

Günlük SQL Server yedeklerimizi WAN üzerinden gönderiyoruz. Sonsuza dek sürmeyecek şekilde bu yedeklemelerin boyutunu en aza indirmemiz gerekiyor.

Yedekleme işlemimiz biraz daha uzun sürerse sorun değil; Olduğu gibi, 10 saatten fazla süren WAN'da 30 gig sıkıştırılmış yedekleme yapmamız gerekiyor.

Günlük daha küçük yedeklemeler almamız gereken 2 seçenek var.

  1. Tomruk taşımacılığı, DR sürecini yeniden yapılandırmamız gerektiği anlamına gelir.
  2. Bilgileri db'den ayırın ve diğer tarafta yeniden oluşturun (kümelenmemiş dizinleri bırakın, kümelenmiş dizinleri% 100 paketleyin - diğer tarafta yeniden oluşturun)

Her ikisi de bizim tarafımızdan adil miktarda çalışma gerektirecektir. SQL Server 2008 pro kullanıyoruz, tüm yedeklemeler sıkıştırılıyor.

Bize seçenek (2) 'ye benzer bir yedek boyut verebilecek herhangi bir ticari ürün var mı?

Başarıya ulaşmamıza izin verecek kapsamlı bir senaryo var mı (2)? (indekslenmiş görünümlerin kullanımı, filtrelenmiş indeksler, yabancı anahtarlar vb.)


2
Şu andaki yedekleme ayrıntı düzeyi ve sıklığınız nedir? (Düzenli günlük yedekleme? Günlük tam?) Kurumsal veya standart sürüm kullanıyor musunuz? Güncelleme: kiraladığınız sitede küçük bir şirket DR mi yoksa kalıcı bir DR sitesine sahip büyük bir şirket misiniz? Eğer birincisi, bir dosya sunucunuz veya sitenizde çalışan SQL Server var mı
gbn

@gbn, günlük tam için optimizasyona ihtiyacımız var, kurumsal kullanıyoruz, DR işleri yerinde yapan insanlarla tamamen yerel. Küçük yedeklemeler devs ve sahip olduğumuz ikinci bir site dışı için gereklidir. not ... devs saha dışında, sınırlı bant genişliğine sahip diğer ülkelerde, NY'deki sunuculardan (örneğin) Avustralya'ya minimum transfer boyutuna ihtiyacımız var. Birkaç ayda bir senkronize ediyoruz.
Sam Saffron

1
Bunu anlamayan kimseye göre, bu SO takımının uygun olması için;)
jcolebrand

1
@Sam Safran: benim önerim gibi bir şeyi benimseme konusunda herhangi bir geri bildirim lütfen?
gbn

@gbn ... hala ne yapılması gerektiğine karar verirken, Oregon işine kadar olan "normal" - geri malzemelerin önerdiğiniz çözümle mümkün olduğunu düşünüyorum. Bununla birlikte, "Sam'in ayda bir kez SO db'yi indirmesi gerekiyor, sorun hala çok çok acı verici çünkü 22gig'i Avustralya'ya taşımam gerekiyor - gerçek olan" gerçek "bilginin 10 gig'e kolayca sığabileceği.
Sam Saffron

Yanıtlar:


22

Yorumlara dayanan ilk düşünce ...

Yedekleme + FTP'nin boyutunu / süresini azaltmak için her 6 saatte bir farklı yedeklemeler kullanın. Sonra tam yedekleme + FTP'nizi yalnızca hafta sonlarına indirin. Bu, log gönderiminin karmaşıklığını önler, yapılması kolay ve DR'ye yalnızca hafif bir karmaşıklık ekler

Diferansiyel yedeklemelerin gözden kaçırıldığını hissediyorum ... Onları daha önce kullanmanızı önerdim:

Düzenleme: jcolebrand'ın yorumundan sonra daha fazlasını açıklamaya çalışacağım

Diferansiyel yedekleme yalnızca değişen sayfaları alır. Dizin bakımı dışında (çok sayıda veritabanını etkileyebilir), sayfaların yalnızca% birkaç'ı bir gün içinde değişecektir. Bu nedenle, bir diferansiyel yedekleme herhangi bir sıkıştırma işleminden önce tam bir yedeklemeden çok daha küçüktür.

Tam bir yedeğiniz varsa, haftalık olarak söyleyin, günlük farklılıklar yapabilir ve bunları siteden çıkarabilirsiniz. Diferansiyel bir günlük tam yedekleme hala her iki dosya da site dışında gerektirir.

Bu, hızlı bir şekilde A'dan B'ye, C'den ve D'den veri alma problemini çözmelidir.

Muhtemelen, en son verileri elde etmek için hem en son hem de tam farkı geri yüklemeniz gerekebilir, ancak NORECOVERY ve bir STANDBY dosyasıyla çalışabilirsiniz (saf DBA'da bulunduğumdan beri yıllardır diff geri yükleme ile denemedim. iş).

Ek bir avantaj, fark yedeklerinin devam eden günlük yedekleriyle ilgisi olmamasıdır, böylece Yüksek Kullanılabilirlik / DR gereksinimini "verileri maymun maymunlarına alma" gereksiniminden ayırabilirsiniz.

Politika veya denetimle günlük tam yedeklemeniz varsa, bazı sorunları görüyorum, ancak geri yükleme süresini kısaltmak için herhangi bir günlük geri yüklenmeden önce fark geri yüklemesi uygulanabiliyor. Yedeklemelerden farklı olarak, diff ve log restoreleri etkileşime girer.

Umarım çoğu üsleri örtmüşümdür ...


Hyperbac, bir yedekleme işlemini sıkıştırmaya ve tüm bakım planlarını ve işleri değişmeden bırakmaya izin veren çok akıllı bir sıkıştırma aracıdır, çünkü işletim sistemi düzeyinde dosyaları yönetir. Herhangi bir şeyi değiştirmek istemiyorlarsa, ancak kutuya yeni bir araç ekliyorlarsa kesinlikle bir şans vermeliler. Bunu kullandığımı ve SQL 2005'i sevdiğimi biliyorum. Fakat daha fazla sıkıştırma için hala bazı el işçiliği yapmaları gerekiyor ...
Marian

@Marian ben ... kesinlikle Brent O'nun ihtiyacı olan bir danışman olduğundan eminim.
jcolebrand

@Marian: Sıkıştırma sınırı var ve daha fazla sıkıştırma = daha fazla CPU / zaman. En küçük yedekleme, sıkıştırma aracı / biçiminden bağımsız olarak, en küçük giriş = diferansiyel olanı olacaktır. Zaman / oran hakkında bir bağlantı Bir : aşırı sıkıştırma verebilirsiniz ancak daha uzun sürer ve sıkıştırılmış 30 GB bir dosya için FTP'den daha uzun sürebilir ...
gbn

Sizinle aynı fikirdeyim, ticari araçların MS'dekinden daha iyi sıkıştırma oranlarına sahip olduğu ve konfigüre edilebilecekleri (operasyona tahsis edilen CPU'lar olmadan), şifreleme .. ve diğer özellikler sundukları. Onları övmek zorunda değilim (çok ucuz değiller), sadece bazılarının çevreyi değiştirmeden çevreyi değiştirmeden SQL Server'ın (tam, fark, log) mevcut yedekleriyle birlikte kullanılabileceğini söyledim. istemek gerek. @jcolebrand: Anladım, teşekkür ederim!
Marian

13

Yedeklerinizi yerel 2008 sıkıştırmasından daha iyi sıkıştırmanıza yardımcı olabilecek ticari ürünler vardır. Örnekler RedGate Yedekleme , Hyperbac , Idera SQL Yedekleme , Litespeed Yedekleme'dir .

Bunlar, yüksek MS işlemcileri ve MS sevk edilenlerin dışındaki araçlarla kullanılması gerekecek dosya türleriyle birlikte geliyorlar. Bu, dosyaları saydam bir şekilde işleyen ve birinin zip uyumlu dosyalar oluşturmasına izin veren (ve ayrıca üçüncü taraf araçlara gerek duymaz) izin veren Hyperbac (şimdi Redgate tarafından edinilmiş) sıkıştırma dışında.

Ancak, el ile temizlik yaparak elde edeceğiniz boyutta bir dosya sunacak hiçbir araç yoktur. Lütfen Brent Ozar'ın makalesine bakın: SQL Server yedeklemenizi gerçekten nasıl sıkıştıracağınızla ilgili olarak, no. 2.


RedGate FTW !!!!
Hogan

@Hogan: Eğer onları yenemezseniz satın alın. Çok güzel bir örnek :-). Neyse, şimdi Redgate'in bir parçası olan ve veritabanı sıkıştırmayı işleyen her iki ürün de başarıyla birlikte bulunabilir.
Marian

12

Soru 1: Endeksler gibi gerekli olmayan verileri veritabanından çıkarmak için benzer bir yedekleme boyutu verecek ticari bir yedekleme ürünü var mı?

Hayır. (Quest LiteSpeed, Red Gate SQL Yedekleme, Idera SQLSafe, Hyperbac, vb.) Birçok yedek sıkıştırma ürünü var, ancak hepsi sadece SQL Server'ın düzenli yedekleme işleminin çıktısını sıkıştırarak işlev görüyor. Bazıları zorlu yollardan yapıyor - HyperBac ve LiteSpeed's Engine seçeneği dosya sistemi filtre sürücüleri, yani diske giderken çıktısını durduruyorlar - ancak tüm bu ürünlerin sonucu sadece sıkıştırılmış yedek çıktı.

Soru 2. Tüm bu fazladan verileri atmak için kapsamlı bir senaryo var mı?

Zaman içinde, veritabanında daha fazla geçmişe sahip olduğunuzdan (4, 5, 8, 10 yıl), tüm endeks verilerini söküp WAN'ın diğer tarafında yeniden oluşturmak istemeyeceksiniz. Bunun yerine, yalnızca değiştirilmiş verileri aktarmak istiyorsunuz ve günlük gönderiminin geldiği yer burasıdır.

Bunu yapmamalısın.

Ancak, gerçekten, gerçekten bunu yapmak istiyorsanız (ve hayır, size yardım etmem), dosya grubu yedekleriyle yapabilirsiniz. Veritabanı dosya gruplarınızı şöyle ayarlayın:

  • Birincil dosya grubu (gerekli, ancak boş bırakın)
  • ClusteredIndex dosya grubu (kümelenmiş dizinlerinizi buraya yerleştirin)
  • ExtraneousCrap Filegroup (başka her şeyi buraya koy)

Yalnızca ilk ikisinin sıkıştırılmış dosya grubu yedeklemelerini yapmaya başlayın ve bu küçük dosyaları DR sunucunuza kopyalayın. Yalnızca Birincil ve ClusteredIndex dosya gruplarını geri yüklemek için SQL Server 2008'in dosya grubu yedeklemesi ve geri yükleme özelliğini kullanabilirsiniz; O ExtraneousCrap dosya grubunu çevrimiçi hale getirene kadar gerçekten işe yaramayacaklar, ancak bunun için de kötü bir numara var - MVP Deep Dives kitabında , ExtraneousCrap dosya grubunu ve diğerlerini yapmak için sistem tablolarını düzenleme ile ilgili bir bölüm var ilişkili indekslerin kaybolur. Bu numara tehlikeli, tamamen desteklenmiyor ve çok kötü bir fikir - ama hey, siz istediniz.


10

Günlük gönderimi gibi bir şeye geçmenizi öneririm. Temel olarak, 24 saatten daha az bir süre içinde 30 Gigs gönderme seçeneğine sahipseniz, günün sonunda daha kısa bir süre içerisinde gönderiliyorsanız, ağ hızı sizin için daha az sorun olacaktır.

Yavaş ağdaki geliştiricileriniz, FTP veya ne tür bir işlem gerçekleştirirseniz, daha uygun boyutlu dosyaları da indirebilecektir. Ayrıca, gün boyunca yüklenen işleri de ayarlayabilirler.

Sql sunucusu sıkıştırmasına ek olarak, litespeed veya redgate sqlbackup gibi daha yüksek sıkıştırmaya sahip bir üçüncü taraf aracı da uygulayabilirsiniz.

Ayrıca ağ tarafında, veriminizi DR sitesine optimize edebilen ağ cihazları kurabilirsiniz. Geçmişte, FL'den VA'ya 90GB yedeklemeyi 3 saatten daha kısa sürede başarıyla almak için Riverbed Appliance'ı başarıyla kullandım.

Diğer bir seçenek de, indeksler hariç, belirli dosya gruplarını yedeklemek olacaktır, fakat hala kümelenmiş indekslere sıkı sıkıya bağlısınız ve db yapınıza bağlı olarak, bu yaklaşımdan daha fazla maliyet / zorluk çekebilirsiniz.

Teşekkürler


7

Paranız varsa ve mimariniz buna izin veriyorsa, Riverbed teknolojileri gibi bir şeye bakın (http://www.riverbed.com/us/). Bu tür bir cihaz, çoğaltma veya log gönderme senaryosuyla birlikte en iyi seçeneğiniz olabilir.

Olmazsa birkaç soru. Birkaç ayda bir yalnızca bir yenileme yapmanız gerekiyorsa, neden bant genişliği konusundaki kaygı? Aktarım için endişelenmeniz gereken tek zaman bir kez, yerel olarak geri yüklemek için tam yedeklemeyi oradan almak, yoksa kurulumunuzda yanlış mıyım?

Diğer bir olasılık da, tüm bu verileri kendilerine almak, bir Citrix ortamı oluşturmak ve size uzaktan kumanda etmekten endişe duymaktır. Citrix ile müşteri / ev sahibi arasında minimum bant genişliği gereksiniminiz var ve yerel olarak ihtiyaç duyduğunuz şeyi yapma yeteneğiniz var ve bu değişiklikleri başka yerlerde çoğaltmak zorunda kalmaktan endişe etmiyorsunuz. Sadece $ 0,02


Artık bundan bahsedebilir misin? Bunun StackExchange ekibi için uygun olduğunu biliyorum, bu yüzden daha
bağımsız bir yol izleyeceğinden eminim

Haha, burada dikkate alınması gereken çok şey var. Tam olarak hangi noktayı açıklamamı istersiniz?
SQLChicken

Kopyalama / log nakliyesi aklımdaydı, fakat bu iki hafta önceydi, bu yüzden şu an için önemli olduğundan şüpheliyim . Ayrıca, Citrix ile ilgili bölümü tekrar okudum ve gördüm ve size bunu (şimdiki gibi) yapmadıklarını söyleyebilirdim. Sadece DVCS altyapısı kullanarak yerel geliştirme yapıyorlar ve sadece test / oynatma / onaylama için veri istiyor. Ayrıca belki veri dökümleri için.
jcolebrand

Anladım. Diğerlerinin de söylediği gibi, Redgate ve Quest gibi 3. taraf sağlayıcılar, ihtiyaçlarını karşılamanıza yardımcı olacak çok iyi yedekleme sıkıştırma araçlarına sahiptir. Bir diğer potansiyel çözüm de SQL Azure. Şu anda veritabanı büyüklüğü sınırı 50GB’dır, ancak yüklenen tüm veriler için masrafları yükselttiler, böylece maliyet etkin bir çözüm olabilir.
SQLChicken

4

SQL işlem çoğaltması kullanırdım. İlk yükünüz biraz zaman alacaktır, ancak bir kez kalkıp çalıştığınızda yalnızca istediğiniz bilgiyi gönderebilirsiniz. Örneğin, yalnızca güncellenen 3 veya 4 tablo varsa, yalnızca bu 3 veya 4 tabloyu gönderebilirsiniz.

Ayrıca ne göndermek istediğinizi de seçebilirsiniz. FK'ler, kümelenmiş / kümelenmemiş indeksler, tablo bölme planları, depolanan procs ve TONS daha fazlası.

http://www.sql-server-performance.com/2010/transactional-replication-2008-r2/

Bu bir seçenek değilse REDGATE SQL BACKUP - http://www.red-gate.com/products/dba/sql-backup/ adresini kullanabilirsiniz . Bunu daha önce kullandım ve sıkıştırma seviyesi% 90'a kadar çıktı. SQL'den çok daha küçük.

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.