3

Я использую SQL Server Express и создаю файлы резервных копий для всех баз данных каждый день, используя сценарий Time Scheduling . Один сценарий, как это;

BACKUP DATABASE [Jira]
TO DISK = N'C:\Backup\Jira.bak'
WITH COMPRESSION,INIT
GO

И они сделали 3 .bak (резервный) файл в моей папке C:/backup .

Я хочу, чтобы при создании этих .bak файлов я также автоматически сжимал их (возможно, используя Winrar , Winzip , 7zip или SQL Express Server ).

Есть ли способ, которым я могу это сделать?

1 ответ1

2

В качестве альтернативы вы можете использовать пакетный скрипт.

Вот пример, его нужно немного подправить. В этом примере я использую 7zip, который является бесплатным.

@echo off

CLS

SET backuptime=%DATE:~10,4%-%DATE:~7,2%-%DATE:~4,2%-%TIME:~0,2%-%TIME:~3,2%

echo %backuptime%

echo Running dump ...

"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S 
(local)\SQLExpress -i D:\dbbackups\bk_%SQLExpressBackups.sql

echo Zipping ...

"C:\Program Files\7-Zip\7z.exe" a -tzip "D:\dbbackups\zipped\bk_%backuptime%.zip" "D:\dbbackups\bk_%SQLExpressBackups.sql"

echo Deleting the SQL file ...

del "D:\dbbackups\bk_%SQLExpressBackups.sql"

echo Done!

Или, если вы хотите просто сжать резервное копирование, после того как резервное копирование выполнено, вы можете сделать следующее:

@echo off

CLS

SET backuptime=%DATE:~10,4%-%DATE:~7,2%-%DATE:~4,2%-%TIME:~0,2%-%TIME:~3,2%

echo %backuptime%

echo Zipping ...

"C:\Program Files\7-Zip\7z.exe" a -tzip "C:\dbbackups\zipped\bk_%backuptime%.zip" "C:\Backup\Jira.bak"

echo Done!

Сохраните это как sqlbackup.bat и запланируйте его запуск каждый день.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .