1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
@echo off
REM Sauvegarde d une base pour une instance
REM parametres: nom de l'instance
REM nom de la base (ATTENTION à la casse)
REM --- Chargements path
set bkp=E:\exploit\Save\save_%1_%2_%date:~6,4%_%date:~3,2%_%date:~0,2%.bak
set tmp=E:\Exploit\Temp\s_%1_%2.sql
set log=E:\Exploit\Log\Sauvegarde_%1_%2_%date:~6,4%_%date:~3,2%_%date:~0,2%.log
REM --- rc utilise pour exit
set rc=0
REM --- les parametres sont ils presents ?
if "%1" == "" goto erreur_param
if "%2" == "" goto erreur_param
REM REM --- Insertion date et heure dans le fichier log
date /T > %log%
time /T >> %log%
REM
REM --- Suppression de l ancien log et sql pour cette instance/base
if exist %TMP%\%2.sql del /Q %TMP%
if exist %LOG%\%2.log del /Q %LOG%
REM --- Suppression de l ancien backup de l instance/base de données
del E:\exploit\Save\save_%1_%2_*.bak /Q
REM --- le dump du jour existe t il si oui on le detruit
if exist %bkp% del /Q %bkp%
REM --- préparation du script sql
echo select getdate() as "date de traitement" > %tmp%
echo use %2 >> %tmp%
echo go >> %tmp%
echo exec sp_addumpdevice 'disk',nomsave_%1_%2, '%bkp%' >> %tmp%
echo go >> %tmp%
echo backup database %2 to nomsave_%1_%2 >> %tmp%
echo go >> %tmp%
echo exec sp_dropdevice 'nomsave_%1_%2' >> %tmp%
echo go >> %tmp%
REM --- Clear to launch
sqlcmd -S <ip ou nom dns du serveur>\%1 -U sa -P %1 -i %tmp% -o %log%
findstr /I "BACKUP.DATABASE.a.trait..avec.succ.s" %LOG% >NUL
IF %ERRORLEVEL% EQU 0 goto fin
goto erreur_sqlcmd
REM --- Gestion de erreur et Fin
REM --- Gestion erreur syntaxe sqlcmd
:erreur_sqlcmd
echo probleme sur sauvegarde niveau sqlcmd
echo consulter Log
exit 10
REM --- Gestion erreur paramètres
:erreur_param
echo paramètre(s) instance et/ou base absent(s)
exit 10
REM -- Fin
:fin
echo
echo Sauvegarde de %1\%2 terminée avec un rc de %rc%
exit %rc% |
Partager