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

Откуда: Ярославль
Сообщений: 240
Использую MS SQL Server 2008 R2. Постоянно растет журнал транзакций. Сама база весит 70 Гб. Журнал транзакций вырастает до 30 Гб за пару часов. Модель восстановления базы SIMPLE. Кол-во транзакций на сервер около 2000 в секунду. Стоит is_autoshrink = ON. Помогает только вручную усечения журнала через GUI SSMS. Что попробовал:

Запустил скрипт для получения log_reuse_desc. Всегда ACTIVE_TRANSACTION показывает. Чтобы увидеть активные транзакции запускал exec sp_whoIsActive @filter_type = 'database', filter = 'mydatabase'. Но постоянно висящих не обнаружил. Все время новые показывает (максимальное время выполнения 700ms). Выполнял DBCC OPENTRAN, там SPID часто один и тот же 29s, 30s, 34s по несколько секунд выдает. Пытался текст получить через

DECLARE @sqltext VARBINARY(128)
SELECT @sqltext = sql_handle
FROM sys.sysprocesses
SELECT *
FROM sys.dm_exec_sql_text(@sqltext)
GO

Но ничего не выдает. Что еще попробовать для выявления причины проблемы?
20 ноя 18, 10:15    [21738764]     Ответить | Цитировать Сообщить модератору
 Re: Рост журнала транзакций  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
gepard1980,
Секта усекателей журнала...

Как-то странно вы ищите запрос

dbcc inputbuffer(spid)

ну или как-то так
+
SELECT
       CASE transaction_isolation_level 
       WHEN 0 THEN 'Unspecified' 
       WHEN 1 THEN 'ReadUncommitted' 
       WHEN 2 THEN 'ReadCommitted' 
       WHEN 3 THEN 'Repeatable' 
       WHEN 4 THEN 'Serializable' 
       WHEN 5 THEN 'Snapshot' END AS ILevel
,       r.session_id
,       requested_memory_MB = x.requested_memory_kb/1000. 
,       granted_memory_MB = x.granted_memory_kb/1000.
,            x.query_cost
,       r.start_time
,      RunTime = DATEDIFF(s,r.start_time,getdate())/60.
,       TotalElapsedTime_min = r.total_elapsed_time/1000./60.
,       r.[status]
,       r.command
,      r.percent_complete
,       DatabaseName = DB_Name(r.database_id)
,       r.wait_type
,       r.last_wait_type
,       r.wait_resource
,       r.cpu_time
,       r.writes
,       r.reads
,       r.logical_reads
,       t.[text] AS [executing batch]
,       SUBSTRING(
                                t.[text], r.statement_start_offset / 2, 
                                (       CASE WHEN r.statement_end_offset = -1 THEN DATALENGTH (t.[text]) 
                                                 ELSE r.statement_end_offset 
                                        END - r.statement_start_offset ) / 2 
                         ) AS [executing statement] 
,       p.query_plan
FROM
        sys.dm_exec_requests r
CROSS APPLY
        sys.dm_exec_sql_text(r.sql_handle) AS t
OUTER APPLY     
        sys.dm_exec_query_plan(r.plan_handle) AS	p
LEFT JOIN
       sys.dm_exec_query_memory_grants			x
ON
       x.session_id  =     r.session_id 
WHERE 
             r.session_id != @@spid       
ORDER BY 
        r.total_elapsed_time DESC;
20 ноя 18, 10:22    [21738769]     Ответить | Цитировать Сообщить модератору
 Re: Рост журнала транзакций  [new]
L_argo
Member

Откуда:
Сообщений: 1133
1С ? Бывает, чо .... :)

Одна из частых причин - неразумное использование временных таблиц.
20 ноя 18, 10:22    [21738770]     Ответить | Цитировать Сообщить модератору
 Re: Рост журнала транзакций  [new]
invm
Member

Откуда: Москва
Сообщений: 9116
gepard1980
Модель восстановления базы SIMPLE.
gepard1980
Всегда ACTIVE_TRANSACTION показывает.
gepard1980
Но постоянно висящих не обнаружил. Все время новые показывает
Что-то из перечисленного не соответствует реальности.
Ищите, что именно.
20 ноя 18, 10:23    [21738771]     Ответить | Цитировать Сообщить модератору
 Re: Рост журнала транзакций  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
L_argo
1С ? Бывает, чо .... :)

Одна из частых причин - неразумное использование временных таблиц.

а лог общий для всех по вашему?
20 ноя 18, 10:27    [21738772]     Ответить | Цитировать Сообщить модератору
 Re: Рост журнала транзакций  [new]
gepard1980
Member

Откуда: Ярославль
Сообщений: 240
База используется для ASP.NET. Не являюсь специалистом в MS SQL Server. Поэтому прошу помощи. Как правильно решить проблему.
20 ноя 18, 10:33    [21738784]     Ответить | Цитировать Сообщить модератору
 Re: Рост журнала транзакций  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
gepard1980
База используется для ASP.NET. Не являюсь специалистом в MS SQL Server. Поэтому прошу помощи. Как правильно решить проблему.

ну так направление правильное - найдите длинные транзакции, может ваш asp держит соединение с незакрытой транзакцией
20 ноя 18, 10:55    [21738803]     Ответить | Цитировать Сообщить модератору
 Re: Рост журнала транзакций  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30747
gepard1980
Стоит is_autoshrink = ON
Это уберите, вы разрушаете свою базу.

gepard1980
Но постоянно висящих не обнаружил.
Рост файла лога какой, медленный, постоянный, или вы просто к концу дня обнаруживаете выросший журнал?

Если второе, то ищите большую-большую операцию изменения данных (или импорта, или обслуживания, типа ребилда индексов)

Если первое, то это ещё может быть след от старой репликации/лог-шиппинга и т.д.
То есть что то было, например, на старом сервере, потом базу перенесли и опа, в интерфейсе ничего не видно, но репликация есмть, и она не даёт самоочищаться журналу транзакций.
21 ноя 18, 11:38    [21739826]     Ответить | Цитировать Сообщить модератору
 Re: Рост журнала транзакций  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
alexeyvg,

автор
Если первое, то это ещё может быть след от старой репликации/лог-шиппинга и т.д.
То есть что то было, например, на старом сервере, потом базу перенесли и опа, в интерфейсе ничего не видно, но репликация есмть, и она не даёт самоочищаться журналу транзакций.

автор
Всегда ACTIVE_TRANSACTION показывает.
21 ноя 18, 11:43    [21739838]     Ответить | Цитировать Сообщить модератору
 Re: Рост журнала транзакций  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30747
TaPaK
alexeyvg,
автор
Всегда ACTIVE_TRANSACTION показывает.
А, ну да.
Значит, либо явно делается длинная транзакция, либо неправильная работа с коннектами в ASP.NET.
21 ноя 18, 12:12    [21739902]     Ответить | Цитировать Сообщить модератору
 Re: Рост журнала транзакций  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
gepard1980
Журнал транзакций вырастает до 30 Гб за пару часов. Помогает только вручную усечения журнала через GUI SSMS
Внутри файл поди пустой?
А если не усекать журнал вручную что неужели дальше будет расти?
22 ноя 18, 02:51    [21740730]     Ответить | Цитировать Сообщить модератору
 Re: Рост журнала транзакций  [new]
Massa52
Member

Откуда:
Сообщений: 373
gepard1980,
Такое впечатление - что ктот постоянно что-то удаляет.
22 ноя 18, 05:54    [21740739]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить