Tuesday, July 19, 2005

another way to generate systemstate/hanganalyze events

It's a known fact that we can generate systemstate dump by directly attaching to oracle process. Like this:

$ cd $ORACLE_HOME/bin
$ gdb oracle <oracle_pid_to_attach>
(gdb) call ksudss(10) # at this point attached process should do smth, i.e. it shouldn't sleep

Search for 'ksudss' in Metalink for more detailed info.

But if, instead of ksudss() we will call ksdhng() then hanganalyze trace (which is way more readable than systemstate dump and often is enough for analyzing 'hang database' issue) will be generated.

[below the same in Russian]

Известно, что мы можем сгенерить systemstate dump с помощью gdb, приаттачившись к любому oracle процессу. Примерно вот так:

$ cd $ORACLE_HOME/bin
$ gdb oracle <oracle_pid_to_attach>
(gdb) call ksudss(10) # процесс в это время должен что-нибудь делать, т.е. не находиться в ожидании

Поиск по 'ksudss' на Metalink'е дает более подробное описание.

Но если вместо ksudss сделать вызов ksdhng(), то сгенерится hanganalyze trace, который читается легче чем systemstate dump и которого, как правило, достаточно для разрешения проблемы 'почему_моя_база_зависла?'


Post a Comment

<< Home