Усечение transaction log в SQL Server 2000 с помощью команды DBCC SHRINKFILE
Статьи / SQL / MS SQL Server /
Назад
По материалам статьи Microsoft: "Shrinking the Transaction Log in SQL Server 2000 with DBCC SHRINKFILE"
Информация в этой статье относится к Microsoft SQL Server версии 2000 (все редакции)
Статья предлагает метод усечения журнала транзакций Microsoft SQL Server 2000.
Усечение журнала регистрации транзакций с версии SQL Server 2000 не является больше отложенной операцией. Сервер пытается усечь журнал немедленно. Однако, при некоторых обстоятельствах, может быть необходимо выполнить дополнительные действия прежде, чем журнал будет усечён до нужного размера.
Когда исполнена команда DBCC SHRINKFILE, SQL Server 2000 усекает журнал, удаляя так много виртуальных журналов, как много он сможет, пытаясь достичь заданного размера. Если заданный размер файла не достигнут, SQL Server размещает фиктивные записи в последний виртуальный журнал, пока он не будет заполнен и перемещает заголовок в начало журнала. Следующая последовательность действий необходима для того, чтобы завершить усечение transaction log:
Вы должны выполнить инструкцию BACKUP LOG для высвобождения места, за счёт удаления неактивной части журнала регистрации транзакций.
Вы должны повторно выполнять команду DBCC SHRINKFILE с указанием желательного размера, пока журнал не усечётся до этого размера.
Следующий ниже пример демонстрирует этот метод для базы данных pubs, в нём осуществляется попытка сократить файл Pubs_log до 2 МБАЙТ:
Шаг 1:
DBCC SHRINKFILE(pubs_log, 2)
ОБРАТИТЕ ВНИМАНИЕ: Если целевой размер не достигнут, переходите к следующему шагу.
Шаг 2:
BACKUP LOG pubs WITH TRUNCATE_ONLY
Шаг 3:
DBCC SHRINKFILE(pubs_log,2)
transaction log будет усечён до заданного размера.
Для получения дополнительной информации, см. "Shrinking the Transaction Log and DBCC SHRINKFILE" в SQL Server 2000 Books Online.