解决sybase中的高syslog问题

时间:2014-06-25 08:13:52

标签: sybase-ase syslog truncate-log

我从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                        

1 个答案:

答案 0 :(得分:1)

如您sp_helpdb输出中所示,您有3000Mb的日志空间,目前有2988Mb可用空间,因此此时此问题尚未发生。

假设您没有使用Sybase Replication Server,可能发生的情况是您有一个长时间运行的事务,它会阻止日志中的截断点移动。这反过来导致日志在事务可以提交之前填满,并且可以发生检查点和截断。

换句话说,你有10个交易,1到10,按顺序执行。如果2到10完成,但1仍然打开,则事务日志将不会被截断,直到1完成。

要查看您是否有长时间运行的事务,您需要检查master..syslogshold,它显示每个数据库中最早运行的事务。

您可以尝试解决此问题。

增加事务日志大小。目前,您似乎已将事务日志设置为大约数据大小的10%。您可以尝试将其增加到15-20%,并查看额外空间是否为长时间运行的事务提供了足够的时间来完成。

另一件事是尝试弄清楚哪些事务正在运行很长时间,并查看是否可以优化这些查询以减少运行时间。