Проблема с transaction log MS SQL 2008

Проблема с transaction log MS SQL 2008

В MS SQL 2008 при настройке полной модели восстановления логи быстро разрастаются и полностью забивают диск на сервере (250 Гб при размере базы 115 Гб). В последнее время на это уходит меньше рабочей недели.

Лого MS SQL

Для решения этой проблемы было создано еженедельное задание:

USE [Database]
ALTER DATABASE [Database] SET RECOVERY SIMPLE
go
DBCC SHRINKFILE ([Database]_log, 1);
ALTER DATABASE [Database] SET RECOVERY FULL
go

Выполняющееся сразу после полной резервной копии базы данных и зависящее от успеха резервирования (для пущей надежности).

П.С. В результате сбоя на сервере отказал диск с логами базы данных. Для восстановления базы:

  1. Detach базу данных из списка
  2. Файл *.mdf переименовываем (или копируем)
  3. В MS SQL создаём новую базу данных с тем же именем что и «павшая» база данных
  4. Останавливаем MS SQL Server
  5. Новый *.mdf файл удаляем, а старому возвращаем имя, подменяя тем самым файл новой БД
  6. Запускаем MS SQL Server. При этом будет «битая база данных», далее мы её исправляем
  7. ALTER DATABASE [Database] SET EMERGENCY Почитать про параметры запроса
  8. exec sp_dboption [Database], ‘single user’, ‘TRUE’ Переводим базу данных в монопольных режим работы
  9. DBCC CHECKDB ([Database], REPAIRALLOWDATA_LOSS) Возвращем базе данных работоспособность, процесс может быть достаточно долгим на больших базах данных. Результаты, на всякий случай сохраняем. Возможно придется ими воспользоваться.
  10. exec sp_dboption [Database], ‘single user’, ‘FALSE’ Отключаем монопольный режим
  11. ALTER DATABASE [Database] SET ONLINE Делаем базу доступно.
rkarimov

Обсуждение закрыто.