Backup DB Full- Diff- Log


SolutionThere are two components to this; the first is the backup command and the second is the scheduling needed to run the backups.
Backup CommandsThere are a few things that we need to setup.  The first is to create a stored procedure that allows us to dynamically generate the backup file name as well as what type of backup to run Full, Differential or Transaction Log backup. The default for this stored procedure is to create the backups in the "C:\Backup" folder.  This can be changed to any folder you like.
The following stored procedure should be created in the master database.  This is just one way of handling this.  There are several other options and enhancements that can be made.
USE [master] 
GO  
/****** Object:  StoredProcedure [dbo].[sp_BackupDatabase]    Script Date: 02/07/2007 11:40:47 ******/  SET ANSI_NULLS ON  GO  SET QUOTED_IDENTIFIER ON  GO 

-- ============================================= 
-- Author: Edgewood Solutions 
-- Create date: 2007-02-07 
-- Description: Backup Database 
-- Parameter1: databaseName 
-- Parameter2: backupType F=full, D=differential, L=log
-- =============================================  
CREATE PROCEDURE [dbo].[sp_BackupDatabase]  
       
@databaseName sysname@backupType CHAR(1)  AS 
BEGIN 
       SET 
NOCOUNT ON

       
DECLARE @sqlCommand NVARCHAR(1000
       
DECLARE @dateTime NVARCHAR(20

       
SELECT @dateTime REPLACE(CONVERT(VARCHARGETDATE(),111),'/','') + 
       
REPLACE(CONVERT(VARCHARGETDATE(),108),':','')  

       
IF @backupType 'F' 
               
SET @sqlCommand 'BACKUP DATABASE ' @databaseName 
               
' TO DISK = ''C:\Backup\' @databaseName '_Full_' @dateTime '.BAK''' 
        
       
IF @backupType 'D' 
               
SET @sqlCommand 'BACKUP DATABASE ' @databaseName 
               
' TO DISK = ''C:\Backup\' @databaseName '_Diff_' @dateTime '.BAK'' WITH DIFFERENTIAL' 
        
       
IF @backupType 'L' 
               
SET @sqlCommand 'BACKUP LOG ' @databaseName 
               
' TO DISK = ''C:\Backup\' @databaseName '_Log_' @dateTime '.TRN''' 
        
       
EXECUTE sp_executesql @sqlCommand  END
The second part of this is to create a SQLCMD file to run the backup commands.  Here is a simple SQLCMD file that backups databases master, model and msdb. 
This file gets saved as backup.sql and for our purposes this is created in the "C:\Backup" folder, but again this could be put anywhere.
sp_BackupDatabase 'master', 'F'
GO
sp_BackupDatabase 'model', 'F'
GO
sp_BackupDatabase 'msdb', 'F'
GO
QUIT

Comments

Popular posts from this blog

Who Deleted and Drop the record in table

Generate Password

Key Board Shortcuts