TimesTen日志没有自动清除的原因之一

  TimesTen的日志文件最好单独划分一个分区来存储,因为很有可能被他产生的日志文件把磁盘占满。当然正常情况下是不存在这个问题的哈。
  官方网站上说,日志文件在下面几个事情没有完成前,是不会被删除的(参见Oracle官网):

  • All transactions writing log records to the transaction log file (or a previous transaction log file) have committed or rolled back.

  • All changes recorded in the transaction log file have been written to the checkpoint files on disk.

  • All changes recorded in the transaction log file have been replicated (if replication is used).

  • All changes recorded in the transaction log file have been propagated to the Oracle database if the IMDB Cache has been configured for that behavior.

  • All changes recorded in transaction log files have been reported to the XLA applications (if XLA is used).

所以当我们遇见日志文件在不断增长时,通常可以做如下一下操作:

1. 执行 call ttlogholds 查看是否有长事务(Long-Running Transaction)存在,如果存在,则考虑是否可以用ttxactadmin -xactIdRollback来回滚该事务。
   2. 检查配置文件中是否设置了系统定时做checkpoint,如果CkptFrequency的值为0,则表示不定时checkpoint,这时日志是不会自动删除的。如果没有设置定时Checkpoint,手动执行(call ckpt;)Checkpoint也未必可以让日志自动被清除。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

机器人检查 *