|
По материалам статьи Krishnan М. Kaniappan на swynk.com «Quickly Shrinking the Transaction Log» В этой статье Кришнан обсуждает два следующих аспекта: Усечение журнала транзакций и предлагает метод перевода базы данных в автономный режим (offline). Усечение журнала транзакций Кришнан предлагает следующую уловку для быстрого усечения
журнала транзакций, который у Вас может стать слишком большим.
Вы можете сократить журнал транзакций, используя системные
хранимые процедуры sp_detach_db и sp_attach_db. Для получения
дополнительной информации об отсоединении и присоединении баз
данных обратитесь к BOL. - Отсоедините базу данных, используя процедуру sp_detach_db
(предварительно убедитесь, что никакие процессы не используют
файлы базы данных); Так как Вы отсоединяете и прикрепляете базу данных к тому
же самому серверу, Вы не будете иметь проблем с нарушением
логинов. Комментарий автора перевода Эта уловка не работает, если журнал транзакций разбит на два или более файла. Макетирование этой проблемы на моём полигоне показало, что попытка применить уловку Кришнана приводит к ошибке. Новый, с минимальным размером журнал создаётся при прикреплении базы, только если у открепляемой базы был один журнал. Обойти это ограничение удалось только после того, как оператором ALTER DATABASE были уничтожены все файлы журнала, кроме первого, а потом, файл базы был повторно прикреплён оператором CREATE DATABASE с опцией FOR ATTACH. Метод перевода базы данных в автономный режим (offline). В SQL сервере 7.0 функция перевода базы данных в автономный режим убрана из Enterprise Manager. Для этого используют процедуру sp_dboption. Например, чтобы перевести базу данных ‘pubs’ в автономный режим, Вы должны выполнить: sp_dboption ‘pubs’, ’offline’, ’true’ До перевода базы данных в автономный режим необходимо убедится, что эту базу данных не используют другие процессы. Вернуть базу данных в интерактивный режим можно, используя ключевое слово «false»: sp_dboption ‘pubs’, ’offline’, ’false’ В SQL сервер 2000 опция перевода базы данных в автономный режим присутствует в Enterprise Manager. |
Перевод: Александр Гладченко 2001г. |