В случае если размер ГБД на продакшене привышает 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