关于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 | 这种修复过程完全默认对话,也就是说任何系统修复提示,默认YES修复大多数的文件损坏,非专业人士很难在修复进程中,叛断那个地方有问题,但修复的结果,表面上是令人满意的。 |
DB2表空间脱机挂起,连接数据库报错 | 文件系统损坏及其它操作 SQL0290N 不允许访问表空间。 SQLSTATE=55039 或者提示相关表空间错误 | 临时表空间在数据库下面一般建一个就可以了,我们建了好几个,可能是考虑到I/O效率吧,但这不重要,这个表空间内的数据,一般是临时存放的一些数据指针之类东东,挂起的话,可以删掉重建。 一、表空间文件脱机 --显示表空间脱机状态 db2 list tablespaces show detail 主要看输出的状态及文件类型,注:我这里处理系统和临时表空间脱机及损坏重建 --修改表空间为在线 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')" | DB2数据库分几种表空间:系统表空间、临时表空间、缓存区表空间。我这里写的是针对临时表空间的,其它表空间的恢复机制,请查阅相关文档 |
DB2数据库某张表损坏导制HIS系统不能完成收费。 | 文件系统损坏及其它操作 *** SQL3015N An SQL error "-901"ccurred during processing 或 *** SQL3015N An SQL error "-1224" occurred during processing.(见海淀乡) | 青龙桥报错为代码一:-901, -------数据迁移步骤: 1、导出表结构(不是坏库的结构) db2look -d orcl -e -l -td @ -a -x -i yygl -w yygl -o /home/db2inst1/backup/db2move/createdb.sql 2、导出表数据(坏库中完全导出) db2move orcl export -u yygl -p yygl >db2moveout.log 3、创建空数据库 4、导入表结构 [db2inst1@localhost $]$db2 -td@ -vf createdb.sql >createdb.log 导入数据库数据(如:字典数据) [db2inst1@localhost $]$ cd db2move -----db2move orcl load 批量导入 [db2inst1@localhost db2move$]$ db2move orcl load >db2move.log 或 ------db2move orcl import 一条一条审核导入 [db2inst1@localhost $]$ db2move orcl import -u db2inst1 -p db2inst1 >db2moveout.log | 说明:实施数据迁移的前提是1、某个非关键业务的表发生错误,导致数据库不能正常操作。 2、凭个人经验"-901"一般是除坏表外其它表数据能导出来,可实现迁移。而"-1224",数据库损坏严重,一般导到坏表时,数据库就自动断开连接了,其它表基本上导不出来,不能进行迁移。 |
案例二、
故障时间:2011-5-30
完成时间:2011-5-31
故障 | 原因及错误代码 | 解决方案 | 备注 |
DB2数据库某张表损坏导制HIS系统不能完成挂号、收费等操作 | 文件系统损坏及其它操作 *** SQL3015N An SQL error "-1224" occurred during processing.(见海淀乡) | ------断点恢复 1、 首先备份sample1数据库,查看归档日志的路径,看看最后归档的时间。(一般最后最后归档的时间的那个是坏的,前一个因该可以用例2011-06-08-01.21.25.000000。) 2、 将sample1数据库的活动日志文件拷贝到一个新的目录下(例/home/db2inst1/archivelogs/db2inst1/ORCL)。 3、 还原db2 restore database sample2 from /home/db2inst1/ into sample1 4、 ----指定归档断点还原db2 "rollforward db orcl to 2012-02-03-09.53.00.000000 using local time and stop overflow log path(/home/db2inst1/archivelogs/db2inst1/SAMPLE1/NODE0000/C0000000)" | 断点还原前提条件: 1、 有备份数据库 2、 有归档日志 3、 恢复时要选择离断点最接近的时间,避免更多的数据坏失 |
db2数据库sql语句 |
案例三、
故障时间:2011-6-8 9:00
完成时间:2011-6-8 21:00
故障 | 原因及错误代码 | 解决方案 | 备注 |
DB2数据库某张表损坏导制HIS系统不能完成挂号、收费等操作 | 文件系统损坏及其它操作 *** SQL3015N An SQL error "-1224" occurred during processing.(见海淀乡) | 同上 | 同上 |
2012-2-4 事故提示
[db2inst1@localhost ~]$ db2 connect to orcl
SQL1036C An I/O error occurred while accessing the database. SQLSTATE=58030
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论