Уменьшени ГБД для резервного копирования

В случае если размер ГБД на продакшене привышает 5Гб ее нужно сжать перед копированием в тестовую среду.
Для этого сначала делаем копию базы данных:

USE RIT
GO
BACKUP DATABASE RIT
TO DISK = 'C:\RIT_BK\RIT_FOR_CLEAN.bak'
GO
RESTORE DATABASE RIT_FOR_COPY
FROM DISK = 'C:\RIT_BK\RIT_FOR_CLEAN.bak'
WITH MOVE 'OldDBData' TO 'C:\RIT_DB\RIT_FOR_COPY.mdf',   
     MOVE 'OldDBLog' TO 'C:\RIT_DB\RIT_FOR_COPY.ldf',    
     REPLACE
GO

Можно добавить WITH COMPRESSION после TO DISK, чтобы сжать БД

Далее удаляем старые данные тяжелые данные, оставляем за последние 30 дней. Сразу все данные удалить скорее всего не получится, удаление логируется, и размера файла логов просто не хватит, поэтому оптимально удалять данные за квартал.

USE RIT_FOR_COPY
DECLARE @DATE_DEL DATETIME = '20200101'
 
DELETE DRILL_RAW_GAUGE_TRANS WHERE TIMESTAMP < @DATE_DEL
DELETE DRILL_GAUGE_TRANS WHERE TIMESTAMP < @DATE_DEL
DELETE UNIT_COORDS_TRANS WHERE TIMESTAMP < @DATE_DEL
DELETE EVENT_TRANS WHERE TIMESTAMP < @DATE_DEL

После того как будут удалены, нужно сжать БД, уменьшить лог транзакций и потом сделать бэкап, который уже копировать в тестовую среду:

DBCC SHRINKDATABASE (RIT_FOR_COPY, 10);
GO
ALTER DATABASE RIT_FOR_COPY
SET RECOVERY SIMPLE
GO
DBCC SHRINKFILE (RIT_FOR_COPY_log, 1)
GO
ALTER DATABASE RIT_FOR_COPY
SET RECOVERY FULL
BACKUP DATABASE RIT_FOR_COPY
TO DISK = 'C:\RIT_BK\RIT_FOR_COPY.bak'
GO