Node.js Program, connect to Oracle RDBMS, do performance Analyzing Job...
Database Performance Analyzer(Aka: DPA), show Oracle RDBMS's performance issue. In DPA-Terminal, we use Terminal program(ncurses like app) display Current performance view, and we also recall the past performance issue.
If you click above Picture and watch the screen cast, you'll find in the terminal application, you can:
- Show Database (support RAC) Overview info(such as: patch,version,uptime,dataguard switchover status, scn ...)
- Display all active sessions in a tree like widget which support mouse click, "Enter" selection... the tree like widget can show "who block who" diagram
- Show current system-wide "Wait Event" distribution
- Show selected session's SQL Execution statistics
- Show selected session's SQL Execution Plan and full Text
- ...
- Using "Radar" button, check whole day Database Load high water mark.
- Recall History Performance Issure...
- Session Blocking Tree Diagram and
- Wait Events distribution
- SQL statistics(SQL Exec Wait Events Top 3)
DPA-Terminal is an Terminal application written in Node.js. To run this application, you need:
- Node.js Env.
- Install Oracle Client Software
- blessed-contrib
If you cannot do yourself installation of Oracle Instant Client SDK, Node.js , you should use GUI application, not Terminal ascii application like this.
(Node.js)
(oracledb)
We provide a bash script named start.sh
#! /bin/bash
echo ''
echo ''
echo '**************************************************************************************'
echo '* Database Performance Analyzer For Oracle Terminal Version 0.10 *'
echo '* *'
echo '* ================================================================================== *'
echo '* 1) Show Currently Active Session *'
echo '* 2) Active Session History Analyzer *'
echo '* 3) To Be Continued... *'
echo '* *'
echo '* *'
echo '* *'
echo '* *'
echo '* *'
echo '* *'
echo '* *'
echo '* *'
echo '* *'
echo '**************************************************************************************'
read -n1 -p 'Please Input Your Choice:' choice
case $choice in
1)
echo ''
read -p 'Input Oracle DB Host(IP or DNS Name):' host
read -p 'Input Oracle DB Connect Port:' port
read -p 'Input Oracle DB Connect Service:' servicename
read -p 'Input Oracle User Name:' username
read -s -p 'Input Oracle User Password:' password
node gridsess.js --host $host --port $port --service $servicename --username $username --passwd $password
;;
2)
echo ''
read -p 'Input Oracle DB Host(IP or DNS Name):' host
read -p 'Input Oracle DB Connect Port:' port
read -p 'Input Oracle DB Connect Service:' servicename
read -p 'Input Oracle User Name:' username
read -s -p 'Input Oracle User Password:' password
node ash.js --host $host --port $port --service $servicename --username $username --passwd $password
;;
*)
echo ''
echo 'error choice'
;;
esac
You can create a Linux/Unix user, Changed the user's .bash_profile, Add next line to the .bash_profile
exec start.sh
By doing this, you can jail user inside these two node.js applications: View Current Oracle RDBMS Performance or Recall History Oracle RDBMS Performance events.
- The Application should run in 200*66 Terminal Window -- Only Test in MacOS Terminal.app & iTerm2
- Support Mouse
- Ctrl-C q should Exit
- Input widget action like "vi" -- when you complete your input, press "ESC" marks the input completion
- If you want to select something (eg: session), you should move the cursor then press "Enter"
- In gridsess.js, if you want view SQL Exec Plan, Press "P"
- In ash.js, you should input a Date time string in specific format
- After Date time String input, Mouse Click "Radar" button, application should display you a line chart means the whole day's RDBMS performance load usage
- After Date time String input, Mouse click "Submit" button, application should recall RDBMS in time range [input_datestr, input_datestr+10mins]
- "n" or "Ctrl-f" looks forward the recall, "p" or "Ctrl-b" looks backward the recall.