DB2:SQL0290N 不允许访问表空间。 SQLSTAT=55039

27850阅读 0评论2015-01-13 jackson198574
分类:DB2/Informix

  


背景:
基于块级别的灾备存储恢复环境中,数据库起来之后查询数据提示表空间不可访问。


分析:
该问题可能的原因有很多,可能有:
1.相关文件属主、权限设置不当
2.灾备系统恢复的时间点选择不当
3.非正常的终止对表空间的访问


在本次案例中,应该是由于灾备系统恢复的时间点碰巧在不合适的时间点上,解决方法就是选择该时间点附近的快照尝试恢复。


报错:
db2 => select count(*) from test
1          
-----------
SQL0290N  Table space access is not allowed.  SQLSTATE=55039








查看表空间状态:
Tablespace ID                        = 3
 Name                                  = music
 Type                                  = Database managed space
 Contents                            = All permanent data. Regular table space.
 State                                 = 0x4080                         ----状态异常
 Detailed explanation:
 Roll forward pending
 Offline




查看容器信息:

$ db2 list tablespace containers for 3

 Tablespace Containers for Tablespace 3
 Container ID                         = 0
 Name                                  = /dev/music
 Type                                   = Disk






查看容器文件的属主和读写权限:
$ ls -lt /dev/music
crw-rw----    1 root     system       48, 14 Nov 20 16:09 /dev/music             ----属主有问题




修改属主和权限:
root@eric/# chown db2inst1.db2iadm1 /dev/music
root@eric/# chmod 777 /dev/music
root@eric/# su - db2inst1






重启数据库实例:
$ db2stop force
12/29/2014 14:30:38     0   0   SQL1064N  DB2STOP processing was successful.
SQL1064N  DB2STOP processing was successful.


$ db2start
12/29/2014 14:30:43     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.




连接数据库:
$ db2 connect to music
 Database Connection Information
 Database server           = DB2/AIX64 9.5.6
 SQL authorization ID   = DB2INST1
 Local database alias     = MUSIC


该问题一般来说可以尝试回滚数据库:
db2  rollforward db music to end of logs


在这次项目中,单纯的回滚无法解决无法访问的问题,最终方案为:
关闭数据库实例---卸载文件系统---varyoffvg---灾备系统追一下日志或者找一个其他的时间点尝试恢复---varyonvg---挂载文件系统---调整相关文件的权限和属主---启动数据库---连接数据库






执行查询语句:
db2 => select count(*) from test
1          
-----------
 9821

  1 record(s) selected.














上一篇:AIX静态路由配置
下一篇:optimizer_dynamic_sampling