`
tower
  • 浏览: 244911 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Timesten日志不及时清理的故障处理

阅读更多

昨天一早到公司,有同事就提醒说是装Timesten的服务器的磁盘空间满了,首先看到的是timesten生成了Ncore文件,400M一个,当时下意识就把core文件删掉了,看了一下日志,有很多提示分配空间错误的。 到了中午,那个同事又告诉我空间又不够了,我查了一下core文件,没有core文件,用du查了一下,在timesten的日志目录下,有900多个日 志文件,照理根据配置,timesten10分钟做一次checkpoint,做完后会把相关的日志删掉的啊,有幸在抓虾上看到了下面这篇文章(实在不好 一下,可能是抓虾编辑过了,找不到原出处)<o:p></o:p>

最近碰到一个比较少见的一个问题,就是由于某种原因导致TimesTen的日志无法自动删除,导致在磁盘上有大量的日志累积,磁盘的使用空间有被耗尽的危险。通过仔细排查相关的TimesTen 系统日志等相关信息,并没有发现异常情形。通过ttlogholds命令才发现有一个长的事务因为某种原因一直未提交,从而导致了日志的无法自动删除。解决过程如下:<o:p></o:p>

  1.  通过ttlogholds查看相关信息<o:p></o:p>

<!---->2.    <!---->Command> call ttlogholds; < 41, 231442592, Replication                   , AHOCSRB1:_ORACLE > < 41, 231442592, Replication                   , AHOCSRB2:DATA > < 41, 231442592, Long-Running Transaction      , 138.1089 > < 121, 30922688, Checkpoint                    , DATA.ds0 > < 121, 84106376, Checkpoint                    , DATA.ds1 > 5 rows found.<o:p></o:p>

发现第3行存在一个长的事务(Long-Running Transaction),事务号为138.1089 ,导致了从41号日志之后无法删除。<o:p></o:p>

  1. 通过ttxactadmin查看该事务详细情形<o:p></o:p>

<!---->4.    <!---->ttxactadmin <DSN><o:p></o:p>

Program File Name: ****** 2730    0×6000000000080020  138.1089   Active          Database  0×01312d0001312d00   IX                                                          HashedKey -6667089929831852570 X     ODS30.TB_BIL_ACCT_BALANCE_LIMIT                                                        Row       0×000000001b<st1:chmetcnv tcsc="0" hasspace="False" sourcevalue="8306" numbertype="1" negative="False" w:st="on" unitname="F">8306f</st1:chmetcnv>0   Xn    ODS30.TB_BIL_ACCT_BALANCE_LIMIT                                                        Command   6455310528           S   <o:p></o:p>

发现在目前的活动事务中确实存在这个事务。<o:p></o:p>

  1. 回滚该事务<o:p></o:p>

ttxactadmin -xactIdRollback <xid> <DSN><o:p></o:p>

 通过上述命令回滚该事务。<o:p></o:p>

         之后不久当checkpoint被触发后,就可以看到日志被自动清除了。当然也可以手工强制checkpoint( call ttckpt;) <o:p></o:p>

        从这个问题的表现来看,个人认为应用中出现异常的可能性较大。一种可能性是应用中有个长的事务忘记提交,导致日志一直被Block在那里。<o:p></o:p>

<o:p> </o:p>

于是,我进行了如下操作<o:p></o:p>

  1.  通过ttlogholds查看相关信息<o:p></o:p>

Command> call ttlogholds;<o:p></o:p>

发现日志号2被两个xlasample的程序挂着了,估计是同事做测试的时候出现的一些异常。<o:p></o:p>

  1.  通过xladeletebookmark查看相关信息<o:p></o:p>

Command> xladeletebookmark;<o:p></o:p>

显示出来这两个xla的相关情况,用这个命令把它们清除掉<o:p></o:p>

  1.  通过ttCkpt手工做checkpoint<o:p></o:p>

Command> call ttCkpt;<o:p></o:p>

等做完了,一看日志已经正常了。<o:p></o:p>

<o:p> </o:p>

总结,TimesTen出现日志挂起,不能删除的情况在实际生产环境中是一个很危险的事情,如果出现大量的同步操作,会产生大量的日志,这些日志如果不及时checkpoint清除掉的话,会很快把磁盘空间消耗掉。

由于使用的时间不多,从目前了解到的情况来看,一般都是先用ttlogholds看是什么原因导致日志不能清楚,然后挂起日志的原因进行针对性的处理

分享到:
评论

相关推荐

    使用ttTraceMon进行TimesTen故障分析

    但是,与所有技术一样,TimesTen也可能会遇到运行故障或性能瓶颈。为了帮助用户诊断和解决这些问题,TimesTen提供了TraceMon工具,这个工具能够详细跟踪TimesTen内部的执行过程。 TraceMon工具作为一个底层的Debug...

    TimesTen 体系结构概述

    - **微日志(MicroLogging)**:为了保持事务的一致性和持久性,TimesTen引入了微日志机制,只记录修改前后的数据差异,而非整个数据行,从而降低了日志记录的开销。 - **数据分区**:TimesTen支持数据的水平和垂直...

    TimesTen--7

    Oracle TimesTen是一款高性能的内存数据库系统,主要用于需要实时处理大量数据的应用场景,尤其在电信、金融等对数据读取速度有极高要求的行业中得到广泛应用。TimesTen是Oracle公司的产品,它设计的目标是提供亚...

    Oracle TimesTen操作指南

    10. **维护与升级**:包括定期的数据库维护任务,如日志清理、空间管理,以及如何升级到新版本的TimesTen。 11. **案例研究与最佳实践**:通过实际应用示例来理解TimesTen如何在不同行业中提高性能,以及推荐的操作...

    timesten服务器安装文档

    Oracle TimesTen In-Memory Database是Oracle公司提供的一款高性能、低延迟的内存数据库系统,主要用于实时事务处理和数据仓库应用。本教程将引导你逐步完成在Linux环境下的TimesTen服务器安装过程。 首先,为了...

    timesten

    Oracle TimesTen是一款高性能的内存数据库系统,主要用于实时应用,它能提供极快的数据存取速度。...正确地执行这些步骤,将确保Timesten能在服务器环境中高效且稳定地运行,为实时应用提供强大的数据处理能力。

    Oracle Timesten内存数据库自动数据清理机制探究.pdf

    Oracle Timesten内存数据库自动数据清理机制探究.pdf

    TimesTen内存数据库资料

    9. **数据压缩**:为了更高效地利用内存,TimesTen支持数据压缩,可以在不牺牲性能的情况下存储更多的数据。 10. **备份与恢复**:TimesTen提供了多种备份和恢复策略,包括在线备份、点对点恢复等,确保在系统故障...

    timesten客户安装文档

    这通常涉及运行`ttStart`命令和检查TimesTen的日志文件。 总结来说,安装Oracle TimesTen In-Memory Database涉及创建用户组和用户,传输安装包,创建必要目录,运行安装脚本,并进行环境配置。遵循这些步骤,初学...

    TimesTen错误信息参考及SNMP

    在TimesTen数据库的场景下,SNMP主要用于实时监控系统的健康状况,及时发现并报告潜在的故障。 #### SNMP陷阱 SNMP陷阱是SNMP协议的一个重要组成部分,它允许网络设备主动向网络管理系统发送警报信息。在TimesTen...

    CentOS6.3安装TimesTen

    TimesTen是一款由甲骨文公司开发的高性能、内存中的列式数据库,它为需要实时分析和事务处理的应用程序提供了极高的性能。 ### 一、前期准备工作 在开始安装TimesTen之前,需要进行一些必要的系统配置: 1. 创建...

    TIMESTEN教程

    TIMESTEN是Oracle公司的一款高性能、实时的内存数据库系统,特别适合于处理对速度和响应时间有极高要求的应用场景。这款数据库产品起源于1992年惠普实验室的研究项目,专注于电信网络应用的内存数据库技术。1996年,...

    oracle timesten how to setup

    它的主要特点是数据存取速度极快,能够处理大量并发事务,适用于交易处理、数据分析和流数据处理等场景。以下是如何设置Oracle Timesten的详细步骤和相关知识点: 1. **系统需求**:在开始安装前,你需要确认你的...

    针对timesten 内存数据库的java开发手册【pdf】

    Timesten是Oracle公司推出的一种高性能、低延迟的内存数据库系统,专为需要实时数据处理的应用场景设计。这份手册以PDF格式提供,旨在帮助Java开发者充分利用Timesten的优势,提升应用的性能和响应速度。 一、...

    TimesTen11gR2

    TimesTen是Oracle公司的一款高性能内存数据库产品,专为需要实时数据处理和极致性能的场景设计。它在内存中存储数据,从而实现了高速数据访问,是交易处理、电信、金融等领域的理想选择。 ### TimesTen的历史与发展...

    timesten系列六:定义复制,实现timesten的高可用性

    通过上述配置,Timesten不仅能够保持高性能的事务处理能力,还能够有效地避免单点故障问题,确保系统的稳定性和可靠性。Timesten的复制技术为用户提供了一个灵活、可扩展的解决方案,可以在不同的业务场景下实现高...

    TimesTen Sql语法说明

    Oracle的TimesTen是一款高效、内存中的数据库系统,主要用于实时应用,如在线交易处理(OLTP)和大数据分析。它的设计目标是提供极低的延迟和高吞吐量,以满足那些对速度有极端要求的业务场景。TimesTen的SQL语法在...

Global site tag (gtag.js) - Google Analytics