Tento skript uložit jako SQL soubor a naplánovat automatické spouštění pomocí Windows. Na posílání emailu jsem použil vytvořenou proceduru pomocí http://www.mssqltips.com/tip.asp?tip=1795
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | DECLARE @databasename AS VARCHAR(2048) DECLARE @backupfile AS VARCHAR(2048) DECLARE @backupname AS VARCHAR(2048) DECLARE @backup AS VARCHAR(2048) DECLARE @recipients AS VARCHAR(2048) --- SETTINGS VARIABLE --- SET @databasename = 'BW_DEMO' SET @backupfile = 'E:\BackupSQL\BACKUP_BW_DEMO.BAK' SET @backupname = @databaseName + '-Full' SET @recipients = 'info@domena.cz' BACKUP DATABASE @databasename TO DISK = @backupfile WITH NOFORMAT, INIT, NAME = @backupname, SKIP, NOREWIND, NOUNLOAD, STATS = 10 DECLARE @nowdate AS VARCHAR(2048) SELECT @nowdate = CONVERT(VARCHAR(10), GETDATE(), 120) + '%' USE msdb DECLARE @resultcount AS INT SELECT @resultcount = COUNT(*) FROM dbo.backupset WHERE CONVERT(VARCHAR(10),backup_start_date,120) LIKE @nowdate AND name = @backupname AND database_name = @databasename DECLARE @emailbody AS VARCHAR(2048) DECLARE @subject AS VARCHAR(256) IF @resultcount=0 BEGIN SET @subject = 'BACKUP ' + @databasename + ': FAILED.' SET @emailbody = 'BACKUP ' + @databasename + ' IS FAILED.'; END ELSE BEGIN Declare @result table ( ID INT IDENTITY(1,1), backup_size int, backup_start_date DATETIME, backup_finish_date DATETIME ) insert into @result(backup_size,backup_start_date,backup_finish_date) select backup_size,backup_start_date,backup_finish_date FROM dbo.backupset WHERE CONVERT(VARCHAR(10),backup_start_date,120) LIKE @nowdate AND name = @backupname AND database_name = @databasename DECLARE @id AS INT DECLARE @text AS VARCHAR(2048) DECLARE @set AS VARCHAR(2048) DECLARE @start AS DATETIME DECLARE @stop AS DATETIME SELECT @set = '' SELECT @id = 1 WHILE @id < = @resultcount BEGIN SELECT @text = backup_size FROM @result WHERE id=@id SELECT @set = @set + 'Size backup: ' + @text + 'B<br>' SELECT @start = backup_start_date FROM @result WHERE id=@id SELECT @set = @set + 'Start time: ' + CONVERT(VARCHAR(20),@start,13) + '<br />' SELECT @stop = backup_finish_date FROM @result WHERE id=@id SELECT @set = @set + 'Total time: ' + CONVERT(VARCHAR(100),DATEDIFF (second,@start,@stop),8) + ' seconds' + '<br />' SELECT @set = @set + '<br />' SELECT @id = @id + 1 END SET @subject = 'BACKUP ' + @databasename + ': SUCCESSFUL' SET @emailbody = 'BACKUP <b>' + @databaseName + '</b> IS SUCCESSFUL.<br />' SET @emailbody = @emailbody + 'File backup: ' + @backupfile + '<br /><br />More information:<br />' + @set END EXEC spSendMail @recipients = @recipients, @subject = @subject, @from = 'sql@domena.cz', @body = @emailbody GO |

0 Komentáře.