DBD+DBI with Basic InstantClient

Posted on Posted in linux, monitoring, Oracle DB

En esta entrada voy a explicar como instalar los módulos para conectarse a una BD Oracle teniendo un Instanclient como base, estos módulos podrán servirnos para realizar chequeos de Nagios a una BD 10g o 11g (check_oracle_health), en un post anterior explique como configurar el isntanclient con tnsping. Ahora vamos a suponer que es una instalación nueva.

Instalamos el InstanClient

Descargamos los tres rpm’s que nos van a hacer falta, podemos hacerlo desde aquí:

oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm –> Cliente básico

oracle-instantclient-sqlplus-10.2.0.4-1.x86_64.rpm –> Utilidad Sqlplus

oracle-instantclient-devel-10.2.0.4-1.x86_64.rpm –> Librearías necesarias para compilar el modulo DBD::Oracle

Los instalamos:

 
cd downloads
rpm -ivh *.rpm
Preparando...               ########################################### [100%]
   1:oracle-instantclient-ba########################################### [ 33%]
   2:oracle-instantclient-de########################################### [ 67%]
   3:oracle-instantclient-sq########################################### [100%]
Variables de Entorno

Editamos el /etc/profile y al final del fichero añadimos el TNS_ADMIN y LD_LIBRARY_PATH

export TNS_ADMIN=/usr/lib/oracle/10.2.0.4/client64/network/admin
export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.4/client64/lib
SQLPLUS64 –> SQLPLUS

Creamos el enlace simbólico correspondiente:

cd /usr/bin
ln -s sqlplus64 sqlplus
Configuración TnsPing
CREAMOS LAS RUTAS
mkdir -p /usr/lib/oracle/10.2.0.4/client64/network/admin
mkdir /usr/lib/oracle/10.2.0.4/client64/network/mesg

Tomamos “prestado” el tnsping y el tnsus.msb de otra instalación, por ejemplo del ORACLE_HOME de nuestro servidor de BD, SIEMPRE que tenga la misma arquitectura. Así como el tnsnames.ora de otro servidor o creamos uno nuevo.

tnsus.msb –> “$ORACLE_HOME/network/mesg/tnsus.msb”

tnsping –> “$ORACLE_HOME/bin/tnsping”

El tnsnames.ora lo depositamos en /usr/lib/oracle/10.2.0.4/client64/network/admin/, el tnsping en “/usr/lib/oracle/10.2.0.4/client64/bin/” pudiendo copiarlo a “/usr/bin” para que este disponible para cualquier programa o usuario y el tnsus.msb “/usr/lib/oracle/10.2.0.4/client64/network/mesg”

Descarga e Instalación DBI&DBD:

Los descargamos desde estos enlaces DBI y DBD

Instalmos el DBI
 tar -xvzf DBI-1.604.tar.gz
cd DBI-1.604
perl Makefile.PL
make
make install
instalamos el DBD

Primero exportamos las variables de entorno necesarias, al tratarse de una instalación sobre instanclient el ORACLE_HOME es:

export ORACLE_HOME=/usr/lib/oracle/10.2.0.4/client64/lib/
export LD_LIBRARY_PATH=$ORACLE_HOME
 tar -xvzf DBD-Oracle-1.32.tar.gz
cd DBD-Oracle-1.32
perl Makefile.PL
make
make install

Y a funcionar !!!:

 ./check_oracle_health --username nagiosmonitor --password superpass --mode connection-time --connect SNAIDERDB
OK - 0.11 seconds to connect as NAGIOSMONITOR | connection_time=0.1085;1;5

Realizaré una nueva publicación para explicar la instalación y configuración de los dos modulos para Nagios check_mysql_healthcheck_oracle_health así como poder adaptarlos para chequear lo que nosotros queramos, como por ejemplo el tráfico de una instancia de Mysql.

One thought on “DBD+DBI with Basic InstantClient

  1. every time i want to learn something good, i access your website, because of the great structure and coherent ideas please keep providing such good information.

Leave a Reply

Your email address will not be published. Required fields are marked *