Technical Background |
Programming Languages |
OSPRep is written using PL/SQL and Unix Shell. While PL/SQL code is used to
retrieve the information from the Oracle Database, Unix Shell code is used to
construct the (anonymous) PL/SQL block (which is then executed) based on the
users configuration. This way I realized the modular structure of OSPRep, just
including those constructs in the finally executed code that we really need
to execute, thus limiting the overhead e.g. for unnecessary parsing.
|
Collector PlugIns |
OSPRep includes some collector plugins – i.e. modules additional to Oracle
Statspack to gather more statistical data; not to confuse with the elements to
be found in the plugins/ directory of the distribution. The latter
ones are plugins used by the report generator, while the first ones are used to
gather the statistics. Right now, there are three of these collector plugins
available: one for gathering "Wait Objects" statistics, one for collecting
information on data file growth, plus one to work around the Oracle bug 3926058
(wrong count of open cursors) which you will only need if you are affected by
this bug but need accurate stats on open cursors.
|
In order to use these collector plugins, you of course have to install them
first. For this, there are four SQL files available within the install/
directory. Instructions are to be found within the head of these files. After
having them installed, don't forget to include a call to their procedures
together with the statspack.snap() call (the get_waitevents
and get_fileinfo procedures should be run directly after
each snapshot).
|
Requirements |
The requirements can directly be derived from the above paragraph and the
intended goal: First, you need an Oracle Database Server up and running,
otherwise there's nothing we can retrieve the information to report on. Second,
the instance(s) of this Database Server Oracle Statspack (OR the AWR
compatibility layer) is installed into (i.e. the ones holding a
PERFSTAT schema OSPRep shall read information from) need to have
PL/SQL installed, otherwise the code generated by OSPRep cannot be processed
by them. Third, you need the Oracle Statspack to be installed and set up, plus
having statspack.snap() run at least two times to gather some data
OSPRep can report on (again OR have the AWR compatibility layer created).
And last but not least, you need a Unix Shell (OSPRep works fine with the Bash
Shell – other Shells have not been tested but may work as well). This does
imply that OSPRep does run in *nix environments (Linux, Solaris, AIX, etc. –
successfully tested with RedHat Linux, CentOS and IBM AIX – other reports
are welcome). There are Shell environments available for Windows as well, like
with CygWin – but since I didn't test OSPRep in those environments I cannot
guarantee that it will run with them; again, reports are welcome.
|
Limitations |
OSPRep was tested successfully with Oracle versions 9.0.1, 9.2, and 10.2 – which
does not necessarily mean it will not run with other versions. As always,
reports are very welcome especially if you successfully use OSPRep with Oracle
versions < 9.0.1 or > 10.2, so I can correct this limitation here. For
other limitations, please read the previous paragraph (Shell, PL/SQL, OSes).
|