Ayuda SAP

Script - Backups con retención - SAP B1/SQL Server

Etiquetas: #<Tag:0x00007fb6381895e8>

¡Hola! les comparto un script que utilizo para automatizar mi backup de mis BD de SAP B1 con SQL Server 2012.

Esta tiene una retención de 7 días y también viene con un log el cual podremos revisar para su respectivo seguimiento.

Este mismo Script lo puedes ajustar para “X” numero de BD

1.-Script:

–1. Variable declaration

DECLARE @year VARCHAR(255);
DECLARE @path VARCHAR(500);
DECLARE @name VARCHAR(500);
DECLARE @filename VARCHAR(256);
DECLARE @DB VARCHAR(500), @SCRIPT NVARCHAR(4000);
SELECT @year = (SELECT DATENAME(dw, GETDATE()));
SET @DB =  'BD_TEST';

–2. Setting the backup path
SET @path = 'C:\Backup\' ;

–3. Defining the filename format

SELECT @name =@DB  + '_';

SET @filename = @path + @name  + @year + '_' + CAST(DATEPART(weekday, GETDATE()) AS nvarchar(1)) + '.bak';

PRINT CAST(GETDATE() AS nvarchar) + ' - COPIA DE SEGURIDAD INICIADA AL ARCHIVO: ' + @filename

–4. Executing the backup command

SELECT @SCRIPT = '
BACKUP DATABASE '+ @DB +'  TO  DISK =  ''' + @filename + '''  WITH NOFORMAT, INIT,
NAME = N''' + @DB + ' -Full Database Backup'', SKIP, NOREWIND, NOUNLOAD,  STATS = 10;
';
EXEC (@SCRIPT);


declare @backupSetId as int

select @backupSetId = position from msdb.DBO.backupset where database_name= @DB
and backup_set_id=(select max(backup_set_id) from msdb.DBO.backupset where database_name=@DB )
if @backupSetId is null
begin
DECLARE @MESSAGE  VARCHAR(MAX)= '';
SELECT @MESSAGE = N'Verify failed. Backup information for database ''' + @DB + ' ''.';
raiserror(@MESSAGE, 16, 1) ;
end;
RESTORE VERIFYONLY FROM  DISK = @filename WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND;

GO

2.- Creamos un bat que nos permita ejecutar el código T-SQL.

"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE" -S SERVIDORINSTANCIA\SQLEXPRESS -i "C:\BackupBDSAP\BackupsBD.sql" >> log.txt

Sustituimos SERVIDORINSTANCIA por el nombre de nuestro servidor y la instancia de SQL Server sobre la que queremos trabajar. Y el directorio donde esta nuestro script "BackupsBD.sql"

3.-Programamos la Tarea y nos queda algo similar.

Ejemplo:
BD_TEST_Lunes_1.bak

Y en el log podremos encontrar algo como esto:

May 30 2019  5:47PM - COPIA DE SEGURIDAD INICIADA AL ARCHIVO: C:\BackupB\BD_TEST_Lunes_1.bak
10por ciento procesado.
20por ciento procesado.
30por ciento procesado.
40por ciento procesado.
50por ciento procesado.
60por ciento procesado.
70por ciento procesado.
80por ciento procesado.
90por ciento procesado.
Se han procesado 90524 p ginas para la base de datos 'BD_TEST', archivo 'BD_TEST' en el archivo 1.
100por ciento procesado.

Saludos,

6 me gusta

Excelente @AJ_MARTINEZ, se movió el aporte a la parte de “tutoriales”, y se editó para que los códigos queden expresados como códigos, dale una revisada a cómo formatear códigos en el debate: Cómo usar el foro de Consultoria-SAP

Saludos y sigue así :clap:

3 me gusta

Lo revisare
Gracias, por la observación.

Saludos

Excelente aporte el que realizas, me parece que tu contenido esta bien estructurado.:+1: