测试环境上在反复做几次升级后发现数据库表空间的HWM比used pages 高出很多,所以尝试降低高水位线。
开始网上搜索资料讲用runstats、reorg命令,各种尝试后并不管用,后来又了解到db2dart命令,总算让我看到了希望。
db2dart有三个选项:DHWM(Dump HWM)、LHWM(Lower HWM)、RHWM(Remove HWM) 摘抄自《DB2数据库管理最佳实践》
只需使用LHWM选项就足够了,该选项会提供降低HWM的建议,下面是使用方法:
db2dart dbname /lhwm (回车后会提示输入需要操作的表空间id及期望的HWM值,表空间id可以通过db2 list tablespaces show detail命令查看,期望值可以填used pages的值也可以填0)
以空格分隔输入两个参数后回车将会生成一个以数据库名开头的.RPT文件,打开该文件即可看到提供的几条建议:
图中提示先导出表ZJWEB.RUN_STATUS_TABLE的数据再重建该表,再将数据导入,需要注意的是,LHWM给出的建议并不能总是获得预期的结果。
依照这几条建议做完后发下HWM并没有降低,之后又了解到alter table move命令,由于若index跟表在同一个表空间的话会使index变为UNUSABLE,所以没有尝试。