Nem mai cucc, de még mindig könnyen megoldható néhány batch fájl segítségével időzített feladatokat végrehajtani. Meg valójában volt egy alap kidolgozott mentési folyamat és idő hiányában rendes rendszergazdaként „lusta” voltam más megoldást keresni, ha ez eddig is bevállt. Most kettő batch fájlt hívtam segítségül, hogy a Microsoft Windows 10 operációs rendszer futtató gépen az SQLEXPRESS adatbázis mentéseket automatizáljam.
Az első batch fájl localbackup.bat menti az összes sql adatbázist ami a gépen van a D:\sqlbackup könyvtáramba. Ütemezett feladatként beállítva mindennap 23:00 órakor fut le és létrehozza a dátummal ellátott adatbázis mentéseket.
A networkbackup.bat a hálózaton lévő másik gép megosztott mappájába ment, illetve másolja (xcopy) az adatbázis mentéseket mindennap 00:00 órakor. Így már biztos, hogy a mentéseim nem csak azon a fizikai gépen találhatóak, ahol éppen futnak az adatbázisok.
Mind a kettő batch úgy van beállítva, hogy a három napnál régebbi mentéseket automatikusan törölje így elkerülhető, hogy helyhiány miatt probléma legyen. A batch rendszergazdai jogokkal tud csak lefutni, de ha az ütemezett feladatoknál a képeken látható beállítást követed, akkor nem lesz vele probléma, gond nélkül le fognak futni.
Microsoft SQL Server adatbázis mentés
– Microsoft Windows 10 operációs rendszer futtató gépen a localbackup.bat menti az összes sql adatbázist a D:\sqlbackup könyvtárba
– a batch fájl működéséhez rendszergazdai jogosultság szükséges / jobb klikk futtatás rendszergazdaként, vagy létrehozhatunk egy parancsikont az asztalon és beállíthatjuk rajta, hogy rendszergazdai jogokkal induljon
localbackup.bat
@ECHO OFF
SETLOCAL
REM Get date in format YYYY-MM-DD (assumes the locale is the United States)
rem FOR /F „tokens=1,2,3,4 delims=/ ” %%A IN (‘Date /T’) DO SET NowDate=%%D-%%B-%%C
FOR /F „tokens=1,2,3,4 delims=/ ” %%A IN (‘Date /T’) DO SET NowDate=%%C-%%B-%%A
rem DO SET NowDate=%%B-%%A-%%C
REM Build a list of databases to backup
SET DBList=%SystemDrive%\SQLDBList.txt
SqlCmd -E -S gép_neve\SQLEXPRESS -h-1 -W -Q „SET NoCount ON; SELECT Name FROM master.dbo.sysDatabases WHERE [Name] NOT IN (‘master’,’model’,’msdb’,’tempdb’,’ReportServer$SQLEXPRESSTempDB’,’ReportServer$SQLEXPRESS’)” > „%DBList%”
REM Backup each database, prepending the date to the filename
FOR /F „tokens=*” %%I IN (%DBList%) DO (
ECHO Backing up database: %%I
SqlCmd -E -S gép_neve\SQLEXPRESS -Q „BACKUP DATABASE [%%I] TO Disk=’D:\backup_mappa\Backup%NowDate%_%%I.bak'”
ECHO.
)
REM Clean up the temp file
IF EXIST „%DBList%” DEL /F /Q „%DBList%”
forfiles.exe /p D:\backup_mappa\ /s /m *.bak /d -3 /c „cmd /c del @file”
ENDLOCAL
Microsoft SQL Server adatbázis mentés Ütemezett feladattal
– Microsoft Windows 10 operációs rendszer futtató gépen felvehetjük, beállíthatjuka ütemezett feladatként a batch fájlokat
– Az alábbi képeken látható, hogyan vettem fel a localbackup.bat állományt ütemezett feladatnak, hogy mindennap este 23:00 órakor lefusson a mentés
Microsoft SQL Server adatbázis mentés xcopy
– A networkbackup.bat állomány feladata, hogy a D:\sqlbackup mappában lévő mentéseket másolja át egy hálózaton lévő megosztott mappába
– Lefutáskor felcsatolja a hálózaton megosztott könytárat W: meghajtóként csatolja, majd a sikeres mentés után bontja a csatolást
networkbackup.bat
@ECHO OFF
net use W: „\\gép_neve\megosztott_mappa”
xcopy „D:\backup_mappa\*.*” „H:” /c /d /i /y
forfiles.exe /p H:\ /s /m *.bak /d -3 /c „cmd /c del @file”
net use W: /delete
Tipp: A bat kiterjesztés helyett használhatunk cmd-t is, ha a Windows valamilyen okból kifolyólag nem akarja futtatni.
ITFröccs.hu | Szoftver – Hardver újdonságok, tesztek, megoldások egy helyen!

SQLDBList
Tisztelt Varga Tamás!
Azt szeretném megkérdezni, hogy a localbackup.bat scriptben a SQLDBList.txt állományt ön hozta létre manuálisan vagy az SQL szerverben van lehetőség legeneráltatni az állományt?
Válaszát előre is köszönöm.
Tisztelettel
Majnár Zoltán
Tisztelt Majnár Zoltán!
Tisztelt Majnár Zoltán!
Az SQLDBList.txt állományt a batch fájl hozza létre és a mentés után el is távolítja, az csak egy temp állomány.
ebben a sorban hozza létre: REM Build a list of databases to backup
itt meg törli: REM Clean up the temp file
Tisztelettel:
Varga Tamás