Technical Blog Post
Abstract
Why a tablespace rebalance is not initiating ?
Body
Altered a tablespace to add space and then trying to rebalance the tablespace with command like,
db2 alter tablespace <tablespace> rebalance
But, the "db2 list utilities show detail" or, "db2pd -utilities" does not show any rebalance is running.
The tablespace shows the status to be,
Tablespace State = 0x'10000000'
Detailed explanation:
DMS rebalancer is active
Following two command run successfully,
ALTER TABLESPACE tablespace_name REBALANCE SUSPEND;
ALTER TABLESPACE tablespace_name REBALANCE RESUME;
But, still rebalance is not restarted.
Restart of the database which is supposed to restart any suspended rebalance should restart the same.
That is also not working either.
Following query shows the tablespace is in FWD_REBAL ACTIVE,
db2 "select varchar(tbsp_name, 30) as tbsp_name,
dbpartitionnum,member,rebalancer_mode,rebalancer_status,
rebalancer_extents_remaining,rebalancer_extents_processed,
rebalancer_start_time from table(mon_get_rebalance_status(NULL,-2))
as t"
There is absolutely no messages logged in db2diag.log
So, is this a DB2 bug ? Or, what is the reason ?
The reason being, there is an internal DB2 registry which was unknowingly set by somebody.
It's call REBALANCER
In a "db2set -all" output following could be seen,
[i] REBALANCER=OFF
Internal DB2 registries are there to be used by DB2 support analysts to help in some critical situations. And, should not be used casually.
This being internal registry it does not even log much diagnostics in the db2diag.log as this is supposed to be used consciously by support analysts.
To fix the issue following needs to be done,
db2set REBALANCER=
db2stop / db2start
That will restart the rebalancers and complete the tablespace rebalance.
UID
ibm13286779