• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> 数据库 >> DB2 >> 详细内容
 

推荐文章

 
 

热点文章

  • DB2 9数据库免费版下载地址
  • cDB2中内存的使用(1)
  • 浅谈DB2数据库故障处理及最佳实践
  • DB2基础问答系列一(1)
  • DB2数据库设计和最高性能原则(1)
  • 使用DB2 UDB V8.2进行32位和64位应用程序开发(1)
  • DB2数据库的约束(1)
  • DB2编程基础要点(1)
  • DB2 pureXML应对新一代数据库技术挑战
  • DB2 与 DB2 之间的远程 SQL 复制
  • 如何学会使用db2指令(1)
  • 构建DB2 Cube View元数据桥(1)
 
 

相关文章

  • MySQL数据库5.1正式版即将发布
  • MySQL数据库下损坏数据的恢复操作其过程总结
  • 让新安装的MySQL数据库变得更安全
  • MySQL数据库优化概述
  • MySQL数据库常用命令
  • 营销下一站:数据库和社会化
  • SQLServer2005数据库还原到SQLServer2000
  • sNewsCMS关于数据库中文的乱码问题的解决方法!
  • [图]MySQL数据库服务器国际知名网站中的使用数量
  • php程序来连接SQL Server数据库的通用类
  • MSSQL数据库转到Firebird数据库的问题
  • 一个关于firebird数据库的sql查询方法
 
 

百度搜索

 
 

浅谈DB2数据库故障处理及最佳实践

  • 阅览次数:
  • 文章来源: cp整理
  • 原文作者: 不详
  • 整理日期: 2007-04-02
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

当你在使用数据库时,可能会遇到各种不同的问题。我认为解决问题的关键在于分清问题的种类,并清楚每种问题的解决办法。另外很多的数据库的问题都是由于错误的操作,错误的配置引起的,所以本文在解释如何处理问题时也会给出一些好的建议,来避免产生问题。本文重点介绍实用的方法。

对问题的分类有很多种方法,在本文中我我采用了两种分类方案。

第一种方案是是否有错误码。即发生错误时是否同时返回了错误码,错误码既包括执行命令的返回码,也包扩应用程序的返回码。

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

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

如在连接数据库时发生错误

db2 connect to sample

SQL0332N There is no available conversion for the source code page "1386" to

the target code page "819". Reason Code "1". SQLSTATE=57017

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

运行db2 ? sql0332

从输出种可以看到对于 reason code 1的解释是

……

1 source and target code page combination is not supported by the database manager.

……

所以可以通过设置代码页来解决这个问题

db2set db2codepage=1386

db2 terminate

db2 connect to sample

就可以成功连接了。

第二种分类方案是按照问题的范围和性质进行分类。分类如下:

1. 数据库实例问题

2. 数据库问题

3. 数据库性能问题

4. 应用开发与数据库有关的问题

下面对每一类问题进行详细说明。

一、数据库实例的问题

数据库实例问题可以分为两种情况

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

如果根据错误码信息无法解决,可以尝试如下方案:

重新更新该实例,以root身份登录,

cd /usr/opt/db2_08_01/instance/

./db2iupdt <inst_name>

Tip:常见的产生实例无法启动的原因

数据库安装了新的补丁后没有运行db2iupdt

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

数据库实例文件被删除或损坏

主机名与db2nodes.cfg里记录的不一致

2. 运行db2start时,hang在那里,既不报错,也无法启动实例

这种情况一般是由于实例没有正常的停止造成的,一般运行下列命令可以解决:

su - <inst_owner>

db2_kill

ipclean

su – root

(将所有的与该实例有关的db2进程杀死 kill -9 <pid>)

然后重新启动实例。

3. 数据库实例崩溃问题

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

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

Tip:常见的数据库宕机原因

系统的交换空间(paging space)用尽

数据库的某个进程被kill

二、数据库问题

1.数据连接问题

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

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

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

TCP 0.0.0.0:50000 0.0.0.0:0 LISTENING

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

Tip:通常导致数据库处于备份赞挂的原因

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

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

~

当你在使用数据库时,可能会遇到各种不同的问题。我认为解决问题的关键在于分清问题的种类,并清楚每种问题的解决办法。另外很多的数据库的问题都是由于错误的操作,错误的配置引起的,所以本文在解释如何处理问题时也会给出一些好的建议,来避免产生问题。本文重点介绍实用的方法。

对问题的分类有很多种方法,在本文中我我采用了两种分类方案。

第一种方案是是否有错误码。即发生错误时是否同时返回了错误码,错误码既包括执行命令的返回码,也包扩应用程序的返回码。

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

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

如在连接数据库时发生错误

db2 connect to sample

SQL0332N There is no available conversion for the source code page "1386" to

the target code page "819". Reason Code "1". SQLSTATE=57017

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

运行db2 ? sql0332

从输出种可以看到对于 reason code 1的解释是

……

1 source and target code page combination is not supported by the database manager.

……

所以可以通过设置代码页来解决这个问题

db2set db2codepage=1386

db2 terminate

db2 connect to sample

就可以成功连接了。

第二种分类方案是按照问题的范围和性质进行分类。分类如下:

1. 数据库实例问题

2. 数据库问题

3. 数据库性能问题

4. 应用开发与数据库有关的问题

下面对每一类问题进行详细说明。

一、数据库实例的问题

数据库实例问题可以分为两种情况

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

如果根据错误码信息无法解决,可以尝试如下方案:

重新更新该实例,以root身份登录,

cd /usr/opt/db2_08_01/instance/

./db2iupdt <inst_name>

Tip:常见的产生实例无法启动的原因

数据库安装了新的补丁后没有运行db2iupdt

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

数据库实例文件被删除或损坏

主机名与db2nodes.cfg里记录的不一致

2. 运行db2start时,hang在那里,既不报错,也无法启动实例

这种情况一般是由于实例没有正常的停止造成的,一般运行下列命令可以解决:

su - <inst_owner>

db2_kill

ipclean

su – root

(将所有的与该实例有关的db2进程杀死 kill -9 <pid>)

然后重新启动实例。

3. 数据库实例崩溃问题

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

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

Tip:常见的数据库宕机原因

系统的交换空间(paging space)用尽

数据库的某个进程被kill

二、数据库问题

1.数据连接问题

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

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

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

TCP 0.0.0.0:50000 0.0.0.0:0 LISTENING

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

Tip:通常导致数据库处于备份赞挂的原因

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

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

[1] [2]

上一篇:PHP使用zlib扩展实现页面GZIP压缩输出
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号