Зачем переводить базы MS SQL из FULL в SIMPLE
Полный (FULL) режим восстановления в Microsoft SQL Server подходит, если требуется точное восстановление базы данных до конкретного момента времени. Однако он требует регулярного бэкапа журналов транзакций, которые со временем сильно разрастаются и занимают место на диске. Если вам не нужна точка восстановления до транзакции, можно безопасно перевести базы в простой (SIMPLE) режим восстановления.
Готовый скрипт T-SQL
-- Не стоит жадничать, так как имя БД может быть довольно длинное declare @db nvarchar(35) -- Сама команда declare @sql nvarchar(256) declare cursor_size_srv cursor for SELECT --@@SERVERNAME AS Server , name AS DBName --recovery_model_Desc AS RecoveryModel , --Compatibility_level AS CompatiblityLevel , --create_date , --state_desc FROM sys.databases where name not in ('master','msdb','model','tempdb') and recovery_model_desc = 'full' ORDER BY Name; OPEN cursor_size_srv FETCH NEXT FROM cursor_size_srv INTO @db WHILE (@@FETCH_STATUS=0) BEGIN --Что будет выполнено set @sql = 'ALTER DATABASE '+@db+' SET RECOVERY SIMPLE' --Для отладки выведем на экран print (@sql); --Если будем выполнять, то коммент убираем exec (@sql); FETCH NEXT FROM cursor_size_srv INTO @db END CLOSE cursor_size_srv DEALLOCATE cursor_size_srv
Вместо [Имя_БД]
укажите название своей базы. При необходимости можно создать цикл, который автоматически изменит режим для всех баз на сервере.
Как использовать скрипт
- Подключитесь к SQL Server Management Studio (SSMS).
- Откройте новое окно запроса на сервере.
- Вставьте и выполните скрипт.
- Проверьте результат с помощью запроса:
SELECT name, recovery_model_desc FROM sys.databases;
Сравнение режимов восстановления
Режим | Преимущества | Недостатки |
---|---|---|
FULL | Полная история транзакций, поддержка восстановления до точки во времени | Журнал транзакций растет, требует регулярного бэкапа |
SIMPLE | Минимальный журнал транзакций, меньше нагрузка на диск | Невозможно восстановить данные до конкретной транзакции |
Рекомендации после перевода в SIMPLE
- Обязательно выполните полный бэкап базы данных.
- Настройте регулярные резервные копии (full и differential).
- Проверьте политику восстановления: подходит ли SIMPLE для ваших задач.
Частые вопросы (FAQ)
Можно ли вернуть режим обратно на FULL?
Да, для этого используйте команду ALTER DATABASE [Имя_БД] SET RECOVERY FULL;
. После этого выполните полный бэкап базы данных.
Есть ли риски при переходе на SIMPLE?
Основной риск — невозможность восстановления данных до конкретной транзакции. Если требуется точное восстановление, используйте FULL.
Как часто нужно делать бэкапы при SIMPLE?
Минимум раз в день рекомендуется полный бэкап. Для критичных данных — чаще, в зависимости от RPO/RTO.
Заключение
Перевод базы MS SQL из FULL в SIMPLE — это способ снизить нагрузку на дисковое пространство и упростить администрирование. Однако не забывайте, что SIMPLE ограничивает возможности восстановления. Перед изменением режима убедитесь, что он подходит для ваших задач, и настройте регулярное резервное копирование.
Полезно также прочитать: Как уменьшить лог транзакций в MSSQL и тут
clear