Solved

howto check multiple version of Oracle databases

  • 29 January 2024
  • 3 replies
  • 80 views

Userlevel 1
Badge +5

Hello

 

I have multiple oracle databases (9.2 to 21).

I have 2 instanat client on my poller (21 and 11.2)

I try using “--connect-options  oracle_home=/usr/lib/oracle/11.2” or “  --oracle-home /usr/lib/oracle/11.2/client64/”

but it doesn’t work

Without option I have : 

UNKNOWN: Cannot connect: ORA-03113: end-of-file on communication channel (DBD ERROR: OCISessionBegin)

Is someone have an idea ?

 

Best regards

icon

Best answer by christophe.niel-ACT 29 January 2024, 14:22

View original

3 replies

Userlevel 5
Badge +14

Hello

aside from the fact that oracle 9 is not supported since 16years ago, you apparently cannot have 2 running version of instant client without playing around with the oracle_home environment variables (it may be possible, but I have no access to the oracle docs behing a login/password)

 

In any case, it is not a centreon issue here but a Oracle client issue, if you manage to find a way to have 2 different clients on the same linux machine, and if you find the correct environment variables to pass, you can then play around with the following tweak

I highly advise you to test with some basic tnsping or simple query using the instant client binary in command line before running the centreon check commands, if you cannot a simple query, centreon will not be able to do more than you.

 

if you managed to run queries by modifiying the environment variable, first try to run the plugin while setting the variable before running the centreon oracle command, you cannot use the --connect-options to pass the environment variables (this option is to pass additionnal settings to the client that could be positionned in the SID connection string)

ideally you want a 1-liner with the exports at the begining of the command, with “;” separating each command, finishing with the centreon check command

the syntax looks like that :

VAR1=foo; VAR2=bar; echo $VAR1 $VAR2

(this is just a test, you can set the oracle_home in this way and run the check instead of echo)

 

if it work with manually setting the variable, try to have the default variable running with the v21 client (follow the centreon docs) and just having the need of the variable in old instant client

you can then make some “custom” check commands with something that looks like “oracle_home=/usr/lib/oracle/11.2 ; $CENTPLUGIN$/centreon-oracle…..”,

you will need to make your own templates for that command, by duplicating the existing service template and changing the command to your new one.

 

 

the simpler alternative : make a poller only for the old oracle before v12, and keep your existing poller clean with only the supported (v21) oracle client

 

Userlevel 1
Badge +5

Good morning

Thank you for your reply.

I will create a new command for the old databases, export ORACLE_HOME and create my own scripts

 

Best regards

Userlevel 5
Badge +11

Hi @S.lhotellier Were you able to resolve your issue with the suggested solution? If so, please consider marking it as the Best Answer. This would help other users facing the same problem to quickly find the solution. Thank you

Reply