今天我表空间无法扩,后来一查,原来超出表空间大小的限制了。看表空间的db2look,表空间为regular的。再一问,这个数据库是从V8迁移到V9的。

 

SQL1139N  The total size of the table space is too big.

Explanation:

The size of the current table space is too big. The size of a REGULAR
table space is limited to 0x0100 0000 (16777216) pages while the size of
LARGE and TEMPORARY table spaces are limited to 0x2000 0000 (536870912)
pages.

User response:

Check the administration notification log for details. Reduce the size
of the table space and correct the SQL statement.

 sqlcode: -1139

 sqlstate: 54047

不管pagesize多大,表空间的page限制都是如上所示(db2 v9)

----------------

regular是V8表空间的默认参数,而沿袭到V9,如果迁移的时候不注意,还带有regular参数的话,表空间还是V8的特性,大小上限为64G,128G,256G,512G,对应页大小为4K,8K,16K,32K,V9 的上限为2T,4T,8T,16T。

遇到这样的情况也不必慌,可以尝试更改表空间的属性:db2 "alter tablesapce tablespace_name convert to large".

值得注意的是,属性更改后需要对索引做reorg或者rebuild。原因应该是行指示器的大小变了吧。