Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 База в simple mode, почему не очищается лог файл?  [new]
pacha
Member

Откуда:
Сообщений: 239
Microsoft SQL Server 2005 - 9.00.4035.00 (X64) Nov 24 2008 16:17:31 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.0 (Build 6001: Service Pack 1)

Добрый день. БД находится в simple recovery mode. В репликации, зеркалировании не участвует. И вот сегодня я заметил, что начал неограниченно расти лог файл. Длинных транзакций в бд тоже нет. Смотрел я смотрел, как лог файл заполняется на 100%, затем автоматически увеличивается. Не выдержал. Сделал checkpoint. Лог файл освободился. Вопрос: почему checkpoint не делается автоматически?
17 дек 09, 14:37    [8080853]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
DBCC OPENTRAN('tempdb')

в момент роста?
17 дек 09, 16:51    [8082073]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31194
pacha
Длинных транзакций в бд тоже нет. Смотрел я смотрел, как лог файл заполняется на 100%, затем автоматически увеличивается. Не выдержал. Сделал checkpoint. Лог файл освободился. Вопрос: почему checkpoint не делается автоматически?
Может, лавина коротких транзакций?
17 дек 09, 16:56    [8082124]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
LenaV
Member

Откуда: USA
Сообщений: 6748
в SQL 2000 был такой баг.
Не встречала это в 2005, но думаю, что причиной может быть:
сервер очень занят, checkpoint второстепенная задача для баз данных в simple mode.
или открытая транзакция висела
Если это ваши пользователи запустили какой-нибудь апдейт одной транзакцией - надо с ними бороться.
если это связано с занятостью сервера - переведите базу данных в full recovery mode и делайте бэкапы лога почаще.
17 дек 09, 19:19    [8083055]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
pacha
Member

Откуда:
Сообщений: 239
pkarklin
DBCC OPENTRAN('tempdb')

в момент роста?


проверю завтра на работе
17 дек 09, 20:32    [8083245]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
pacha
Member

Откуда:
Сообщений: 239
alexeyvg
pacha
Длинных транзакций в бд тоже нет. Смотрел я смотрел, как лог файл заполняется на 100%, затем автоматически увеличивается. Не выдержал. Сделал checkpoint. Лог файл освободился. Вопрос: почему checkpoint не делается автоматически?
Может, лавина коротких транзакций?


пробовал ненадолго останавливать работу с базой, "оставлять ее в покое". к сожалению, надолго отключить ее никто не позволит. Нагрузка падала, но лог не очищался. Да и что такое "лавина"? В среднем открыто несколько десятков коннектов с короткими транзакциями. Хотя сервер довольно сильно загружен
17 дек 09, 20:38    [8083267]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
pacha
Member

Откуда:
Сообщений: 239
LenaV
в SQL 2000 был такой баг.
Не встречала это в 2005, но думаю, что причиной может быть:
сервер очень занят, checkpoint второстепенная задача для баз данных в simple mode.
или открытая транзакция висела
Если это ваши пользователи запустили какой-нибудь апдейт одной транзакцией - надо с ними бороться.
если это связано с занятостью сервера - переведите базу данных в full recovery mode и делайте бэкапы лога почаще.


Открытые транзакции не висели. Проверял с помощью DBCC OPENTRAN. Full mode в данном случае, на этой базе не нужен, он серьезно повышает нагрузку на сервер (в момент бэкапирования логов, при высокой нагрузке)
17 дек 09, 20:42    [8083281]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
LenaV
Member

Откуда: USA
Сообщений: 6748
pacha

Открытые транзакции не висели. Проверял с помощью DBCC OPENTRAN. Full mode в данном случае, на этой базе не нужен, он серьезно повышает нагрузку на сервер (в момент бэкапирования логов, при высокой нагрузке)

мнение спорное.
при условие, что лог достаточного размера и опция автоматического роста файла у вас отключена, full mode более оптимальный, т.к серверу не надо оцищать тр. лог после каждого автоматического checkpoint. Он будет делать это только по завершению бэкапа.
Если у вас в базе большая активнось со множеством маленьких транзакций, то даже с учетом бэкапов каждые 15 минут нагрузка на диск может быть меньше.
к тому же у вас 64-бит Enterprise Edition сервер. Бэкапы должны летать.
18 дек 09, 00:04    [8083834]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
LenaV
Member

Откуда: USA
Сообщений: 6748
pacha
И вот сегодня я заметил, что начал неограниченно расти лог файл. Длинных транзакций в бд тоже нет. Смотрел я смотрел, как лог файл заполняется на 100%, затем автоматически увеличивается. Не выдержал. Сделал checkpoint. Лог файл освободился. Вопрос: почему checkpoint не делается автоматически?

какого размера у вас база и тр.лог?
как вы смотрели заполнение лога?
18 дек 09, 00:09    [8083842]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
LenaV
Member

Откуда: USA
Сообщений: 6748
посмотрите в sys.dm_tran_database_transactions
что у вас занимает много места в логе.
18 дек 09, 00:32    [8083880]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
pacha
Member

Откуда:
Сообщений: 239
pkarklin
DBCC OPENTRAN('tempdb')

в момент роста?

Ничего необычного, вот пример выполнения, транзакция свежая

Transaction information for database 'tempdb'.

Oldest active transaction:
SPID (server process ID): 179
UID (user ID) : -1
Name : user_transaction
LSN : (4726:47174:10)
Start time : Dec 18 2009 10:12:58:267AM
SID : 0x010100000000000512000000
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
18 дек 09, 10:14    [8084656]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
pacha
Member

Откуда:
Сообщений: 239
LenaV
pacha

Открытые транзакции не висели. Проверял с помощью DBCC OPENTRAN. Full mode в данном случае, на этой базе не нужен, он серьезно повышает нагрузку на сервер (в момент бэкапирования логов, при высокой нагрузке)

мнение спорное.
при условие, что лог достаточного размера и опция автоматического роста файла у вас отключена, full mode более оптимальный, т.к серверу не надо оцищать тр. лог после каждого автоматического checkpoint. Он будет делать это только по завершению бэкапа.
Если у вас в базе большая активнось со множеством маленьких транзакций, то даже с учетом бэкапов каждые 15 минут нагрузка на диск может быть меньше.
к тому же у вас 64-бит Enterprise Edition сервер. Бэкапы должны летать.

Full mode для этой базы - чистая формальность, не нужен. Никто не собирается накатывать журнал транзакций в случае сбоя. В базе хранится информация о текущих сообщениях в системе обмена сообщениями, т.е. в штатном режиме 1-2 минуты. Содержимое постоянно чистится джобами. Изначально был настроен full mode, как раз с бэкапированием журнала транзакций каждые 15 минут. В пиковые моменты процесс бэкапирования лога занимал до 1 часа. Пришлось от этого отказаться. Объем лога за день до 150 Гб. Да, в системе большая активность со множеством коротких транзакций.
18 дек 09, 10:24    [8084746]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
LenaV
Member

Откуда: USA
Сообщений: 6748
причины роста лога могут быть такие:
очень большие транзакции
uncommitted transactions
DBCC DBREINDEX ,CREATE INDEX , DELETE
клиент написан плохо и не обрабатывает результат запроса коректно.

позапускайте
select * from sys.dm_tran_database_transactions

и посмотрите какие транзакции держат больше всего места в логе.
При таком размере лога 150Гв - надо оптимизировать программый код
18 дек 09, 16:42    [8088184]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
Zeiman
Member

Откуда: Sevastopol
Сообщений: 12
А что если лог растет примерно 1.5 Гб в месяц, при том, что базой практически не пользуются - это нормально?
8 янв 10, 00:26    [8156185]     Ответить | Цитировать Сообщить модератору
 Re: База в simple mode, почему не очищается лог файл?  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
Zeiman
А что если лог растет примерно 1.5 Гб в месяц, при том, что базой практически не пользуются - это нормально?
Откуда знаете, что никто не пользуется?
8 янв 10, 23:33    [8158750]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить