Борьба с размером журнала транзакций: причины роста и методы уменьшения

Часть 1) Сокращение размера Transaction Log в SQL Server 2000 посредством DBCC (По данным Q272318)

Команда DBCC SHRINKFILE для урезания log в SQL Server 2000 больше не есть отложенной операцией. DBCC SHRINKFILE пробует уменьшать файл срочно. Но, в некоторых случаях, нужны дополнительные действия для того, что бы издание был сокращён до ужного размера.

При исполнении DBCC SHRINKFILE, SQL Server 2000 удаляет виртуальные издания, дабы в целом взять заданный размер издания. В случае если заданный размер не достигнут, SQL Server размещает фиктивные входы издания в последний виртуальный издание, пока виртуальный издание не будет заполнен, а позже перемещает заголовок издания в начало файла. При таких условиях, дабы завершить сокращение размера издания:

1. Выполнить инструкцию BACKUP LOG, дабы удалить неактивную часть издания.
2. Выполнить DBCC SHRINKFILE опять, задав желательный размер.

К примеру:

DBCC SHRINKFILE(pubs_log, 2)
(В случае если необходимый размер не достигнут)
BACKUP LOG pubs WITH TRUNCATE_ONLY
DBCC SHRINKFILE(pubs_log,2)

Часть 3)Способ перевода и журнала быстрого усечения транзакций БД в offline По данным статьи Krishnan М. Kaniappan на swynk.com Quickly Shrinking the Transaction Log

В данной статье Кришнан обсуждает два следующих нюанса:
— Усечение издания транзакций.
— Способ перевода базы данных в независимый режим (offline).

Усечение издания транзакций

Кришнан предлагает следующую уловку для стремительного усечения издания транзакций, что у Вас через чур громадным. Вы имеете возможность сократить издание транзакций, применяя системные хранимые процедуры sp_detach_db и sp_attach_db. Для получения дополнительной информации об присоединении и отсоединении баз данных обратитесь к BOL. В то время, когда Вы отсоединяете базу данных, применяя sp_detach_db, SQL сервер будет знать, что работа с БД была корректно закончена, и для прикрепления базы данных, издание транзакций не нужен и возможно не дешёв.

Его возможно удалить. В то время, когда Вы прикрепляете базу данных, SQL сервер создаёт новый издание, что будут иметь минимальный размер. Для этого нужно выполнить следующие шаги:

— Отсоедините базу данных, применяя процедуру sp_detach_db (предварительно убедитесь, что никакие процессы не применяют файлы базы данных);
— Удалите издание;
— Прикрепите базу данных заново, применяя процедур sp_attach_db у.

Так как Вы отсоединяете и прикрепляете базу данных к тому же самому серверу, Вы не станете иметь неприятностей с нарушением логинов. Для получения дополнительной информации по усечению файлов изданий транзакций, складывающихся из одного либо более изданий, Вы имеете возможность обратиться к статьям Базы Знаний Microsoft: Q256650 (для SQL 7.0) и Q272318 (для SQL 2000).

Часть 3) Как усекается издание транзакций SQL Server 7.0 По данным статьи из Микрософт Knowledge Base

Имеется пара обстоятельств, в следствии которых издание транзакций не усекается при применении DBCC SHRINKFILE либо DBCC SHRINKDATABASE. В Books Online DBCC SHRINKFILE и DBCC SHRINKDATABASE обрисованы достаточно прекрасно, но через чур коротко. В Микрософте SQL Server 7.0, команды SHRINKFILE и SHRINKDATABASE устанавливают желаемый размер, до которого нужно усекать издание. Эти команды смогут быть применены для каждого издания, но это, практически, лишь заявка, которую сервер постарается выполнить.

Исходя из этого, по окончании исполнения команды SHRINKFILE либо SHRINKDATABASE, Вам нужно дополнительно выполнить команду, которая усекает издание и у Вас имеется шанс, что это случится. Вы не имеете возможность уменьшить издание транзакций до размера меньше установленного параметрами, каковые представлены ниже:

Издание транзакций изнутри


Похожие заметки:

Понравилась статья? Поделиться с друзьями: