DB2数据库表空间检查与维护
一、表空间占满故障现象
1、系统上线初期正常,稳定运行半年以后突然出现故障。
2、对数据库进行写入操作时失败:用户的流程计划不能正常提交,录
入数据无法保存。
3、系统应用程序操作响应慢,甚至宕机(死机)。
4、DB2数据库能正常连接,select语句执行正常,insert语句执行失败。
二、表空间状态检查与查看
1、使用DB2管理员账户查看表空间状态:db2 list tablespaces |more ,
其中|more 用于分页显示输出结果,按空格键翻页。
结果如图1所示。
图1
其中状态0x0000 表示表空间正常。
2、查看表空间及其表空间所属容器的详细信息:
db2 list tablespaces show detail |more ,结果如图2所示。
图2
剩余表空间=可用页数*页大小,如图2中SYSCATSPACE表空间的可用空间大小:=3532*4096(4K)=14M,即该表空间最多还能增加14M的数据,若占满后需要扩充表空间。
三、表空间占满解决方法
1、改变容器大小:
db2 alter tablespace idx_data resize(file 'd:\db2\datafile_netdb\idx_data' 32000)
该命令是将表空间idx_data 的大小为1000MB(因为该表空间扩展数
据库大小为32K),d:\db2\datafile_netdb\idx_data是该表空间文件
存放位置。
执行结果如图3所示。
图3
2、增加新的容器:
db2 alter tablespace idx_data add(file 'd:\db2\datafile_netdb\idx_data_ex1' 640) 该命令是将表空间idx_data 增加新的容器idx_data_ex1,大小为
20MB(因为该表空间扩展数据库大小为32K),
d:\db2\datafile_netdb\idx_data_ex1是该新增容器文件存放位置。
执行结果如图4所示。
图4
3、表空间设为自增长:
db2 alter tablespace idx_data autoresize yes increasesize 10240 k maxsize none
该命令表示将表空间idx_data设为自增长,每次增加大小10MB,执行命令如图5所示。
图5
查看表空间是否为自增长且增长大小:
db2 get snapshot for tablespaces on netdb |more
执行结果如图6所示。
图6
若该表空间是为自增长,则【启用启动调整大小】选项为【是】,且【增加大小(字节)】这个选项对应的值为每次自增长的大小【10485760】,其单位为字节,即10(MB)*1024*1024=10485760.
四、表空间状态列表
0x0 Norma 正常 . 0x1 Quiesced: SHARE 静止态共享 .
0x2 Quiesced: UPDATE 静止态更新 .
0x4 Quiesced: EXCLUSIVE 静止态排它 .
0x8 Load pending 载入挂起 .
0x10 Delete pending 删除挂起 .
0x20 Backup pending 备份挂起 .
0x40 Roll forward in progress 正在回滚 .
0x80 Roll forward pending 回滚挂起 .
0x100 Restore pending 存储挂起 .
0x100 Recovery pending (not used) 恢复挂起 .
0x200 Disable pending
0x400 Reorg in progress 正在重组 .
0x800 Backup in progress 正在备份 .
0x1000 Storage must be defined 存储器未被指定 .
0x2000 Restore in progress 正在恢复 .
0x4000 Offline and not accessible 表空间不可访问 .
0x8000 Drop pending 删除挂起 .
0x2000000 Storage may be defined 存储器需被指定 .
0x4000000 StorDef is in 'final' state 存储器终止 .
0x8000000 StorDef was changed prior to rollforward 存储器被改变至回滚状态 .
0x10000000 DMS rebalancer is active 表空间的容器重新分布 .
0x20000000 TBS deletion in progress 表空间删除 .
0x40000000 TBS creation in progress 表空间建立 .
0x8 For service use only .。