Thursday, 27 September 2012

DB startup failure due to trigger execution


Issue: 
DB startup failure due to triggers were not executed properly


Preface:
The DB parameter 'MaxUserTasks' was set to 10000 instead of 1000(as a part of upgrade), which implicitly increased the 'MaxParallelLiveCacheTraceFiles' parameter value to 10001.

Solution:
DB could not be made ONLINE as the DB parameter ‘UseSystemTrigger’ was set to NO during MaxDB Upgrade(2.0 with MaxDB 7.7.07.26 to 2.6 with MaxDB 7.9.07.06), after this the parameter is set to YES.
I have changed the parameter value to NO and made it ONLINE.




Again I have changed the parameter to have default value as YES.





As this was only a temporary solution to make DB online, the next database restart failed with a 'restart trigger error', because MaxDB could not allocate enough memory for that many trace files. So I changed the 'UseSystemTrigger' to NO and started the DB. But restart trigger *must* be enabled in 7.9 to ensure that the liveCache works correctly, so this is cannot be a long-term workaround as it cures only one symptom (failing restart) and possibly introduces more issues.

Again I changed the 'MaxUserTasks' to 1000 but unfortunately the implicitly raised parameter value 'MaxParallelLiveCacheTraceFiles' was not automatically recalculated and therefore the issue still persisted.

Then DB developer checked the this parameter and he has set to 1 and new value calculated to 1001

param_directput MaxParallelLiveCacheTraceFiles = 1
param_checkall
param_directget MaxParallelLiveCacheTraceFiles
-> 1001

dbmcli on  Vadb<SID>  : >param_directget MaxParallelLiveCacheTraceFiles
OK
MaxParallelLiveCacheTraceFiles  1001

---

Now the trigger value is set to YES and DB restart happened(so system triggers got executed).

dbmcli on Vadb<SID> : >param_directget usesystemtrigger
OK
usesystemtrigger        YES

---

dbmcli on  Vadb<SID>  : >db_online
OK

---

This analysis has solved the issue.

No comments:

Post a Comment