Скрипт очистки БД Log Server в MSSQL
Автор Maksim Efanov, Last modified by Kirill Osipov на 02 сентября 2025 04:23 PM

Описание скрипта

Скрипт удаляет все события старше N дней из таблиц EventEntities и EventAttributeEntities. При больших объемах БД выполнение скрипта может занять продолжительное время.

Ссылка на скрипт: https://download.indeed-company.ru/s/wTLnz4GzOD3zgzU

Внимание
Во время выполнения скрипта будет заполняться лог транзакций очищаемой БД. Лог транзакций нужно очищать самостоятельно.

Предварительные требования

Установленный модуль powershell SqlServer на машине, с которой будет запускаться скрипт.

Настройка скрипта

Необходимо задать переменные:

$database - название БД с событиями, из которой их необходимо удалить;
$olderThanDays - события старше этого количества дней, будут удаляться;
$serverInstance - имя сервера SQL;
$username - имя пользователя для SQL аутентификации;
$password - пароль этого пользователя.

Внимание! Если требуется использовать Windows аутентификацию, удалите из 21 строки скрипта параметры -Username и -Password.

Внимание! Если нужно, чтобы окно Powershell закрывалось автоматически, удалите 2 последние строки из скрипта.

При возникновении ошибок сертификата, в 21 строке скрипта укажите явно строку подключения:
Invoke-SqlCmd -Query $sql -ConnectionString "Data Source=$serverInstance;Initial Catalog=$database;User Id=$username;Password=$password;TrustServerCertificate=true"

Добавление в Task Scheduler

Action - Start a program
Program/script - powershell.exe
Add arguments (optional): -File “путь_к_скрипту”. Например: -File “C:\Scripts\clearDB.ps1”
Остальные параметры - индивидуально.

(5 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)
Портал технической поддержки компании Индид