SQL Server bakım planı oluşturma
Normal SQL Server bakımı için zamanlayabileceğiniz tipik etkinlikler şunlardır:
- Veritabanı ve işlem günlüğü yedeklemeleri
- Veritabanı tutarlılığı denetimleri
- Dizinin bakımını yapma
- İstatistik güncelleştirmeleri
Tüm veritabanlarınız için yedeklemelerin, dizin ve istatistik bakımının önemini anlamak çok önemlidir.
CHECKDB (komutunu DBCC CHECKDBkullanarak) olarak da bilinen veritabanı tutarlılığı denetimleri, veritabanının tamamını bozulma açısından denetlemenin tek yolu olduğundan aynı derecede önemlidir. Veritabanlarınızın boyutuna ve çalışma süresi gereksinimlerinize bağlı olarak, tüm bu etkinlikleri her gece gerçekleştirebilirsiniz. Ancak hem dizin bakımı hem de tutarlılık denetimleri çok yoğun olduğundan ve genellikle hafta sonu saatlerinde yapıldığından, üretim sistemlerinde bakım işlemleri genellikle hafta içine yayılır.
Birçok DBA, büyük veritabanlarının yedeklemelerini kademelendirmek, haftada bir tam yedekleme gerçekleştirmek ve belirli bir noktaya kurtarmayı yönetmek için değişiklik ve işlem günlüğü yedeklemeleri kullanmaktır. SQL Server, Bakım Planlarını kullanarak tüm bu görevleri yönetmek için yerleşik bir yol sunar. Bakım Planları, veritabanlarınızı desteklemek için bir görev iş akışı oluşturur ve Bakım etkinliklerinizi zamanlamanıza olanak sağlayan Integration Services paketleri olarak oluşturulur. Ayrıca birçok DTA, bakım etkinlikleri üzerinde daha fazla esneklik ve denetim elde etmek için veritabanı bakımı için açık kaynak betikler kullanır.
Bakım planları için en iyi yöntemler
Bakım planları yalnızca veritabanı bakımı gerçekleştirmenize yardımcı olmakla kalmaz, aynı zamanda SQL Server Aracısı için veri deposu görevi gören msdb veritabanındaki verileri ayıklama seçenekleri sunar. Ayrıca bakım planları, eski veritabanı yedeklemelerinin diskten kaldırılmasını belirtmenize olanak sağlar. Eski yedekleme dosyalarını kaldırmak yedekleme biriminizin boyutunu küçültür ve msdb veritabanının boyutunu yönetmeye yardımcı olur.
Yedekleme saklama sürenizin tutarlılık denetimi pencerenizden daha uzun olduğundan emin olun. Örneğin, haftalık bir tutarlılık denetimi çalıştırırsanız, tutarlılık denetimleri sırasında algılanan olası bozulmalardan kurtarmak için yeterli yedekleme geçmişini korumanız gerekir. Yedekleme işleminin veritabanında bozulma algılamadığını, bu nedenle bir yedekleme dosyasında bozulma olabileceğini unutmayın. Bakım planı etkinlikleri yürütme için SQL Server Aracısı işleri olarak zamanlanır.
Bakım planı oluşturma
Aşağıda gösterildiği gibi SQL Server Management Studio kullanarak bir bakım planı oluşturabilirsiniz. Örnekte, birden çok bakım görevi tek bir bakım planında birleştirilir. Ancak en iyi yöntem, her görev türü için ve hatta sunucunuzdaki belirli veritabanları için ayrı bir bakım planı oluşturmaktır. Örneğin, sistem veritabanlarını yedeklemek için bir bakım planı ve kullanıcı veritabanlarını yedeklemek için başka bir bakım planı oluşturabilirsiniz. Ayrıca, özellikle büyük bir kullanıcı veritabanının yedeklemesini işlemek için ayrı bir bakım planınız olabilir. Aşağıdaki görüntüde ve aşağıdaki örneklerde Bakım Planı Sihirbazı'nı kullanarak bir bakım planının nasıl oluşturulacağı gösterilmektedir.
Görüntüde, SQL Server Management Studio'da (SSMS) Bakım Planı Sihirbazı'nın ilk ekranı gösterilir. Bakım planınız için bir ad ve farklı çalıştır hesabı belirtmeniz gerekir. Bakım görevlerinin çoğu SQL Server Agent hizmet hesabı olarak çalışır, ancak güvenlik amacıyla bazı görevlerin farklı bir hesap olarak çalıştırılması gerekebilir. Örneğin, yalnızca belirli bir hesap tarafından erişilebilen bir dosya paylaşımına yedeklemeniz gerekiyorsa, SQL Server Aracısı'nın bir bileşeni olan bir ara sunucu kullanıcısı kullanırsınız.
Proxy hesabı nedir?
Ara sunucu hesabı, SQL Server Aracısı'nın belirli iş adımlarını belirlenmiş bir kullanıcı olarak yürütmek için kullanabileceği, depolanan kimlik bilgilerine sahip bir hesaptır. Bu kullanıcının oturum açma bilgileri SQL Server örneğinde kimlik bilgisi olarak depolanır. Ara sunucu hesapları genellikle belirli iş adımları çok ayrıntılı güvenlik hakları gerektirdiğinde kullanılır.
Veritabanını bir ağ dosya paylaşımına yedeklemesi gereken bir SQL Server Agent işiniz olduğunu varsayalım. SQL Server Agent hizmet hesabının dosya paylaşımına erişimi yoksa, gerekli izinlere sahip bir proxy hesabı oluşturabilirsiniz. Bu proxy hesabı daha sonra gerekli erişim haklarına sahip olduğundan emin olarak yedekleme adımını çalıştırmak için kullanılabilir.
İş zamanlamaları
İş zamanlamaları, msdb sistem veritabanındaki iş sisteminin bir parçasıdır. SQL Server Agent işleri ve zamanlamaları çoka çok ilişkisine sahiptir, yani her işin birden çok zamanlaması olabilir ve her zamanlama birden çok işe atanabilir. Ancak, Bakım Planı Sihirbazı bağımsız zamanlamaların oluşturulmasına izin vermez. Bunun yerine, her bakım planı için belirli bir zamanlama oluşturur.
Aşağıdaki örnekte haftalık yürütme zamanlaması gösterilmektedir, ancak saatlik veya günlük yinelenme ile bir zamanlama oluşturma seçeneğiniz de vardır.
Sonraki adım plana eklenecek bakım görevlerini seçmektir. Aşağıdaki örnek, bakım planınız tarafından gerçekleştirilebilecek işlemleri gösterir.
Veritabanı bütünlüğünü denetleme - Bu görev, her veritabanı sayfasının mantıksal ve fiziksel tutarlılığını doğrulamak için komutunu çalıştırır DBCC CHECKDB . Bu görevi düzenli olarak gerçekleştirmeniz ve yedekleme saklama pencerenizle hizalamanız gerekir. Bozulmayı önlemek için önceki yedeklemeleri atmadan önce tutarlılık denetimini tamamladığınızdan emin olun.
Veritabanını daralt - Bu görev, verileri sayfalardaki boş alana taşıyarak veritabanı veya işlem günlüğü dosyasının boyutunu küçültür. Yeterli alan boşaltıldıktan sonra dosya sistemine döndürülebilir. Bu eylemin, ciddi dizin parçalanmalarına ve veritabanı performansına zarar vermesine neden olduğu için düzenli bakımlara dahil edilmemesi önerilir. İşlem aynı zamanda çok G/Ç ve CPU yoğunlukludur ve bu da sistem performansını önemli ölçüde etkileyebilir.
Dizini yeniden düzenleme/yeniden derleme - Bu görev bir veritabanının dizinlerindeki parçalanma düzeyini denetler ve kullanıcı tanımlı parçalanma düzeyine göre dizini yeniden oluşturur veya yeniden düzenler. Dizini yeniden derlemek, istatistiklerini de güncelleştirir.
İstatistikleri güncelleştirme - Bu görev, SQL Server tarafından sorgu yürütme planları oluşturmak için kullanılan sütun ve dizin istatistiklerini güncelleştirir. Doğru istatistikler, sorgu iyileştiricisinin en iyi kararları vermesinde çok önemlidir. Taranacak tablo ve dizinleri ve taranacak satır yüzdesini veya sayısını seçebilirsiniz. Varsayılan örnekleme oranı genellikle yeterlidir, ancak belirli tablolar için daha ayrıntılı istatistiklere ihtiyacınız olabilir.
Temizleme geçmişi - Bu görev, veritabanından yedekleme ve geri yükleme işlemlerinin msdb geçmişini ve SQL Server Aracısı işlerinin geçmişini siler.
msdb veritabanının boyutunu yönetmeye yardımcı olur.
SQL Server Aracısı işini yürütme - Bu görev kullanıcı tanımlı bir SQL Server Aracısı işi çalıştırır.
Yedekleme Veritabanı (Tam/Fark/Günlük) - Bu görev bir SQL Server örneğindeki veritabanlarını yedekler. Tam yedekleme, veritabanının tamamını yakalar ve geri yükleme için başlangıç noktası görevi görür. Değişiklik yedekleri, son tam yedeklemeden bu yana değişen sayfaları yakalar ve artımlı bir geri yükleme noktası sağlar. İşlem günlüğü yedeklemeleri işlem günlüğünüzdeki etkin sayfaları yakalar ve kurtarma noktası hedefinizi tanımlamanıza olanak sağlar. İşlem günlüğü yedeklemelerinin SIMPLE kurtarma modundaki veritabanlarında gerçekleştirilemediğini unutmayın.
Örneğin, Pazar günü tam yedekleme ve hafta içi her hafta bir değişiklik yedeklemesi alırsanız, veritabanınızı Perşembe günü öğlene geri yüklemek için Pazar'ın tam yedeklemesini, Çarşamba'nın değişiklik yedeklemesini ve işlem günlüğü yedeklemelerini Çarşamba'nın değişikliklerinden Perşembe'ye öğle saatlerinde geri yüklersiniz.
Bakım Temizleme Görevleri - Bu görev, metin raporları ve yedekleme dosyaları da dahil olmak üzere bakım planlarıyla ilgili eski dosyaları kaldırır. Yalnızca belirtilen klasörlerdeki yedeklemeleri kaldırır, bu nedenle tüm alt klasörlerin açıkça listelenmiş olması gerekir, aksi takdirde atlanırlar.
Her görevin kapsamı kullanıcı veritabanları, sistem veritabanları veya özel veritabanı seçimi olabilir ve her birinin belirli yapılandırma seçenekleri vardır.
Plan oluşturuldukten sonra SQL Server Aracısı'nda bir iş olarak görünür. Oluşturma işlemi sırasında veya sonrasında bir zamanlama eklediyseniz, bu iş yürütülür ve bakım görevleri gerçekleştirilir.
Çok sunuculu ortam
çok sunuculu bir ortamda SQL Server Aracısı, bir sunucuyu hedef sunucular olarak bilinen diğer sunucularda işleri yürütebilen bir ana sunucu olarak atamanıza olanak tanır. Ana sunucu, işlerin ana kopyasını depolar ve bunları hedef sunuculara dağıtır. Hedef sunucular, iş zamanlamalarını güncelleştirmek için düzenli aralıklarla ana sunucuya bağlanır. Bu kurulum, bir işi bir kez tanımlamanızı ve kuruluşunuz genelinde dağıtmanızı sağlar. Örneğin, ana sunucuda veritabanı bakım görevlerini yapılandırabilir ve tutarlı dağıtım sağlamak için bunları bir hedef sunucu grubuna gönderebilirsiniz.