Vous êtes sur la page 1sur 3

lsp195-oki-cc

-- STEP1 -- Delete History, Backup Full


SET NOCOUNT ON

DECLARE @TSQL AS NVARCHAR(4000)


DECLARE @FileName AS NVARCHAR(500)
DECLARE @dbName AS NVARCHAR(100)
DECLARE @date_Aux AS NVARCHAR(50)

DECLARE curDatabases CURSOR LOCAL FAST_FORWARD FOR


SELECT name
FROM master.dbo.sysdatabases
WHERE dbid in (1,3,4)

OPEN curDatabases

SET @TSQL = 'NET USE E: \\zbr05dev10\d$\Backup\MSSQL\ZBR05DEV04 /PERSISTENT:NO'


EXEC master..xp_cmdshell @TSQL, no_output

FETCH NEXT FROM curDatabases


INTO @dbName
WHILE @@FETCH_STATUS = 0
BEGIN

IF CONVERT(SYSNAME,DATABASEPROPERTYEX(@dbName,'Status')) = 'ONLINE'
BEGIN

SET @TSQL = 'mkdir E:\' + @dbName


EXEC master..xp_cmdshell @TSQL, no_output

SET @FileName = N'''E:\' + @dbName + '\' + @dbName + '_Backup_FULL_' +


CAST(CONVERT(VARCHAR, GETDATE(), 112) AS VARCHAR) + '_' + CAST(DATEPART(hour,
GETDATE()) AS VARCHAR) + 'h' + CAST(DATEPART(minute, GETDATE()) AS VARCHAR) +
'm.sbf'''
SET @TSQL = N'BACKUP DATABASE [' + @dbName + ']
TO DISK = ' + @FileName + '
WITH NOFORMAT,
INIT,
SKIP'
EXEC SP_EXECUTESQL @TSQL

SET @TSQL = N'RESTORE VERIFYONLY FROM DISK = ' + @FileName + ' WITH
NOUNLOAD, NOREWIND'
EXEC SP_EXECUTESQL @TSQL
END

FETCH NEXT FROM curDatabases


INTO @dbName
END

SET @TSQL = 'NET USE E: /DELETE'


EXEC master..xp_cmdshell @TSQL, no_output

CLOSE curDatabases
DEALLOCATE curDatabases

SET NOCOUNT OFF


-- STEP2 -- Send EMail
SET NOCOUNT ON

DECLARE @EMail AS NVARCHAR(100)


DECLARE @Subject_Aux AS NVARCHAR(100)
DECLARE @Body_Aux AS NVARCHAR(4000)
DECLARE @Path AS NVARCHAR(200)
DECLARE @File_Attachments_Aux AS NVARCHAR(500)

-- change here (below) for each server --

SET @EMail = N'dbabz@motorola.com'


SET @Path = N'D:\BACKUP\MSSQL\DEFAULT\Log\'
SET @File_Attachments_Aux = @Path + N'DBABZ_Report_SystemDB_BackupFull.sbf'
--
DBABZ_Report_UserDB_BackupFull.ubf
--
DBABZ_Report_UserDB_BackupDiff.ubd
--
DBABZ_Report_UserDB_BackupLog.ubl
--
DBABZ_Report_SystemDB_BackupFull.sbf

SET @Subject_Aux = 'MSSQL Backup Full - System Database - ''' + @@SERVERNAME + ''''

-- change here (above) for each server --

SET @Body_Aux = 'Please see attached file for details.


Open the file with a basic text editor, ex.: NOTEPAD.

Steps Included
--------------
** Delete History
Delete backup files older than 1 day from file system.

** Backup
Backs up an entire database, or the portions of the database changed since the last
full
backup (differential), or transaction log.

Ex.: BACKUP DATABASE successfully processed 161 pages in 0.150 seconds (8.792
MB/sec). [SQLSTATE 01000]

** Restore Verify
Verifies the backup but does not restore it, and checks to see that the backup set
is complete and the
entire backup is readable. However, RESTORE VERIFYONLY does not attempt to verify
the structure of the
data contained in the backup volumes.

Ex.: The backup set on file 1 is valid. [SQLSTATE 01000]


'

EXEC master.dbo.xp_sendmail
@recipients = @EMail,
@subject = @Subject_Aux,
@message = @Body_Aux,
@attachments = @File_Attachments_Aux,
@width = 7250

SET NOCOUNT OFF

Vous aimerez peut-être aussi