当前位置: 代码迷 >> DB2 >> db2中关于restore后,不允许访问表空间的有关问题
  详细解决方案

db2中关于restore后,不允许访问表空间的有关问题

热度:4440   发布时间:2013-02-26 00:00:00.0
db2中关于restore后,不允许访问表空间的问题
菜鸟请教高手,最近恢复了一个库,用的是restore的方法,然后恢复后出现了一个提示,说好像是表空间没有恢复什么的,但是具体的也没有记下来详细信息。然后通过aqua data studio查询某个表时,出现了以下错误:

>[错误]脚本行:1-1 ----------------------------------------
DB2 SQL Error: SQLCODE=-290, SQLSTATE=55039, SQLERRMC=null, DRIVER=3.50.152
消息: 不允许访问表空间。. SQLCODE=-290, SQLSTATE=55039, DRIVER=3.50.152 

现在想让高手帮忙分析下,这种问题应该怎样解决,谢谢


------解决方案--------------------------------------------------------

db2 connect to dbname
db2 list tablespaces show detail
查看表空间状态(0x000为正常)
根据表空间状态来处理错误
------解决方案--------------------------------------------------------
通过? sqlcode 290可以查看sqlcode=-290的错误信息。
相应的可以查看当时恢复日志里报的是错误。再针对问题分析。

现在你可以先查看表空间的状态的和该空间对应的容器状态。
------解决方案--------------------------------------------------------
这个时候如果是表空间由于其他原因不能恢复的时候需要重定向表空间的容器 否则恢复不成功 重定向完毕之后执行restore continue。具体过程可以查看以下链接
http://www.db2cert.com/Article/ShowArticle.asp?ArticleID=3
------解决方案--------------------------------------------------------
探讨
引用:

如果知道备份出来的数据库的表空间设备的话,在恢复前建好这些设备就不需要重定向


如何去查看这些已经备份出文件的表空间设备呢,这些设备需要怎样创建,请给出个命令,十分感谢

------解决方案--------------------------------------------------------
我遇到过这样的情况,但仅是某个表空间不能用,也就是某些表打不开。
我的解决方法很简单,就是你用QC看Tablespaces表空间中,有一个status列的值要是为非normal就表示有问题,然后到正试库把这个表空间的语句放到测试库执行,当然在执行前先备份下这个有问题的表空间语句,然后drop这个有问题的表空间。
  相关解决方案