SQL Server administration and T-SQL development, Web Programming with ASP.NET, HTML5 and Javascript, Windows Phone 8 app development, SAP Smartforms and ABAP Programming, Windows 7, Visual Studio and MS Office software
Development resources, articles, tutorials, code samples, tools and downloads for ASP.Net, SQL Server, Reporting Services, T-SQL, Windows, AWS, SAP HANA and ABAP

MS SQL Server Maintenance Plan Oluşturmak


MS SQL Server üzerinde veritabanlarınız var ve bunları düzenli olarak yedeklemek istiyorsunuz. Ve diyelim ki geriye dönük olarak iki aylık bir süreç içinde aldığınız tüm yedekleri tutmak istiyorsunuz. İki aydan daha eski olanları da otomatik olarak sisteminizden silmek diskinizde bir yer problemi oluşmasını engelleyecek.

Bunun için en uygun yöntem MS SQL Server üzerinde Enterprise Manager ile bir Maintenance Plan oluşturmanız olacaktır.

Atacağınız ilk adım SQL Server üzerindeki bir veritabanı üzerinde sağ tıklama ile açılacak menüden "All Tasks" ve ardından "Maintenance Plan..." seçimlerini yapmaktır. Seçiminizin hemen ardından karşınıza bir "Maintenance Plan" oluşturmanızda size yol gösterecek sihirbaz gelecektir.

SQL Server Maintenance Plan

Veya sunucunuzdaki Management altında yeralan Database Maintenance Plans 'e tıklayarak Action menüsünden "New Maintenance Plan" ile de bu sihirbaza ulaşabilirsiniz.

Create new Maintenance Plan for SQL Server

Oluşturacağınız plan ile SQL Server Agent uygulamasının düzenli aralıklarla çalışarak veritabanı bütünlüğünü kontrol etmesini, veritabanı istatistiklerini güncellemesini, yedekleme işlemlerini gerçekleştirmesini ve transaction loglarını başka bir sunucuya kopyalanmasını sağlayabilirsiniz.

SQL Server Maintenance Plan wizard

Tüm bu işlemler için SQL Server Agent servisinin çalışıyor olması gerektiğini unutmayalım.

Bir sonraki adımınız bakım planınıza dahil olacak veritabanlarını belirlemek olacaktır. "pubs" yanında "Northwind" veritabanını da ekleyebiliriz.

SQL Server Maintenance Plan database selection

Ardından seçtiğiniz veritabanındaki veri ve indeks sayfalarının yeniden düzenlenmesi aşaması gelmektedir. Dilerseniz bu aşamayı hiçbir işlemin gerçekleşmesini seçmeden geçebilirsiniz. Veya bir kaç adımda fiziksel olarak verilerin tutulduğu ve bu verilere kolay erişimde kullanılan indekslerin fiziksel olarak tutuldukları "page"lerin performansı arttıracak şekilde yeniden yapılandırılmasını sağlayabilirsiniz. Burada ve SQL server ile ilgili olarak yapılan işlemlerde sıkça karşılaşacağımız "schedule" yani takvim oluşturma işlemini de yapalım. Belirleyeceğimiz takvime göre veri ve indeks sayfalarının güncellenmesi, veritabanı istatistiklerinin güncellenmesi ile veritabanı "shrink" işleminin yapılması SQL Server Agent tarafından gerçekleştirilecektir.

data optimization

Varsayılan takvim sıklığı "Occurs every 1 week(s) on Sunday, at 01:00:00." yani haftada bir pazarları saat 01'dir.

Sizde bu işlemlerin hergün, günde iki kez tekrarlanmasını ve sürekli olarak tekrarlanmasını isteyebilirsiniz.

SQL Server Maintenance Plan job schedule

Veritabanı bütünlüğünün kontrolü aşamasında ihtiyacınız olan ayarlamaları yaptıktan sonra bu kontrollerin sıklığını dilediğiniz takvime bağlayabilirsiniz.

integrity check

En sık kullanacağımız ve en ihtiyacımız olan da veritabanlarının otomatik olarak yedeklenmesi ile ilgili ayarların yapıldığı bölümdür. Burada yedekleme işlemini bakım planına dahil ettik. Ardından yedekleme sonrası verinin bütünlüğünün kontrol edilmesini istedik. Ve alınan yedeğin disk üzerine yazılmasını seçtik. Yine yedekleme işlemi için bir takvim belirlemeniz gerekecek. Yedekleme işlemini sisteminizin boş olduğu bir saatte yaptırabilirsiniz.

SQL Server database backup

Bir sonraki adımda disk üzerinde yedeklerimizin nereye yazılması, geriye dönük kaç günlük yedek tutulacağı bilgilerini sisteme tanıtabilirsiniz. Örneğin varsayılan yedek dizinine değilde ayrı bir dizinde yedeklerinizi kaydetmek istediğinizi girdiniz. Her bir veritabanı için ayrı ayrı dizinlerde bu yedeklerin tutulacağını belirttiniz. 1 haftadan daha eski yedeklerin sistem tarafından silinmesini seçtiniz. Ve yedek dosyalarınızı tanımlayabilmek için .BAK uzantısını seçtik.

SQL Server database backup disk

Bir sonraki adım Transaction Log'larının yedeklenmesi için ayarların yapıldığı bölümdür. Bu kısım size bir önceki kısım ile tanıdık gelecektir.

Veritabanları ile ilgili bakım işlemlerinin tanımlanmasını bitirdikten sonra bakım planı sonuçlarının bir rapor olarak alınmak istenip istenmediği ile ilgili ayarların yapıldığı bölüme geldik. Rapor isteniyorsa hangi dizinde tutulmasını istediğinizi belirtebilirsiniz. Ayrıca belli bir dönemden önceki raporların yine sistem tarafından otomatik olarak temizlenmesini sağlayabilirsiniz. Ve isterseniz hazırlanan bu raporun e-posta yolu ile dağıtımını sağlayabilirsiniz.

reports

Son adım bakım sırasınca bir tarihçe tutulmasını isteyip istemediğinizi belirttiğiniz bölümdür. Bu tarihçe bilgileri MSDB veritabanı içinde sysdbmaintplan_history tablosuna yazılacaktır. İsterseniz bu logları başka bir sql server üzerinde de tutabilirsiniz.

SQL Server Maintenance Plan history

Aşağıdaki sorgu cümleciği ile tablodaki tüm kayıtları görüntüleyebilirsiniz.

USE msdb
SELECT * FROM sysdbmaintplan_history
Code

Bir isim vererek bakım planınızı tanımlamış olduk ve bir takvime bağlı olarak çalışmasını sağladık.

maintenance plan in SQL Server

Dilerseniz Management altındaki "Database Maintenance Plans"e tıklayarak sağ panelde yeni oluşturduğumuz bakım planı kaydını görebilir ve buradan seçerek güncelleyebilirsiniz.

Database Maintenance Plans



SQL Server

SQL Server 2019 Installation
download SQL Server 2019
download SQL Server 2017
download SQL Server 2016
download SQL Server 2014
download SQL Server 2012
MacOS ve SQL Server 2019


Copyright © 2004 - 2021 Eralper YILMAZ. All rights reserved.