Зачем переводить базы 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


