-
DB2
故障处理的思路及一般问题的解决办法
本文将介绍
DB2
故障处理的思路及一
般问题的解决办法,包括有错误码的问题解决以及按
照问题的范围和性质进行分类。
p>
我认为解决问题的关键在于分清问题的种类,
并清楚每种问题的解决办法。
另外很多的
数据库的问题都是
由于错误的操作,
错误的配置引起的,
所以本文在解释怎么样处
理问题时
也会给出一些好的建议,来避免产生问题。本文重点介绍实用的方法。
对问题的分类有很多种方法,在本文中我我采用了两种分类方案。
p>
第一种方案是是否有错误码。
即发生错误
时是否同时返回了错误码,
错误码既包括执行
命令的返回码,也
包扩应用程序的返回码。
有返回码的错误解决方案是,在
db2
CLP
中运行
db2 ? SQLXXXX
,然后根据对该问题的
解释采取相应的解决方案。对没有错误码的问题,如数据库<
/p>
hang
,
CPU
使用率过高等问题,
解决问题的经验将非常重要,在本文中会有详细的说明。
根据错误码解决问题举例
(在下文中,
再出现需要用这种方法解决问题时将不再重复)
:
如在连接数据库时发生错误
db2 connect to sample
SQL0332N
There
is
no
available
conversion
for
the
source
code
page
the target code page
SQLSTATE=57017
错误码分为返回码(
SQL0332N
)和原因码(
Reason
Code
),针对不同的原因码有
不同的解决方案
运行
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
Tip
:常
见的产生实例无法启动的原因
数据库安装了新的补丁后没有运行
db2iupdt
数据库文件的权限被改成了
777
,数据库文件
的权限是有要求的,所以不能将所有的文
件都改成
777
的权限
数据库实例文件被删除或损坏
主机名
与
里记录的不一致
< br>2
.运行
db2start
时,
hang
在那里,既不报错,也无法启动实例
< br>
这种情况一般是由于实例没有正常的停止造成的,一般运行下列命令可以解决:
su -
db2_kill
ipclean
su
–
root
(
将所有的与该实例有关的
db2
进程杀死
kill -9 )
然后重新启动实例。
3
.数据库实例崩溃问题
遇到实例崩溃的问题,首先查看
,根据里面的信息
来分析数据库宕机的原
因。再看
db2dump
目录中是否有
trap
文件。可以根据这些信息来分析
原因,一般这类问题
都需要
IBM
工程
师协助解决。
宕机的原因可以分为两类,一类是数据库的
p>
BUG
,即数据库的缺陷引起的,一般如果遇
到了数据库的缺陷,都有临时的解决方案,或者通过安装最新的补丁来解决,对某些问题
IBM
也提供临时的修订来解决(需要付费)。另一类是操作系统,误操作等非产品问
题导致
的,对非产品问题导致的宕机尽量要避免。
Tip
:常见的数据库宕机原因
系统的交换空间(
paging
space
)用尽
数据库的某个进程被
kill
二、数据库问题
1
.数据连接问题
< br>无法连接数据库,常见的错误有代码页错误,通讯协议错误,数据库状态错误等。
对代码页类错误,可以通过设置
db2codepage,db
2country
来解决,这两个变量需要用
db2set
p>
设置成与数据库一致的值。
当发生通讯类
错误时,
首先要要检查环境变量
DB2COMM=TCPIP<
/p>
是否已经设置,
然后要检
查
dbm cfg
的
SVCENAME
,该变量可以直接设置成端口号,或者设置成服务名,该服务名要
在
services
文件中设置成对应的端口号。要检查该端口号是否已经被
其他服务占用。在启
动数据库后,可以运行
netstat
–
an
|grep
,来查看该端口处于的状态。
TCP 0.0.0.0:50000 0.0.0.0:0 LISTENING
还有一种情况,当连接数据库时,数据库处于
backup p
ending
状态,无法连接。这是
只要对数据库做一个备份就
可以了。
Tip
:通常导致数据库处
于备份赞挂的原因
当一个数据库从循环日志改成归档日志时,
数据库要求进行一次脱机备份,
在重新启动
数据库后,数据库就处于备份赞挂的状态
对于一个使用线
形日志的数据库,当做
load
时,表空间会处于备份赞挂的状
态,为了
避免这种情况,
load
命令
需要使用
copy yes
,或者
no
nrecoverable
参数。
2
.数据库损坏
数据库最严重的问题莫过于数据库损坏,
那么当数据库损坏时,
最好的办法是从备份恢
复数据库。
-
-
-
-
-
-
-
-
-
上一篇:英语食物翻译
下一篇:米其林工厂标准工时、周期时间分析(cycle time)