Апр 18 2011
Backup MSSQL
Полный бэкап раз в сутки.
@echo off
rem База которую бэкапим
set DB=UPP
rem Куда бэкапим
set bkdir=C:
set bkpath=%bkdir%\%date%
if not exist "%bkpath%" mkdir "%bkpath%"
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S .\SQLEXPRESS -q "BACKUP DATABASE %DB% TO DISK='%bkpath%\backup_%DB%.bak';RESTORE VERIFYONLY FROM DISK='%bkpath%\backup_%DB%.bak'" -o %bkpath%\backup_%DB%.log
rem База которую бэкапим
set DB=UPP
rem Куда бэкапим
set bkdir=C:
set bkpath=%bkdir%\%date%
if not exist "%bkpath%" mkdir "%bkpath%"
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S .\SQLEXPRESS -q "BACKUP DATABASE %DB% TO DISK='%bkpath%\backup_%DB%.bak';RESTORE VERIFYONLY FROM DISK='%bkpath%\backup_%DB%.bak'" -o %bkpath%\backup_%DB%.log
Разностный бэкап через каждые 4 часа
@echo off
rem База которую бэкапим
set DB=UPP
rem Куда бэкапим
set bkdir=C:
set bkpath=%bkdir%\%date%
if not exist "%bkpath%" mkdir "%bkpath%"
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S .\SQLEXPRESS -q "BACKUP DATABASE %DB% TO DISK='%bkpath%\backup_%DB%.bak' WITH DIFFERENTIAL;RESTORE VERIFYONLY FROM DISK='%bkpath%\backup_%DB%.bak'" -o %bkpath%\backup_%DB%.log
rem База которую бэкапим
set DB=UPP
rem Куда бэкапим
set bkdir=C:
set bkpath=%bkdir%\%date%
if not exist "%bkpath%" mkdir "%bkpath%"
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S .\SQLEXPRESS -q "BACKUP DATABASE %DB% TO DISK='%bkpath%\backup_%DB%.bak' WITH DIFFERENTIAL;RESTORE VERIFYONLY FROM DISK='%bkpath%\backup_%DB%.bak'" -o %bkpath%\backup_%DB%.log
Одним скриптом
@echo off
set db=%1
set bkdir=%2
set type=%3
if "%db%" == "" (
echo "usage: %0 <dbname> <path> <diff|full>"
exit /b 1
) else (
if "%bkdir%" == "" (
echo "usage: %0 %db% <path> <diff|full>"
exit /b 1
) else (
if "%type%" == "full" (
set bkpath=%bkdir%\%date%
if not exist "%bkpath%" mkdir "%bkpath%"
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S .\SQLEXPRESS -q "BACKUP DATABASE %db% TO DISK='%bkpath%\backup_%db%.bak';RESTORE VERIFYONLY FROM DISK='%bkpath%\backup_%db%.bak'" -o %bkpath%\backup_%db%.log
) else (
if "%type%" == "diff" (
if not exist "%bkdir%" (
echo First run full backup.
exit /b 1
) else (
set bkpath=%bkdir%\%date%
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S .\SQLEXPRESS -q "BACKUP DATABASE %db% TO DISK='%bkpath%\backup_%db%.bak' WITH DIFFERENTIAL;RESTORE VERIFYONLY FROM DISK='%bkpath%\backup_%db%.bak'" -o %bkpath%\backup_%db%.log
)
) else (
echo "usage: %0 %db% %bkpath% <diff|full>"
exit /b 1
)
)
)
)
set db=%1
set bkdir=%2
set type=%3
if "%db%" == "" (
echo "usage: %0 <dbname> <path> <diff|full>"
exit /b 1
) else (
if "%bkdir%" == "" (
echo "usage: %0 %db% <path> <diff|full>"
exit /b 1
) else (
if "%type%" == "full" (
set bkpath=%bkdir%\%date%
if not exist "%bkpath%" mkdir "%bkpath%"
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S .\SQLEXPRESS -q "BACKUP DATABASE %db% TO DISK='%bkpath%\backup_%db%.bak';RESTORE VERIFYONLY FROM DISK='%bkpath%\backup_%db%.bak'" -o %bkpath%\backup_%db%.log
) else (
if "%type%" == "diff" (
if not exist "%bkdir%" (
echo First run full backup.
exit /b 1
) else (
set bkpath=%bkdir%\%date%
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S .\SQLEXPRESS -q "BACKUP DATABASE %db% TO DISK='%bkpath%\backup_%db%.bak' WITH DIFFERENTIAL;RESTORE VERIFYONLY FROM DISK='%bkpath%\backup_%db%.bak'" -o %bkpath%\backup_%db%.log
)
) else (
echo "usage: %0 %db% %bkpath% <diff|full>"
exit /b 1
)
)
)
)