[!--temp.gonggao--]
有事点这里,QQ号码:357710851  有事点这里,QQ号码:357710851
澳门如何让博彩业俯首帖耳——葡京赌场
捷信公司人工服务电话
哈尔滨元申广电网络有限公司的重点项目
特色小门户大搜查之:中国水产网
北京11家房产中介违规被查处主流网站将
将水产加工做到企业上市浙江宁波象山石
国联水产受邀参加京东重要供应商活动
模板网站建设一站式服务
中国一百斤左右鳄鱼多少钱
黑龙江4名干部被查
哈尔滨元申广电财务部资金管理模块主管
全国外贸看广东 广东发展靠改革
企业实施客户管理系统的好处
五招教你设计一个顶尖的“联系我们”页
国家广电总局:对快手、抖音、今日头条
今日头条的现金贷为何是其IPO的绊脚
266亿! 青岛猴年首次土地拍卖“开门红
怎么领取淘宝京东天猫内部隐藏优惠券
青岛出新规:新建住宅燃气安装费纳入房
云鑫财经晚报:今日重磅财经新闻+明日
干涸的青岛:房价已开始掉头下行经济数
异乡好居:伦敦房产投资之优质学区简介
高清:刘若英井柏然现身青岛 讲述《后
央视财经频道:聚焦纸价上涨废纸价格水
广州大学 学生资助体系简介
兰州大学新闻与传播学院西北角编辑部
黑龙江省评剧艺术中心简介
京东主动下架虹鳟产品将排查产地、养
 

DB2故障处理的思路及一般问题的解决办法


发布者: 来源:本站 更新日期:2018-11-25 07:05:42 人气:0

 

  我认为解决问题的关键在于分清问题的种类,并清楚每种问题的解决办法。另外很多的数据库的问题都是由于错误的操作,错误的配置引起的,所以本文在解释怎么样处理问题时也会给出一些好的建议,来避免产生问题。本文重点介绍实用的方法。第一种方案是是否有错误码。即发生错误时是否同时返回了错误码,错误码既包括执行命令的返回码,也包扩应用程序的返回码。

  有返回码的错误解决方案是,在db2 CLP中运行db2?SQLXXXX,然后根据对该问题的解释采取相应的解决方案。对没有错误码的问题,如数据库hang,CPU使用率过高等问题,解决问题的经验将非常重要,在本文中会有详细的说明。

  根据错误码解决问题举例(在下文中,再出现需要用这种方法解决问题时将不再重复):

  错误码分为返回码(SQL0332N)和原因码(Reason Code 1),针对不同的原因码有不同的解决方案

  1.实例无法启动,运行db2start后,直接返回错误码,如SQL1042C。

  数据库文件的权限被改成了777,数据库文件的权限是有要求的,所以不能将所有的文件都改成777的权限

  遇到实例崩溃的问题,首先查看db2diag.log,根据里面的信息来分析数据库宕机的原因。再看db2dump目录中是否有trap文件。可以根据这些信息来分析原因,一般这类问题都需要IBM工程师协助解决。

  宕机的原因可以分为两类,一类是数据库的BUG,即数据库的缺陷引起的,一般如果遇到了数据库的缺陷,都有临时的解决方案,或者通过安装最新的补丁来解决,对某些问题IBM也提供临时的修订来解决(需要付费)。另一类是操作系统,误操作等非产品问题导致的,对非产品问题导致的宕机尽量要避免。

  无法连接数据库,常见的错误有代码页错误,通讯协议错误,数据库状态错误等。

  对代码页类错误,可以通过设置db2codepage,db2country来解决,这两个变量需要用db2set设置成与数据库一致的值。

  当发生通讯类错误时,首先要要检查环境变量DB2COMM=TCPIP是否已经设置,然后要检查dbmcfg的SVCENAME,该变量可以直接设置成端口号,或者设置成服务名,该服务名要在services文件中设置成对应的端口号。要检查该端口号是否已经被其他服务占用。在启动数据库后,可以运行netstat–angrep,来查看该端口处于的状态。

  还有一种情况,当连接数据库时,数据库处于backup pending状态,无法连接。这是只要对数据库做一个备份就可以了。

  当一个数据库从循环日志改成归档日志时,数据库要求进行一次脱机备份,在重新启动数据库后,数据库就处于备份赞挂的状态

  对于一个使用线形日志的数据库,当做load时,表空间会处于备份赞挂的状态,为了避免这种情况,load命令需要使用copyyes,或者nonrecoverable参数。

  数据库最严重的问题莫过于数据库损坏,那么当数据库损坏时,最好的办法是从备份恢复数据库。

  由于存储问题导致部分数据文件损坏,但是数据库还可以连接,这种情况可以采用导出数据库的表结果和数据的方法来恢复数据库。当然对损坏的表,导出是无法完成的,这是可以使用db2dart的导出数据功能来导出这些损坏的表的数据。

  如果数据库损坏到已经无法连接的程度,那么除了从备份恢复,唯一的办法是使用db2dart来导出所有的数据了。

  首先考虑是否有可以恢复的备份,如果有,可以从备份恢复,然后前滚到日志的末尾,可以完全恢复该数据库。如果没有可用的备份来恢复,可以通过IBM的技术支持中心来协助解决。如果想自己解决那只有使用db2dart工具了。

  数据库的性能问题一般不属于故障,但是当性能问题变得很严重时,就变成了故障。

  解决数据库的性能问题,可以从以下方面入手,检查数据库的配置,如缓冲池,排序堆等是否合理;检查数据库是否收集过统计信息,准确的统计信息对语句优化起着重要的左右;对sql语句进行优化;查看是否有系统资源瓶颈。

  确认性能问题首先要从系统的资源消耗来分析,一般可以借助操作系统的工具,如aix的topas命令。数据库的性能问题一般的表现是应用变慢,甚至没有响应。

  数据库一般有三类的性能问题,一是CPU占用过多,二是IO过于繁忙,三是有锁等待。

  然后在该文件中查找处于Executing状态的应用,找到执行的对应的sql语句。

  DB2提供了很好的工具来做sql语句优化。首先要对找到的sql语句进行分析,看是否是该语句引起了性能问题。我们可以使用db2expln来查看sql语句的访问计划和执行成本。

  如果确认该语句有问题,可以使用db2advis来通过建索引的方法来优化该语句

  发生锁的问题,一般有两种情况,一是锁等待,二是死锁。首先检查数据库配置参数locktimeout,该参数一定不能设为-1,因为会引起某些应用无限期的等待。


打印此页】【返回
 

DB2故障处理的思路及一般问题的解决办法芯片级专修学院 版权所有