Sql Managament Yedeği Belirli Zaman Aralığı İle Alıp Rar Yapmak

11/12/2024, 00:52

AltaR

merhabalar Sql de daha otomatik yedeklemeyi aldıktan sonra aynı klasöre ziplemesini istiyorum benim belirlediğim saatlerde bunu nasıl yapabilirim.
11/12/2024, 12:08

atoykan

SSMS Object Explorer'dan Sql Server Agent'ın Start olduğundan emin olun. Sql Server Agent / Jobs bölümüne sağ tıklayın ve New Job seçeneğini ile yeni görev ekleyip General sekmesinde görev için size ne iş yaptığını hatırlatacak bir isim girin. Steps sekmesine geçip New butonuna tıklayın Step Name için uygun bir ad girin, Type kısmında T-SQL seçin, Command kısmına
DECLARE @BackupPath NVARCHAR(255) = 'yedekleme yolunuzu girin';
DECLARE @BackupFile NVARCHAR(255) = @BackupPath + 'database_backup_' + CONVERT(VARCHAR(20), GETDATE(), 120) + '.bak';
DECLARE @ZipFile NVARCHAR(255) = @BackupPath + 'database_backup_' + CONVERT(VARCHAR(20), GETDATE(), 120) + '.zip';

-- Yedekleme işlemi tanımlayın
BACKUP DATABASE [Veritabanınızınadı]
TO DISK = @BackupFile;

-- Zipleme işlemi kullanacağınız sıkıştırma programını belirleyin örneğin winrar, 7-zip, vs
DECLARE @ZipCommand NVARCHAR(4000);
SET @ZipCommand = '"C:\Program Files\WinRAR\WinRAR.exe" a -afzip "' + @ZipFile + '" "' + @BackupFile + '"';

EXEC xp_cmdshell @ZipCommand;

-- Yedek dosyasını isteğe bağlı olarak alandan kazanmak için silip sadece zip olanı tutabilirsiniz
EXEC xp_cmdshell 'DEL "' + @BackupFile + '"';
kodunu girip Ok butonuna basın. Ardıncan Schedules sekmesine girip New butonuna tıklayın ve Name alanına istediğiniz zamanı hatırlatacak bir isim girin, Schedule Tpe'da Recurring seçip Frequency'de günlük / haftalık / aylık nasıl istiyorsanız onu seçin ve saat seçiminizi girip Ok butonuna tıklayın. Job penceresine dönmüş olacaksınız burada da Ok butonuna tıklayın görevi kaydedin. Zamanlama ile zipleyerek yedek alma görevini tanımlamış olursunuz. Test etmek için Job'a sağ tıklayıp Start edebilirsiniz.