решение проблемы высокого системного журнала в sybase

#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% и посмотреть, дает ли дополнительное пространство достаточно времени для завершения длительной транзакции.

Еще одна вещь, которую нужно сделать, это попытаться выяснить, какие транзакции выполняются долго, и посмотреть, можно ли оптимизировать эти запросы для сокращения времени выполнения.