数据库处于【Blocked:LONGTX】状态,表示当前数据库已被回滚的长事务阻塞。
【onstat -】命令查看数据库状态类似以下输出:
On-Line (LONGTX) -- Up 87 days 16:12:47 -- 204133416 Kbytes
Blocked:LONGTX
参考以下步骤处理:
1、【gbasedbt】用户执行以下命令:
onstat -x |grep "A-R"
参考输出:
81066d448 A-R-- 758a08628 407126 1749349:0x21cce340 1752831:0x31cc4394 LC 23:1437:42 0
第5列为事务开始位置,第6列为事务当前位置,需要从当前位置一直回滚到开始位置,最后一列为预估回滚需要的时间(估算值,不一定完全准确)。
多次执行【onstat -x |grep "A-R"】命令,观察当前日志位置是否在变化,如长时间未变化,可能系统日志已不够事务回滚需要,且无法动态增加逻辑日志,需要人工干预。按以下步骤处理:
修改配置参数【DYNAMIC_LOGS】为1后,执行以下命令重启数据库
onclean -ky
oninit -v
重启后数据库处于【Fast Recovery】状态,重复执行以下命令增加多个逻辑日志:
onparams -a -d xxxdbs -s 100000 -i
【xxxdbs】为默认页大小的数据库空间,如无可用空间,可先创建默认页大小空间后增加逻辑日志。