-   Linux - Newbie (
-   -   Check an Oracle database (

brownie_cookie 05-04-2011 02:42 AM

Check an Oracle database
Hi all

I need to check with nagios an oracle database that is located on a server.
There are a lot of plugins that are provided, but can someone pls help me with this? the problem is that the database is located on a remote server (i have an hostaddress) and then i need to log on the database (i have username and pass)

So i only need to have a plugin that connects to that hostaddress and logs on, but i can't find any plugin which does that..?!
Can someone help me, i'm not familiar with this (database and etc.)


EricTRA 05-04-2011 02:59 AM

Hello Björn,

I've set this up almost a year ago so might be missing some points in my explanation. As I recall it, you'll need to install the Oracle client for the version of your Oracle database server. That will provide you with the sqlplus client. Next you'll need to setup your TNS name file correctly pointing to your server/database. From then on you should be able to connect using sqlplus from the command line. If that works then you can use the plugins from NagiosExchange I believe you've already encountered :). That's the raw procedure, there's lots of information about this on the internet so happy surfing :)

Have a look at this one for example.

Kind regards,


brownie_cookie 05-04-2011 03:43 AM

So that Oracle client and sqlplus, i need to install it on my monitoring host? the database is version 10g
If not, i can't install anything on the server where the database is located on?!

But i'll sure take a look ;)

Thanks again my good friend ^^

P.S.: i'll keep this thread updated, but i don't have much time, it's kinda busy, so i'll do my best ;)

EricTRA 05-04-2011 03:47 AM


Correct! You install the client on your monitoring host (nagios server) and don't need to install anything (if only monitoring Oracle databases) on the Oracle server. You're welcome buddy. Good luck and happy surfing!!

Kind regards,


brownie_cookie 05-04-2011 04:06 AM

okay, first encouter...

I'm following the website you've provided link

I've downloaded and unzipped the zip files, so i've got that one folder and i did also the three following commands

sudo cp instantclient_10_2/sdk/include/*.h /usr/include
sudo cp instantclient_10_2/sqlplus        /usr/bin
sudo cp instantclient_10_2/*.so*          /usr/lib

everything is fine until now...
i want to do the following command

sudo cp tnsnames.ora /etc
but i don't have a tnsnames.ora ...
i also don't have sqlplus installed for the following command

/usr/bin/sqlplus scott/tiger@myoracle
can you help me out?

EricTRA 05-04-2011 04:11 AM


What's the output of

which sqlplus
You stated you copied the extracted files following the guide. Did you check permissions on those files? There is a sqlplus in the output you posted for the copy command, so most likely the permissions are off.

The tnsnames.ora you can copy from the Oracle server (if you have access), that's the easiest way and the best way to avoid typing errors. Also, executing the sqlplus command of course needs your credentials.

Kind regards,


brownie_cookie 05-04-2011 04:16 AM


# which sqlplus
/usr/bin/which: no sqlplus in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

how can i check that i have access to the oracle server?
I have a login and pass for it (dev user) but i can't connect to it through e.g. PuTTy

EricTRA 05-04-2011 04:22 AM


Check if the file sqlplus exists in /usr/bin and check the permissions. If it doesn't then you did something wrong or forgot something.

You can check connectivity to the Oracle database with the tnsping command if I recall correctly, it should be part of the Oracle client package. Of course you'll need the tnsnames.ora file in order to try if I'm not mistaking.

Kind regards,


brownie_cookie 05-04-2011 04:25 AM


# ll | grep sqlplus
-rw-r--r-- 1 root  root      7741 May  4 10:02 sqlplus


# chmod 755 sqlplus
# which sqlplus

so this is working ;) thx

but i don't know how to get that ORA file :(

EricTRA 05-04-2011 04:43 AM


Glad you got that part solved, I was almost sure it were the permissions not set correctly. If you don't have access to the Oracle server to get the tnsnames.ora file, ask the database admin to provide it. The syntax in that file is like such:


which points to the server : port and database instance if I recall correctly.

Kind regards,


brownie_cookie 05-04-2011 04:48 AM

okay, but that can take a while

but while i'm waiting, let's review what i should do next.
when i copied that file to /etc
i can test it like so

/usr/bin/sqlplus scott/tiger@myoracle
but i don't think scott/tiger@myoracle will work, can you tell me what those parts mean?

as i follow the site, i think when i can succesfully test that command, i can use the plugin check_oracle which is provided with the set of plugins from nagios?

EricTRA 05-04-2011 04:53 AM


The sqlplus command uses the tnsnames.ora file to connect to the database instance in your example using the user scott with password tiger and connecting to database instance myoracle. I never tried connecting directly without tnsnames.ora but found this thread on the internet talking about the same thing. Maybe you can find out how there.

Kind regards,


brownie_cookie 05-04-2011 05:00 AM

okay, i'm trying and failing :p lol


# sqlplus user/pass@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=1521)))(CONNECT_DATA=(SID=sid)))'
-bash: /usr/bin/sqlplus: cannot execute binary file

what does that mean?

EricTRA 05-04-2011 05:08 AM


What version of the Oracle client did you download (32 or 64bit) and what version of OS are you running (32 or 64 bit)?

Kind regards,


brownie_cookie 05-04-2011 05:10 AM

hmmm now you say :p i think i've downloaded the wrong zip files... :doh:

link which are for 64 bit i think
and i have a 32 bit...

All times are GMT -5. The time now is 05:44 AM.