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

本文介绍了一种在基于块级别的灾备存储恢复环境中遇到的表空间不可访问问题及解决方案。问题出现的原因可能包括文件权限错误、恢复时间点不当等。文中详细记录了从检查表空间状态到调整文件权限并成功恢复数据的全过程。
背景:
基于块级别的灾备存储恢复环境中,数据库起来之后查询数据提示表空间不可访问。

分析:
该问题可能的原因有很多,可能有:
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.


转自:http://blog.chinaunix.net/uid-20802110-id-4756579.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值