Bu gereksinimi gidermek için sevgili arkadaşım Batuhan Yıldız (Microsoft PFE)'dan destek aldık, çünkü konu hakkında çözüm için gereken araç gerece ulaşmak kolay değildi.
Eğer sunucuda bir SQL Server 2008 Database Engine kurulu olsaydı işimiz çok kolay olacaktı, çünkü SQL Server Agent hem XMLA kodlarını çalıştırıyor (ki veritabanlarının Backup Script'lerini çalıştırmak için bu işlevselliğe ihtiyaç var) hem de zaman ayarlı olarak çalışabiliyor.
Fakat bizim durumumuzda bir SQL Server Agent yok. SQLCMD ise XMLA kodlarını çalıştırmıyor. SQL Server'ın doğrudan kendi parçası olan başka da bir araç gereci yok.
Batuhan'dan adını ilk defa duyduğum "ascmd" isimli aracın varlığını da bu sorunla öğrenmiş oldum. "ascmd" isimli araç, tam da aradığımız gibi, SQLCMDvari bir araç ve XMLA Script'lerini çalıştırabiliyor. Fakat bu araç ile ilgili bir sorun var, SQL Server 2005 versiyonunu Codeplex'te bulabiliyorsunuz; fakat SQL Server 2008 versiyonunu internette bulmak konusunda ben muvaffak olamadım. Ancak Microsoft'taki diğer arkadaşlardan doğrudan elden alarak edinebildik bu aracı. Ayrıca şunu da belirtmek isterim ki, bu aracın uygulama halini (exe) doğrudan edinemiyorsunuz. Bu aracın kaynak kodlarını edinebiliyorsunuz ve bu kodları indirdikten sonra derlemeniz gerekiyor. Derlemek için de cscript.exe yetmiyor, Visual Studio'nun C# bileşenlerinin de yüklü olması gerekiyor.
Bizim durumumuzda birden fazla SSAS veritabanının yedeklenmesi gerekiyordu. Böyle bir durumda da aşağıdaki gibi bir Script'inin kullanılması gerekiyor. Yani "Batch" bloğunun içinde olmalı yedek alma Script'leri.
Velhasıl, "ascmd" uygulamasını ve yedekleme Script'lerini edindikten sonrası bildik hikâye. Bu Script'i bir XMLA dosyasına kaydedip aşağıdaki gibi bir komut dizisiyle Windows Task Scheduler kullanarak zaman ayarlı olarak çalıştırabilirsiniz:
ascmd -S DWANALIZ -i X:\BACKUP\ASBackupScript.xmla
Hiç yorum yok:
Yorum Gönder