Sauvegarde automatique Microsoft SQL Server Express

Sauvegarde automatique Microsoft SQL Server Express

Sauvegarde automatique Microsoft SQL Server Express Sauvegarde automatique Microsoft SQL Server Express

  • Adrien HÉBRARD

MICROSOFT SQL SERVER Express est une version limitée de MICROSOFT SQL SERVER, mais dont l'intérêt est d'être une version gratuite et plainement utilisable. La première et grande limitation est l'absence de gestion de sauvegardes de données, donc il faut passer par un automatisme manuel, ou dit "fait maison"... Il faudra avoir un script batch qui appelle une procédure SQL, le tout automatiser par le planificateur de tâches de windows. Pour ceux qui ne connaissent pas ce planifcateur, il est expliquer ICI.


Ci-dessous, vous trouverez les 2 scripts, plus le script de nettoyage (purge.bat), ce qui vous permet de régler le temps de rétention des fichiers de sauvegardes.



1/ le script de sauvegarde BAT (C:\ADMIN\BIN\backupdb.bat) :

set DATEBACKUP=%date:~6,4%%date:~3,2%%date:~0,2%

set SUBFILENAME=Sauvegarde_EUREKA-%DATEBACKUP%.BAK

sqlcmd -S Utilisateur AD avec pouvoir -E -i "C:\ADMIN\BIN\savesql.sql" -o F:Log-%DATEBACKUP%.txt



2/ Le script SQL (C:\ADMIN\BIN\savesql.sql) :

DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name

SET @path = 'F:\SQL_BACKUP'

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb')

OU si on évite les base ARC_ :

DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT LIKE 'ARC_%'

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName

FETCH NEXT FROM db_cursor INTO @name
END

CLOSE db_cursor
DEALLOCATE db_cursor



3/ le script de gestion de la rétention des sauvegardes BAT (C:\ADMIN\BIN\purge.bat) :

ForFiles /p "F:SQL_BACKUP" /s /d -15 /c "cmd /c del @file"






  LOGICIELS ANNEXES

SQL Server Management Studio (SSMS)   https://aka.ms/ssmsfullsetupFREEWARE
NAVICAT   https://www.navicat.fr/productsSHAREWARE