24x7 vs Gece Penceresi


19

7x24 operasyonuna nasıl daha iyi geçilebileceğine ilişkin kaynakları nerede bulabilirim? Büyük veritabanları olan büyük şirketler bunu nasıl başarıyor? Gibi gece işlerimiz

  1. eski verileri temizle
  2. reindex
  3. istatistikleri güncelle

bunların tümü sistemimiz üzerinde kritik etkiye neden oluyor gibi görünüyor ( ör . çevrimiçi kullanıcılar ve gerçek zamanlı veri feed'leri). Bu konuyla ilgili herhangi bir kitap için Amazon'a baktım ve şu ana kadar hiçbir şey bulamadık.


Gece işlerinizin etkisini yönetmek için veritabanlarını bir sunucudan başka bir sunucuya taşımak mı yoksa daha iyi bir yol mu arıyorsunuz?
Mike Fal

Gecelik işlerin etkisi nasıl yönetilir? Yani gece "toplu pencere" azaltmak veya ortadan kaldırmak için nasıl.
NealWalters

2
@NealWalters Hangi SQL Server sürümünü kullanıyorsunuz? (Eski verileri kapatmak için çevrimiçi dizin yeniden oluşturma ve tablo bölümleme Enterprise Edition'da mevcuttur)
Martin Smith

1
Hangi sql sunucusunun sürümünü kullanıyorsunuz? Kurumsal / standart? Enterprise, en az kullanıcı etkisi ile bazı işlemleri ONLINE olarak yapmanıza izin verebilecek bazı özelliklere sahiptir .
Kin Shah

1
@NealWalters DBCC CHECKDB dosyasını birden çok güne bölmek daha fazla ayrıntı verir. Rağmen CHECKDB için daha fazla, ama size daha fazla fikir almak için yardımcı olacaktır. Hangi sürümü kullandığınızı bize bildirin, böylece buradaki insanlar size daha iyi yardımcı olabilir.
Kin Shah

Yanıtlar:


27

7x24 veritabanlarına sahip olmak, dikkate alınması gereken birçok seçenek içeren oldukça büyük bir konudur. Bu geniş konunun dikkate alması gereken birçok öğe var, ancak bazı yüksek noktalara dayandırmayı deneyebiliriz.

İlk olarak tanımlamak isteyeceğiniz şey, birçok işlem 24x7 iken, genellikle düşük aktivite süreleri vardır. Veritabanınızda karşılaşabileceğiniz paraziti azaltmak için bakımınızı yürütmek için bu sürelerden yararlanabilirsiniz. İkincisi, tam kesintiler için (hizmet paketleri veya veritabanı geçişleri gibi şeyler için) biraz zaman ayırmanız gerekeceğinden, yönetiminizle tam bakım pencerelerini görüşmeniz gerekecektir. Belirli öğeler için, her biri için düşünmeniz ve planlamanız ve araçlarınızı uygun şekilde kullanmanız gerekir. Önemli parçası sen mutlaka PLANI Bunların her biri ben sağladığınız örnekler "senin mil değişebilir" çok fazla.

Yedekler

Yedeklemelerin genellikle iş yükleri üzerinde büyük bir etkisi olmaz, ancak çok fazla G / Ç tüketebilecekleri için hesaba katılmaları gerekir. Bunları uygun şekilde programlamak ve tamamlanması gereken süreyi izlemek istersiniz. Buradaki en büyük engel, 7x24 operasyonda haftanın her gecesi tam gece yedeklemesi yapamayacağınızdır. Günlük yedeklemelerinizle birlikte tam olarak ne zaman alabileceğinizi, diferansiyelleri ne zaman alacağınızı ve her ikisi için saklama sürelerini planlamak isteyeceksiniz.

Örnek olarak, tüm veritabanlarımın Pazar gecesi (en düşük aktivite), diğer tüm gecelerdeki farklar (Pazartesi-Cumartesi) tam yedeklerini çalıştırıyorum. Son iki haftayı dolu ve farklı diskler üzerinde tutuyorum, günlükleri son iki gündür. Bu bana kurtarma için yeterli esneklik sağlar, ancak gerekirse yedekleri teypten kurtarmam gerekebilir.

Dizin / İstatistik Bakımı

Bu, uğraşmanız gereken en yaygın aktif bakım türüdür. Bundan kaçınamazsınız, ancak etkisini hafifletebilirsiniz. Temel kural, yalnızca ona ihtiyaç duyan nesneler üzerinde bakım yapmanız gerektiğidir. Genel yönergeler yalnızca % 30'dan fazla ve 1000 sayfadan daha büyük dizinleri yeniden oluşturmaktır . Eğer varsa otomatik güncelleme istatistikleri , bu istatistik bakım çoğunu idare edecek, ancak senkronize tutmak için bir gece iş kötü bir fikir değildir.

Enterprise Edition ürününüz varsa, bakımı yönetmek için başka seçeneklere de erişebilirsiniz. En başta, hala kullanımdayken dizinleri yeniden oluşturmanıza olanak tanıyan Çevrimiçi Dizin Yeniden Oluşturmalarıdır (esas olarak, dizini yan yana oluşturur, sonra değiştirir). Ayrıca, gerekli yeniden oluşturma süresini azaltmak için "büyük" tablolar için bölümleme özelliğini de kullanabilirsiniz .

Bu tür bakım için en iyi bahsiniz, eğer bu en iyi uygulamaları işleyen özel komut dosyalarınız yoksa, Ola Hallengren'in Bakım komut dosyalarını kullanmaktır . Bunların kurulumu ve yapılandırılması oldukça kolaydır ve bu yönergelerin çoğuna sahiptir.

DBCC Tutarlılık Kontrolleri

Genel iş yükünüze bağlı olarak, DBCC kontrollerinin işleminiz için aksaklık yaratabileceğini görebilirsiniz. Veritabanlarınız için DBCC etkinizi en aza indirmenin iki yaygın yolu vardır:

  • PHYSICAL_ONLY- Bu seçeneği çalıştırmak, veritabanlarınızı fiziksel sayfa düzeyinde kontrol eder ve daha invaziv tam kontrol yapılmasını önler. Bu, en olası yolsuzluk türlerinin belirlenmesini kapsayacaktır.
  • Geri yüklenen bir kopyayı denetleme - Alanınız varsa, veritabanını başka bir örneğe geri yükleyebilir ve geri yüklenen kopyaya karşı bir DBCC denetimi çalıştırabilirsiniz. Bu, aynı hikayeyi canlı veritabanınız hakkında anlatacaktır, ancak açıkçası aktiviteye müdahale etmeyeceksiniz. Buradaki diğer bazı alternatifler DBCC'yi bir günlük sevk kopyasına veya yansıtılmış bir db'ye karşı çalıştırıyor.

Bu blog gönderisi seçenekleriniz hakkında daha fazla ayrıntı sunuyor.

Toplu işler / ETL

Bu gerçekten süreçlerinizi nasıl tasarladığınıza bağlıdır. ETL'niz her zaman canlı OLTP tablolarına (diğer tüm uygulamalar gibi) müdahale edebilir, bu nedenle aklınızda bulundurmanız gereken bazı tuşlar:

  • Bu tür işleri diğer bakım işlemlerinizin çevresinde ve düşük etkinlik dönemlerinde planlayın.
  • İşi, hem performans için harmanlanacak, hem de toplu iş saatlerce masanızı kilitleyecek kadar büyük olmayacak şekilde doğru boyutlandırın. Spektrumun uçlarına örnekler: Tek bir milyon satır silme işlemine karşı sıra-acı veren satır (RBAR).
  • Sahne alanı tablolarını kullanın ve uygun olduğunda veri işlemenizi çevrimdışı yapın. Canlı öğelere yalnızca kesinlikle gerekli olduğunda dokunun.

Sonuç

Yine, burada kapsayacak çok şey var. Bu kapsamlı bir rehber değil, bazı yaklaşımlara üst düzey bir bakış. Yüksek kullanılabilirlikli seçenekleri (Kullanılabilirlik Grupları ve Yük Devretme Kümelemesi gibi) bile tartışmadım. Her bir öğeyi gözden geçirmeniz ve nasıl ele alacağınıza ilişkin bir plan oluşturmanız gerekir. Birçok yönden, ilerledikçe çalışmanızı yinelemeniz ve hassaslaştırmanız gerekir.

Ek kaynaklar:

SQL Skills VLDB bakım en iyi uygulamaları


Anlaşmalı, mükemmel, yardımsever, ayrıntılı yanıt. Teşekkürler! Biz bunun üzerinden çalışıyoruz.
NealWalters

Üzerinde çalıştığımız diğer bir faktör de, ana veritabanını daha kesin tutmak için eski verilerin çoğunu bir ODS'ye (Operasyonel Veri Deposu) taşımaktır. Ayrıca "Güncelleme İstatistikleri" nin her sabah yaklaşık 2 ila 2,5 saat çalıştığını ve bunun genel performansı yavaşlattığı görülüyor. Güncelleme İstatistiklerini her gün çalıştırmak "en iyi uygulama" mıdır?
NealWalters

Genellikle yaparım, ama YMMV. İstatistikleri güncellememe riski, istatistiklerin eski haline gelmesi ve kötü sorgu planlarına sahip olmaya başlamanızdır. Her gece güncelleme istatistikleri çalıştırmazsanız bunun bir sorun olup olmadığını analiz etmeniz gerekir. İstatistik işlerinizi daha fazla boşluk bırakabilir ve sorgularınızın genel olarak nasıl performans gösterdiğini görebilirsiniz.
Mike Fal
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.