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

有人可以指出是否需要任何其他设置来控制系统日志的使用?

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_helpdb输出中可以看出,您有 3000Mb 的日志空间,并且当前有 2988Mb 的空闲空间,因此此时不会出现问题。

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

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

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

您可以尝试几件事来解决此问题。

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

另一件事是尝试找出哪些事务运行时间长,并查看是否可以优化这些查询以减少运行时间。

于 2014-06-26T13:19:24.230 回答