Маленькие полезности: SQL Backup Inspector (скрипт для контроля состояния бэкапов)
SQL Backup Inspector — скрипт автоматизации контроля бэкап файлов SQL Server.
- Описание
- Подробнее
Описание
Предыстория создания SQL Backup Inspector
Однажды, на далёком-предалёком сервере, администратор баз данных (назовём его Вася) столкнулся с классической проблемой:
«Бэкапы вроде бы есть, но что толку, если их никто не проверял?»
Всё началось с того, что бухгалтер, на которого Вася работал, внезапно захотел откатить одну из баз на состояние сегодняшнего утра, но оказалось, что последний рабочий бэкап был не то чтобы свежий, но скорее второй свежести (сделан всего-то пару недель назад)
Что пошло не так?
- Бэкапы писались в папку, которую никто не мониторил (потому что «и так работает»).
- Размеры файлов плавали — иногда бэкап был 15 ГБ, а иногда 0,5 ГБ (из-за сбоя задания).
- Диск заполнился, и новые бэкапы перестали создаваться (но об этом никто не знал, пока не случился п… апокалипсис).

Результат:
- Полдня аврала (пока искали хоть какой-то рабочий бэкап).
- Разборки с начальством («Как так?! Мы же платим за резервное копирование!»).
- Глубокое разочарование в жизни и себе.
После этого Вася сказал: «Хватит это терпеть! Если никто не проверяет бэкапы — пусть это делает скрипт!»
SQL Backup Inspector родился из боли, страданий и пары бессонных ночей. Надеюсь, что он спасет и других админов от тех же ошибок.

SQL Backup Inspector — это PowerShell-скрипт, предназначенный для автоматизации контроля за состоянием резервных копий SQL Server. Он помогает:
- Проверять актуальность бэкапов (давность создания)
- Контролировать размеры бэкапов (соответствие ожидаемым значениям)
- Анализировать свободное место на диске (достаточно ли для новых бэкапов)
- Находить дубликаты и пустые папки (оптимизация хранения)
- Строить графики статистики (визуализация по дням)
Скрипт рассчитывает требования к дисковому пространству, основываясь на максимальном дневном объеме бэкапов за весь период наблюдения, учитывая допуск в 3Гб (значение можно изменить через параметр -growthAllowanceGB).
Кому однозначно пригодится:
- Администраторы SQL Server
- DevOps-инженеры
- Любой заинтересованный в сохранности бэкапов баз данных
Параметры запускаПараметр
Описание
Значение по умолчанию
-backupPath
Путь к папке с бэкапами (*.bak)
F:\SQL_Backup
-logFileDirectory
Директория для сохранения логов
C:\Temp\Logs
-controlSizeGB
Ожидаемый минимальный размер бэкапов (ГБ)
10
-maxDaysOld
Максимально допустимый возраст бэкапов (дней)
7
-growthAllowanceGB
Дополнительный запас места для новых бэкапов (ГБ)
3
-noGraph
Отключение графического интерфейса (для автоматизированных запусков)
-includeSubdirs
Поиск бэкапов во вложенных папках
-excludeDirs
Список папок для исключения (через запятую)
-Y
Автоподтверждение (пропуск запроса подтверждения)
Параметр | Описание | Значение по умолчанию |
-backupPath | Путь к папке с бэкапами (*.bak) | F:\SQL_Backup |
-logFileDirectory | Директория для сохранения логов | C:\Temp\Logs |
-controlSizeGB | Ожидаемый минимальный размер бэкапов (ГБ) | 10 |
-maxDaysOld | Максимально допустимый возраст бэкапов (дней) | 7 |
-growthAllowanceGB | Дополнительный запас места для новых бэкапов (ГБ) | 3 |
-noGraph | Отключение графического интерфейса (для автоматизированных запусков) |
|
-includeSubdirs | Поиск бэкапов во вложенных папках |
|
-excludeDirs | Список папок для исключения (через запятую) |
|
-Y | Автоподтверждение (пропуск запроса подтверждения) |
|

