2024年5月6日发(作者:)

关于DB2数据库问题故障分析

案例一、

故障时间:2011-5-9

完成时间:2011-5-10

故障

LINUX文件系统损坏,

进不了系统

原因及错误代码

断电,会导致文件系统发生坏块,

linux系统在引导时,有一个磁盘

检查修复的机制,出现坏块的话,

就会报错以对话的形式停下来,

与你交互。

解决方案

修复文件坏块:

LINUX分区有二种格式:ext2和ext3,针对不

同的文件系统有以下两条命令进行修复:

Ext2:

#e2fsck –y –t ext3 /dev/VolGroup00/LogVol00

Ext3:

#fsck –y –t ext3 /dev/VolGroup00/LogVol00

临时表空间在数据库下面一般建一个就可以

了,我们建了好几个,可能是考虑到I/O效率

吧,但这不重要,这个表空间内的数据,一般

是临时存放的一些数据指针之类东东,挂起的

话,可以删掉重建。

一、表空间文件脱机

--显示表空间脱机状态

db2 list tablespaces show detail

主要看输出的状态及文件类型,注:我这里处理

系统和临时表空间脱机及损坏重建

备注

这种修复过程完全默认对话,

也就是说任何系统修复提示,

默认YES修复大多数的文件

损坏,非专业人士很难在修复

进程中,叛断那个地方有问

题,但修复的结果,表面上是

令人满意的。

DB2表空间脱机挂起,

连接数据库报错

文件系统损坏及其它操作

SQL0290N 不允许访问表空间。

SQLSTATE=55039 或者提示相

关表空间错误

DB2数据库分几种表空间:

系统表空间、临时表空间、缓

存区表空间。我这里写的是针

对临时表空间的,其它表空间

的恢复机制,请查阅相关文档

--修改表空间为在线

1.

db2 alter tablespace SYSCATSPACE switch

online

二、重建临时及系统表空间

----创建BUFFER

db2 "create bufferpool ker pagesize 8k

'/home/db2inst1/' "

DB20000I The SQL command completed

successfully.

-----创建系统临时表空间并指定BUFFER

db2 "create system temporary tablespace temp

pagesize 8k bufferpool zy"

DB20000I The SQL command completed

successfully.

----创建用户临时表空间

db2 "create USER temporary tablespace

ORCLSP_USER_TMP pagesize 8k managed by

system using ('/home/db2inst1/temp')"