Daily Database Backup Scripts
Execute these stored procedures to backup all your database daily and your transaction logs several time daily. Save space by using the overwrite feature.
2015-12-17
5,146 reads
---Objetivo:Backup all databases for an instance (complete, Differential or log of transactions)
---Fecha: 25/03/2014
---Autor: Andrés Noé Michaca Trujillo
-- El nombre del archivo tendrá este Formato databse_day_month_year_hours_minutes_seconds.BAK
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_BackupDatabaseFullDiferenciallLog]
@backupType CHAR(1)
AS
BEGIN
DECLARE @name VARCHAR(50) -- Nombre de la Base de Datos
DECLARE @path VARCHAR(256) -- Ruta para las copias de seguridad
DECLARE @fileName VARCHAR(256) -- Nombre del Fichero
DECLARE @fileDate VARCHAR(20) -- Usado para el nombre del fichero
DECLARE @sql NVARCHAR(1000) -- Comando SQL
declare @MODE VARCHAR(30) -- mode de recueracion de la base de datos
-- Ruta para las copias de seguridad
SET @path = 'C:\RESPALDOS_PRUEBA\'
-- Generar nombre del archivo de respaldo
set @fileDate = REPLACE(REPLACE(CONVERT(VARCHAR(20),GETDATE(),113),' ','_'),':','_')
DECLARE db_cursor CURSOR FOR
SELECT name,recovery_model_desc
FROM sys.databases
WHERE name NOT IN ('master','model','msdb','tempdb','ReportServerTempDB','ReportServer') -- excluir estas bases datos
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name,@MODE
WHILE @@FETCH_STATUS = 0
BEGIN
If @backupType='F'
SET @sql ='BACKUP DATABASE ' + '['+LTRIM(RTRIM(@name)) +'] TO DISK = N'''+ @path + @name +'_'+ @fileDate+'.BAK''' + 'WITH NOFORMAT,NOINIT, CHECKSUM, SKIP, COMPRESSION'
if @backupType='D'
SET @sql ='BACKUP DATABASE ' + '['+LTRIM(RTRIM(@name)) +'] TO DISK = N'''+ @path + @name +'_'+ @fileDate+'.BAK''' + 'WITH DIFFERENTIAL, CHECKSUM, SKIP, COMPRESSION'
if @backupType='L' AND @MODE='FULL'
SET @sql ='BACKUP LOG ' + '['+LTRIM(RTRIM(@name)) +'] TO DISK = N'''+ @path + @name + '_LOG_'+@fileDate+'.TRN''' + 'WITH COMPRESSION'
EXECUTE sp_executesql @sql
FETCH NEXT FROM db_cursor INTO @name,@MODE
END
end
CLOSE db_cursor
DEALLOCATE db_cursor
--TO EXECUTE
exec sp_BackupDatabaseFullDiferencialLog 'F'