0

私がsyslogから理解しているのは、syslogファイルに保存された情報に基づいてロールバックを実行できるように、必要な情報がファイルに記録されるということです。ここ数か月から、sybase データベースで syslog の使用率が高くなっています。syslog の使用率が高いときにデータベース アクティビティを確認していますが、これを引き起こす可能性のあるクエリを見つけることができません。「trunc log on chkpt」dboption も有効にしています。

sp_helpthreshold

 segment name     free pages     last chance?     threshold procedure 
---------------  -------------  ---------------  ----------------------       
 logsegment            109296                1   sp_thresholdaction

syslog の使用を制御するために他の設定が必要かどうか、誰か指摘してもらえますか?

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                        
4

1 に答える 1

1

出力に見られるように、sp_helpdb3000Mb のログ スペースがあり、現在 2988Mb の空き容量があるため、現時点では問題は発生していません。

Sybase Replication Server を使用していないと仮定すると、ログ内の切り捨てポイントが動かないように長時間実行されているトランザクションが発生している可能性があります。これにより、トランザクションがコミットされる前にログがいっぱいになり、チェックポイントと切り捨てが発生する可能性があります。

つまり、1 から 10 までの 10 のトランザクションが順番に実行されているとします。2 から 10 が終了しても 1 がまだ開いている場合、トランザクション ログは 1 が終了するまで切り捨てられません。

実行時間の長いトランザクションがあるかどうかを確認するmaster..syslogsholdには、各データベースで最も古い実行中のトランザクションを確認する必要があります。

この問題を解決するには、いくつかの方法があります。

トランザクション ログのサイズを増やします。現在、トランザクション ログをデータのサイズの約 10% に設定しているようです。これを 15 ~ 20% に増やしてみて、余分なスペースによって、実行時間の長いトランザクションが完了するのに十分な時間が得られるかどうかを確認できます。

他に行うべきことは、どのトランザクションが長時間実行されているかを把握し、それらのクエリを最適化して実行時間を短縮できるかどうかを確認することです。

于 2014-06-26T13:19:24.230 に答える