Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával

Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával
Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával

 


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

Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával

Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával


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 2008 R2 ütemezett backup batch fájlok futtatásával Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával

Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával

Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával


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

Microsoft SQL Server 2008 R2 ütemezett backup batch fájlok futtatásával


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!

2 HOZZÁSZÓLÁS

  1. 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

       

       

       

HOZZÁSZÓLOK A CIKKHEZ

Please enter your comment!
Please enter your name here

Ez a weboldal az Akismet szolgáltatását használja a spam kiszűrésére. Tudjunk meg többet arról, hogyan dolgozzák fel a hozzászólásunk adatait..