原因及错误代码文件系统损坏及其它操作


关于DB2数据库问题故障分析
    案例一、案例一、故障时间:2011-5-9完成时间:2011-5-10故障LINUX文件系统损坏,进不了系统原因及错误代码断电,会导致文件系统发生坏块,linux系统在引导时,有一个磁盘检查修复的机制,出现坏块的话,就会报错以对话的形式停下来,与你交互。解决方案修复文件坏块:LINUX分区有二种格式:ext2和ext3,针对不同的文件系统有以下两条命令进行修复:Ext2:#e2fsck–y–text3/dev/VolGroup00/LogVol00Ext3:#fsck–y–text3/dev/VolGroup00/LogVol00备注这种修复过程完全默认对话,也就是说任何系统修复提示,默认YES修复大多数的文件损坏,非专业人士很难在修复进程中,叛断那个地方有问题,但修复的结果,表面上是令人满意的。
    DB2表空间脱机挂起,连接数据库报错
    文件系统损坏及其它操作SQL0290N不允许访问表空间。SQLSTATE=55039或者提示相关表空间错误
    临时表空间在数据库下面一般建一个就可以了,我们建了好几个,可能是考虑到I/O效率吧,但这不重要,这个表空间内的数据,一般是临时存放的一些数据指针之类东东,挂起的话,可以删掉重建。一、表空间文件脱机
    --显示表空间脱机状态db2listtablespacesshowdetail主要看输出的状态及文件类型,注:我这里处理系统和临时表空间脱机及损坏重建
    DB2数据库分几种表空间:系统表空间、临时表空间、缓存区表空间。我这里写的是针对临时表空间的,其它表空间的恢复机制,请查阅相关文档
    
    --修改表空间为在线
    1.db2altertablespaceSYSCATSPACEswitch
    online
    二、重建临时及系统表空间
    ----创建BUFFERdb2createbufferpoolkerpagesize8k/home/db2inst1/successfully.-----创建系统临时表空间并指定BUFFERdb2createsystemtemporarytablespacetemppagesize8kbufferpoolzyDB20000ITheSQLcommandcompletedsuccessfully.----创建用户临时表空间db2createUSERtemporarytablespaceORCLSP_USER_TMPpagesize8kmanagedbysystemusing(/home/db2inst1/temp)DB20000ITheSQLcommandcompleted
    
    DB2数据库某张表损坏导制HIS系统不能完成收费。
    文件系统损坏及其它操作
    ***或***SQL3015NAnSQLerror-1224occurredduringprocessing.(见海淀乡)SQL3015NAnSQLerror-901ccurredduringprocessing
    青龙桥报错为代码一:-901,-------数据迁移步骤:
    1、导出表结构(不是坏库的结构)db2look-dorcl-e-l-td@-a-x-iyygl-wyygl-o/home/db2inst1/backup/db2move/createdb.sql2、导出表数据(坏库中完全导出)db2moveorclexport-uyygl-pyygldb2moveout.log3、创建空数据库4、导入表结构[db2inst1@localhost$]$db2-td@-vfcreatedb.sqlcreatedb.log导入数据库数据(如:字典数据)[db2inst1@localhost$]$cddb2move-----db2moveorclload批量导入[db2inst1@localhostdb2move$]$db2moveorclloaddb2move.log或------db2moveorclimport一条一条审核导入[db2inst1@localhost$]$db2moveorclimport-udb2inst1-pdb2inst1db2moveout.log
    说明:实施数据迁移的前提是1、某个非关键业务的表发生错误,导致数据库不能正常操作。2、凭个人经验-901一般是
    除坏表外其它表数据能导出来,可实现迁移。而-1224,数据库损坏严重,一般导到坏表时,数据库就自动断开连接了,其它表基本上导不出来,不能进行迁移。
    
    案例二、案例二、故障时间:2011-5-30完成时间:2011-5-31故障DB2数据库某张表损坏导制HIS系统不能完成挂号、收费等操作原因及错误代码文件系统损坏及其它操作
    ***SQL3015NAnSQLerrorduring-1224occurred
    解决方案------断点恢复1、首先备份sample1数据库,查看归档日志的路径,看看最后归档的时间。(一般最后最后归档的时间的那个是坏的,前一个因该可以用例2011-06-08-01.21.25.000000。)2、将sample1数据库的活动日志文件拷贝到一个新的目录下(例/home/db2inst1/archivelogs/db2inst1/ORCL)。3、还原db2restoredatabasesample2from/home/db2inst1/intosample14、----指定归档断点还原db2rollforwarddborclto2012-02-03-09.53.00.000000usinglocaltimeandstopoverflowlogpath(/home/db2inst1/archivelogs/db2inst1/SAMPLE1/NODE0000/C0000000)
    备注断点还原前提条件:1、有备份数据库2、有归档日志3、恢复时要选择离断点最接近的时间,避免更多的数据坏失
    processing.(见海淀乡)
    
    案例三、案例三、故障时间:2011-6-89:00完成时间:2011-6-821:00
    故障DB2数据库某张表损坏导制HIS系统不能完成挂号、收费等操作
    原因及错误代码文件系统损坏及其它操作
    ***SQL3015NAnSQLerrorduring-1224occurred
    解决方案同上
    备注同上
    processing.(见海淀乡)
    2012-2-4事故提示[db2inst1@localhost~]$db2connecttoorclSQL1036CAnI/Oerroroccurredwhileaccessingthedatabase.SQLSTATE=58030