#sap-ase #syslog #truncate-log
#sap-ase #системный журнал #усечение-журнал
Вопрос:
Из системного журнала я понимаю, что необходимая информация записывается в файл, чтобы можно было выполнить откат на основе информации, сохраненной в файле системного журнала. За последние несколько месяцев я столкнулся с высоким уровнем использования системного журнала в моей базе данных sybase. Проверка активности базы данных во время интенсивного использования системного журнала, не удалось найти ни одного запроса, который может вызвать это. У меня также включена опция db «trunc log on chkpt».
sp_helpthreshold
segment name free pages last chance? threshold procedure
--------------- ------------- --------------- ----------------------
logsegment 109296 1 sp_thresholdaction
Не мог бы кто-нибудь указать, требуется ли какая-либо другая настройка для контроля использования системного журнала?
результат sp_helpdb DB01
name db_size owner dbid created durability status
------- ------------- -------- ------- ------------ ------------- ------------------------------------------------------------------------
tlew04 33000.0 MB sa 13 Apr 17, 2013 full select into/bulkcopy/pllsort, trunc log on chkpt, abort tran on log full
device_fragments size usage created free kbytes
------------------- ------------- -------------------- ------------------- ----------------
dev29 1000.0 MB data only May 26 2013 5:17AM 928
dev32 250.0 MB log only May 26 2013 5:17AM not applicable
dev29 250.0 MB data only May 26 2013 5:17AM 0
dev32 7.0 MB log only May 26 2013 5:17AM not applicable
dev38 13.0 MB log only May 26 2013 5:17AM not applicable
dev29 1450.0 MB data only May 26 2013 5:17AM 240
dev38 230.0 MB log only May 26 2013 5:17AM not applicable
dev29 300.0 MB data only May 26 2013 5:17AM 416
dev38 200.0 MB log only May 26 2013 5:17AM not applicable
dev29 500.0 MB data only May 26 2013 5:17AM 1230
dev38 300.0 MB log only May 26 2013 5:17AM not applicable
dev29 500.0 MB data only May 26 2013 5:17AM 876
dev38 100.0 MB log only May 26 2013 5:17AM not applicable
dev29 200.0 MB data only May 26 2013 5:17AM 0
dev38 200.0 MB log only May 26 2013 5:17AM not applicable
dev29 3200.0 MB data only May 26 2013 5:17AM 2316
dev38 400.0 MB log only May 26 2013 5:17AM not applicable
dev29 200.0 MB data only May 26 2013 5:17AM 0
dev38 200.0 MB log only May 26 2013 5:17AM not applicable
dev29 18555.0 MB data only May 26 2013 5:17AM 9156764
dev35 3845.0 MB data only May 26 2013 5:17AM 3921884
dev1 1100.0 MB log only Jun 8 2014 9:06AM not applicable
column1
-----------------------------------------------------
log only free kbytes = 3059998
Комментарии:
1. Вывод команды, который вы нам дали, на самом деле ничего не показывает.
sp_helpdb [dbname]
было бы более полезно. Все действия по вставке / обновлению / удалению будут способствовать использованию системных журналов, поэтому вы можете не увидеть прямой связи с текущими запросами и использованием системных журналов.2. Кроме того, используете ли вы сервер репликации Sybase в своей среде? Это может повлиять на использование журнала.
3. Майкл, я обновил сообщение. Пожалуйста, помогите мне с проблемой.
Ответ №1:
Как видно из ваших sp_helpdb
выходных данных, у вас есть 3000 МБ свободного места для журналов, и в настоящее время у вас есть 2988 МБ свободного места, поэтому в настоящее время проблема не возникает.
Предполагая, что вы не используете сервер репликации Sybase, вероятно, происходит то, что у вас длительная транзакция, которая удерживает точку усечения в журнале от перемещения. Это, в свою очередь, приводит к заполнению журнала до того, как транзакция может быть зафиксирована, и может произойти контрольная точка и усечение.
Другими словами, у вас есть 10 транзакций, от 1 до 10, выполняемых по порядку. Если с 2 по 10 завершается, но 1 все еще открыт, журнал транзакций не будет усечен до завершения 1.
Чтобы узнать, есть ли у вас длительная транзакция, вам нужно будет проверить master..syslogshold
, какая из них показывает самую старую запущенную транзакцию в каждой базе данных.
Есть несколько вещей, которые вы можете попытаться решить эту проблему.
Увеличьте размер журнала транзакций. В настоящее время кажется, что вы установили, что журнал транзакций составляет примерно 10% от размера ваших данных. Вы можете попробовать увеличить это значение до 15-20% и посмотреть, дает ли дополнительное пространство достаточно времени для завершения длительной транзакции.
Еще одна вещь, которую нужно сделать, это попытаться выяснить, какие транзакции выполняются долго, и посмотреть, можно ли оптимизировать эти запросы для сокращения времени выполнения.