SQL Сервер Express: пакет для резервного копирования - PullRequest
0 голосов
/ 31 марта 2020

Кто-нибудь знает, как я могу изменить этот SQL сценарий резервного копирования сервера, чтобы он мог сделать двойное резервное копирование 1 и 2 для моей базы данных, как это?

If day = saturday or sunday or monday Then
    Create Backup 1
    if Backup1 = Success Then
        Delete Backup 2 
    Else
         Mail to my email
    Endif
Else 
    Create Backup 2
    if Backup2 = Success Then
        Delete Backup 1
    endif
endif

Проблема в том, что моя база данных слишком большой, и мне приходится каждый раз удалять его, теперь я хочу иметь копию этой резервной копии базы данных1 и удалить только одну (backup2), чтобы всегда иметь копию.

Я новичок в написании сценариев, и я искал много но я не нашел хорошую идею.

@echo off
::SQL-DB-Backup
SQLCMD -b -E -S mycomputer\SQLEXPRESS -i C:\Daten\ServerScript\Backup_01.sql

if errorlevel 1 echo 1 && goto SQLfailure
if errorlevel 0 echo 0
goto SQLsuccess

:SQLfailure
set SMTP=10.10.10.1
set SUBJECT=BACKUP FAILED
set BODY=BACKUP FAILED. The backup was not carried out correctly. SQL DB not saved! Backup process canceled
set FROM=nasro@gmail.com
set TO=nasro1@gmail.com
echo send mail...
powershell -ExecutionPolicy Unrestricted -c "Send-MailMessage -To '%TO%' -Subject '%SUBJECT%' -Body '%BODY%' -SmtpServer '%SMTP%' -From '%FROM%'"
goto :EOF

:SQLsuccess
echo SQL-Backup finished, start copying files...

::Restdaten Backup
C:\Windows\System32\xcopy.exe C:\Daten\* \\10.10.10.1\Backup_01/EXCLUDE:C:\Daten\ServerScript\BackupExclude.txt /E /Y /M >C:\Daten\ServerScript\Backup.log
echo all files duplicated...

if errorlevel 5 echo 5 && goto failure
if errorlevel 4 echo 4 && goto failure
if errorlevel 3 echo 3 && goto failure
if errorlevel 2 echo 2 && goto failure
if errorlevel 1 echo 1 && goto failure
if errorlevel 0 echo 0
goto success

::E-Mail notifiaction

:failure
set SMTP=10.10.10.1
set SUBJECT=BACKUP FAILED
set BODY=BACKUP FAILED. The backup was not carried out correctly. Kopierfehler!
set FROM=nasro@gmail.com
set TO=nasro1@gmail.com
echo send mail...
powershell -ExecutionPolicy Unrestricted -c "Send-MailMessage -To '%TO%' -Subject '%SUBJECT%' -Body '%BODY%' -SmtpServer '%SMTP%' -From '%FROM%'"
goto :EOF

:success
set SMTP=10.10.20.8
set SUBJECT=BACKUP SUCCESS
set BODY=BACKUP COMPLETED. The backup  was carried out correctly.
set FROM=nasro@gmail.com 
set TO=nasro1@gmail.com 
echo send mail...
powershell -ExecutionPolicy Unrestricted -c "Send-MailMessage -To '%TO%' -Subject '%SUBJECT%' -Body '%BODY%' -SmtpServer '%SMTP%' -From '%FROM%'"
...