Архивирование SQL баз с компрессией

Недавно поправил свой скрипт у клиента, чтобы SQL делал bak-архивы с компрессией. Как раз, когда клиент переехал с файловой на SQL версию.

Но решил еще упаковывать и в ZIP инструментом 7-zip.

Посмотрел, уменьшается ли объем архива:

Архив размером 5015 Мб сжался до 4972, всего на 1%.

Но есть еще одна причина, по которой делаю упаковку в архив — не знаю средств, чтобы проверить целостность bak-файла. А вот для архивов zip тестирование — встроенный механизм.

Мой текущий скрипт выглядит не идеально, но работает:

chcp 1251

set "backup1=C:\Backup\"
set "backuplast=C:\Backup\forcloud"
md "%backuplast%"

rem === ARCHIVING ===

call :basesql srv0,trade_wrk,ut,%backup1%

exit

:basesql
set backuppath=C:\backup
rem https://infostart.ru/1c/articles/1209244/
set "tmpfile=%4\sql.bak"
del %tmpfile%
set "arcfile=%4\%3%date:~1,1%.zip"
"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.exe" -S %1 -E -Q "BACKUP DATABASE [%2] TO DISK = '%tmpfile%' WITH INIT, NOFORMAT, SKIP, NOUNLOAD, COMPRESSION"
rem pause

"C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -y %arcfile% %tmpfile%
del %tmpfile%
rem pause
"C:\rclone\rclone.exe" delete --min-age 20d backup:backup_s3multipartuploads
"C:\rclone\rclone.exe" delete --min-age 20d backup:backup
"C:\rclone\rclone.exe" copy %arcfile% backup:backup  

exit /b

:basefile
set arcfile="%backup1%\1cv8_%~2_%date:~1,1%.zip"
set arcfilelast="%backuplast%\1cv8.zip"
set srcfile="%~1\1cv8.1CD"
del %arcfile%
"C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -y %arcfile% %srcfile%
"C:\rclone\rclone.exe" delete --min-age 20d backup:backup_s3multipartuploads
"C:\rclone\rclone.exe" delete --min-age 20d backup:backup
"C:\rclone\rclone.exe" copy %arcfile% backup:backup 
 
rem pause
rem copy %arcfile% %arcfilelast% /Y
rem "C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -v900m -y %arcfilelast% %srcfile%
rem pause

exit /b

 

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 4

  1. bob32:

    Для проверки целостности считай md5 чексумму файла и храни ее рядом.

  2. bob32:

    В таких вопросах сложность — понятие субъективное. Под капотом в архиве та же чексумма и считается.

    Я так же заглянул в доки по MS SQL, команды для бэкапа имеют возможность генерации чексуммы сразу. Так что можно обойтись средствами БД.

    • можно, но еще раз — в ZIP это все встроено. Поэтому не нужно лишних плясок с бубном. Скачал тестово зип с SELECTEL проверил и спишь спокойно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *