SQL SERVER Журнал транзакций заполнен - PullRequest
3 голосов
/ 09 ноября 2010

Как освободить пространство журнала транзакций в SQL SERVER 2005:

У меня размер журнала транзакций = 70 ГБ и четыре журнала транзакций 1,2,3,4 на разных дисках.Через DBCC SQLPERF (LOGSPACE) я обнаружил, что журнал транзакций заполнен (использует 100%), и я хочу освободить место в журнале транзакций, и я не хочу резервного копирования T-журнала.У меня нет места для резервного копирования журнала транзакций.И моя БД находится в состоянии репликации.

  1. Как мне освободить журнал транзакций или
  2. Вместо 3 файлов журнала транзакций, я могу иметь только один файл журнала или
  3. Если метод сжатия, что делать с репликацией?

Ответы [ 4 ]

5 голосов
/ 09 ноября 2010

Выполните следующую последовательность операторов:

BACKUP LOG <db_name> WITH TRUNCATE_ONLY  
--or save to log to other drives on disk if required
GO

CHECKPOINT
GO

--replace 2 with your actual log file number.
DBCC SHRINKFILE (2, 100)     

Если журнал не уменьшается, проверьте причину увеличения файла журнала.Более подробную информацию об этом можно найти здесь:

http://sqlreality.com/blog/ms-sql-server-2008/troubleshooting-the-full-transaction-log-problem/

0 голосов
/ 09 ноября 2010

Уже обсуждалось переключение модели восстановления на реплицированные базы данных здесь . и вы также можете прочитать некоторую документацию на MSDN .

Если вы не хотите создавать резервные копии T-журнала из-за ограниченного пространства, вы можете поместить реплицированную базу данных в модель простого восстановления и попробовать:

Выполнить ПРОВЕРКУ. База данных в режиме ПРОСТОГО восстановления очищает ВХОД на каждой контрольной точке.

DBCC SHRINKFILE (N'LogFileName', 1) -- shrink the log file to 1 MB 

После этого измените его обратно на Полный. Чтобы удалить некоторые файлы журналов вашей БД, сначала нужно очистить файлы, предназначенные для удаления, а затем удалить их. Подробности здесь .

0 голосов
/ 09 ноября 2010

Будет ли сжатие файлов по отдельности выполнять то, что вы хотите?

DBCC SHRINKFILE (N'LogFile', 1)
0 голосов
/ 09 ноября 2010

Проверьте следующую статью от Microsoft.

http://msdn.microsoft.com/en-us/library/ms175495.aspx

, и я хочу освободить место в журнале транзакций, и я не хочу резервное копирование T-журнала

MS не поддерживает это.

Резервное копирование журнала транзакций НУЖНО ЗДЕСЬ.Получить диск, сделать это.

Если вы этого не сделаете, вы не сможете освободить журнал.

Без освобождения журнала вы не сможете сжать файлы.Поэтому вам нужно сделать резервную копию, хотите вы этого или нет.

Если вам не нужны журналы транзакций, базы данных должны были быть созданы в простом режиме восстановления, чтобы начать с.

...