Облачное хранилище

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

Вместо [Имя_БД] укажите название своей базы. При необходимости можно создать цикл, который автоматически изменит режим для всех баз на сервере.

Как использовать скрипт

  1. Подключитесь к SQL Server Management Studio (SSMS).
  2. Откройте новое окно запроса на сервере.
  3. Вставьте и выполните скрипт.
  4. Проверьте результат с помощью запроса: 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