详解OnLine后续处理办法及应用
恍惚恍惚又来到了文章的学习,想必大家又有很多问题吧!
今天,小编的数据库学习内容将要介绍的是关于Online非正常结束后的处理方法以及进程被挂起后处理的方法。精彩内容将在下面展开,有兴趣的朋友们千万不要错过了。
一、OnLine非正常结束时,描述有关OnLine进入脱机方式原因的信息将写入日志,下面时OnLine结束时系统日志中登陆日志的示例:
ProcessAbortedAbnormally:pid=22500user=210us=c003f15cflags=a01
ProcessAbortedAbnormally(critialsection):pid=22500user=210flag=a01
INFORMIX-OnLineenteringABORTmode!!!INFORMIX-OnLineStopped
日志条目显示一个进入临界状态的sqlturbo进程非正常结束,临界状态是指一个进程执行写调用而不能被中断所用的术语。如果一个进程处于临界状态时非正常结束,OnLine为保护数据完整性而进入脱机方式。当OnLine重新启动时会执行快速恢复,回滚所有未完成的事务。
如果持有锁存器(latch)的进程非正常结束,OnLine也会非正常结束。锁存器用于控制对诸如缓冲区,锁定表等共享内存资源的访问。为防止干涉其它进程申请共享内存资源,INFORMIXOnLine控制对有锁存器的资源表的访问。
虽然OnLine后台进程对夭折的进程进行日常的清理工作,但数据一致性阻止后台进程在清除过程中释放共享内存锁存器。对后台进程来说,判断用户进程是否完成对数据库的修改是不可能的。为解脱这以一困境,OnLine强制自己进入脱机方式。当OnLine回到联机(Online)方式时,自动进行快速恢复。快速恢复使OnLine达到与最后一个完成事务一致的状态。
当持有锁存器的进程结束时,会生成以下的条目:
ProcessAbortedAbnormally:pid=10743user=104us=60204cflags=21
ProcessAbortedAbnormally(latch):pid=10743user=104flags=21
INFORMIX-OnLineenteringABORTMODE!!!
–OnLineAborting–us=6019a8,pid=11987,uid=1000
这些日志条目提供的信息在判定进程为何非正常结束时十分有用,条目中各域的定义如下:
pid———sqlturboUnix系统进程id
user——–真正用户id
us———-共享内存中用户结构的地址
flags——-定义如下
0x0000001——0x0000001正在使用的用户结构
0x0000002——0x0000002等待锁存器
0x0000004——0x0000004等待锁
0x0000008——0x0000008等待缓冲区
0x0000010——0x0000010等待检查点
0x0000020——0x0000020等待读取调用
0x0000040——0x0000040向存档磁道写逻辑日志
0x0000080等待清除长事务
0x0000100——0x0000080特定turbo检测用户
0x0000200处于事务中
0x0000400进程在回滚
0x0000800——0x0000100处于临界状态的进程继续…
0x0001000——0x0000200特定的后台进程
0x0002000开始工作日志登记
0x0004000——0x0000400存档
0x0008000——0x0000800清除死进程
0x0020000——0x00002000特定缓冲区刷新进程
0x0010000——0x0002000等待逻辑缓冲区写入
0x0040000——0x0004000该进程是远程服务器
0x0080000该进程正完成远程任务
0x0100000——0x0008000死锁超时
———–0x00010000—–普通锁超时
———–0x00020000—–超时等待期已结束
———–0x00040000—–等待事务
以上的日志条目中,sqlturbo进程的UNIX进程id为10743,真正用户id为104,共享内存中用户结构的地址为0x60204c,标志显示用户结构正在使用中,OnLine引擎正处于读取调用之中(0x00000001,&0x00000020)。
这个信息可以标识非正常结束的用户,查明他或她是否遇到意外的错误,或以某种方式导致进程的非正常结束。用户不应对Informix进程使用kill-9命令。管理员可以用onmode-zpid命令中止某一个sqlturbo线索。如果进程正持有锁存器或处于临界状态,tbmode命令不会立即中止该进程。
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库统都在各个方面得到了广泛的应用。
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
二、当OnLine用户抱怨他们的进程被挂起,或者不能与OnLine相互作用时,运行onstat-a,获得有关问题的本质信息。onstat是OnLine提供的实用程序,是用来监视系统的命令。它提供了与tb_Monitor(onmonitor)实用程序相近的,但更为详尽的统计数字。OnLine挂起的最明显的原因时逻辑日志已充满而且需要备份。在tbstat输出中检查逻辑日志的状态。在逻辑日志填满后备份日志,就会让OnLine继续处理事务。进程必须等待检查点完成。检查点请求可以阻止进程进入临界状态或者获得锁存器资源。onstat显示的第1行为状态行,它会显示是否申请了检查点。如果条件成立,有可能是检查点在等待资源。检查用户结构下的等待队列来找出资源的地址。一旦定位到资源,判定拥有该资源的用户进程状态。已经进入临界状态,或是持有锁存器资源的进程可以阻止检查点的完成。例如,存档进程在磁带改换期间一直持有一个锁存器,并禁止检查点的发生。
帮助诊断问题的实用程序
实用程序名目的描述使用
dbexport卸成ascii文件把数据库卸到磁盘或磁带上,生成包含表结构的数据库.sql文件。结构并不包含extent大小数据库移植到其它平台
dbimport加载ascii文件从dbexport生成的数据库结构及ascii数据,生成并加载数据库,直接由磁盘或磁带加载。由其它平台输入数据
tbunload卸成二进制文件将数据库或表的数据影象,卸到磁盘或磁带上,用于页大小,机器结构相同的OnLine系统高效的,真正二进制方式卸数据
tbload由二进制文件加载由tbunload生成的磁带加载数据库或表高效的,数据库数据加载方式
tbinit管理初始化共享内存,启动共享内存后台进程tbmonitor命令行
tbmode管理使OnLine脱机或联机,中止OnLine进程tbmonitor命令行
tbmonitor管理由管理员来开启OnLine系统,报告OnLine系统状态,执行存档,恢复备份逻辑日志,改变系统状态交互式全功能管理程序
tbparams管理由管理员用来增加或删除逻辑日志,改变物理日志的大小及位置tbmonitor命令行
tbspaces管理由管理员用来增加或删除dbspace或blobspace,为它们增加chunk,改变状态tbmonitor命令行
tbstat系统检测员提供有关OnLine状态,共享内存资源的详细信息报告/debug工具
tbtape管理在磁带上作系统存档,或备份逻辑日志tbmonitor命令行
tblog系统检测员提供有关逻辑日志条目的详细信息报告/debug工具
tbcheck系统检测员报告并检查OnLine系统完整性,执行数据,索引页,extent,位图页的低级别检测,提供有关保留页,extent和系统信息报告/debug工具
具体内容就讲到这里,更多精彩内容,可前往课课家官方网查看有关的数据库教程视频。