SQL Express Edition Backup Alert

SQL Express Edition Backup Alert, Express Edition  kısıtlı bir sürüm olduğu için  Job, mail gibi yan araçları kullanamıyoruz fakat  powershell ve Task Scheduler(Görev Zamanlayıcısı)  gibi  Windows ile gelen  araçlar  ile bunları yapmamız mümkün.SQL Express Edition sürümünde backup jobımızı oluşturmuştuk. SQL Express Edition Backup Job isminde ki makalemde bulabilirsiniz.

Bu makale de alınan backupları belli aralıklarla kontrol ederek en son ne zaman backup alındığını bize mail ile bildirmesi için gerekli ayarlamaları yapacağız.

İlk olarak backupları kontrol etmek için aşağıda ki procedure oluşturmamız gerekiyor.

KULLANIN [ana]

GİT

ANSI_NULLS AÇIK AYARLA
GİT

QUOTED_IDENTIFIER'I AÇIK AYARLA
GİT

PROSEDÜR OLUŞTURMA [dbo].[backup_control]

OLARAK
BAŞLAMAK


sd.Name'i DatabaseName olarak SEÇİN,

COALESCE(Convert(varchar(12), MAX(bs.backup_finish_date), 101),'Daha Yedek Alinmamis') LastBackUpDate olarak,

COALESCE(Convert(varchar(12), MAX(bs.user_name), 101),'NA') UserName olarak

sys.sysdatabases sd'DEN

LEFT OUTER JOIN msdb.dbo.backupset bs ON bs.database_name = sd.name

GROUP BY sd.Ad

SİPARİŞ TARAFINDAN SİPARİŞ

    SON


GİT

Backup procedure

Yukarıda ki scripti çalıştırdıktan sonra dbo.Backup_kontrol procedure’ü oluşmuş mu kontrol edelim.

 

Görüldüğü gibi Master veritabanının altında ki Programmability’nin altında Stored Procedures sekmesinin altında Dbo.Backup_kontrol procedure’nü gördükten sonra kullanıcı oluşturmamız gerekiyor.

Backup User Create

Backup_kontrolUser Adında kullanıcı oluşturduk ve bu kullanıcıya User Mapping den sadece master veritabanın da public yetkisi veriyoruz sonradan oluşturduğumuz procedure üstünde execute yetkisi vereceğiz.Bu pencere de tamam dedikten sonra  oluşturduğumuz procedure’e gelip  sağ tuş yapıp Properties’i açıyor ve Permissions sekmesinden  kullanıcıya execute yetkisi veriyoruz.

Kullanıcıya execute yetkisi verdikten sonra aşağıda ki powershell scriptinde belirtilen yerleri kendinize uyarlamanız gerekiyor.

Bu işlem bittikten sonra procedure den çıkan sonucu yazdırmak için aşağıda ki gibi içi boş notepad oluşturuyoruz.

Backup.txt oluşturulduktan sonra aşağıda ki powershell scriptin de bulunan kırmızı ile işaretlenmiş yerleri kendimize göre düzenledikten sonra .ps1 uzantısında aynı yere kaydediyoruz.

 

$user = “Oluşturulan SQL Kullanıcı Adı”
$pwd = “oluşturduğumuz kullanıcının şifresi”
$veritabanı = "ana"
$connectionString = “Server=örneğe bağlanacak ip ve port ;uid=$user; pwd=$pwd;Veritabanı=$veritabanı;Entegre Güvenlik=Yanlış;”
$bağlantı = Yeni Nesne System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connectionString
$bağlantı.Aç()
$sorgu = " dbo.BACkup_kontrol'ü çalıştır"
$komut = $bağlantı.CreateCommand()
$command.CommandText = $sorgu
$sonuç = $command.ExecuteReader()
$table = yeni nesne “System.Data.DataTable”
$tablo.Yükle($sonuç)
$table | Out-File C:\Backup\Backup.txt - #notepadi oluşturduğumuz path
Send-MailMessage -From "smtp hesabı" -To "Gönderilmesini istediğimiz mail hesabı"-Subject "Başlık" -Body "Konu. " -BodyAsHtml -Attachments "c'nin altında oluşturduğumuz dizin eğer başka bir yere oluşturduysanız orayı yazmalısınız c:\Backup\Backup.txt" -Priority High -dno onSuccess, onFailure -SmtpServer "smtp sunucusu"
$bağlantı.Kapat()

Powershell uzantılı dosyamızı  belli aralıklarla  çalıştırabilmemiz için .bat uzantılı dosya hazırlamamız gerekiyor.Bunun için notepad’i açıyoruz ve aşağıda ki scripti yapıştırıp .bat uzantısında kaydediyoruz.

powershell.exe -dosyası "D:\Backup\ExpresBackupKontrol.ps1"

Windows ile beraber gelen Görev Zamanlayıcısını açıyoruz ve Görev oluştur diyoruz .

Ad bölümüne  Görevimizin ismini yazıyoruz ve Kullanıcı oturum açmışsa da açmamışsa da çalıştır seçeneğini seçerek devam ediyoruz.

Tetikleyiciler kısmına geliyoruz ve ben Günlük 08:50 de gönderecek şekilde ayarlamaları yaptım siz farklı tarih ve saat  yapabilirsiniz.

Eylemler kısmında   sol alt köşe de bulunan Yeni butonuna tıklıyoruz ve .bat uzantısında oluşturduğumuz dosyayı seçip tamam diyerek  görev yöneticisinde ki işlemlerimizi bitirmiş oluyoruz.

Yaptığımız çalışmayı doğru yaptığımızı kontrol etmek için oluşturduğumuz görevin üstünde sağ tıklayarak,çalıştır diyoruz ve mail hesabımızı kontrol ediyoruz.

En son ne zaman backup alındığı artık mail olarak gelecektir.

 

Loading