Enterprise Manager 10.2.0.5 is not able to connect to the database instance

This error may have a variety of causes, and this is how I fixed it:

1. Dropped old Database Console

$ emca -deconfig dbcontrol db

2. Recreated Database Console

$ emca -config dbcontrol db

In the above step, the operation log ended up with:

SEVERE: Error starting Database Control
CONFIG: Stack Trace:
oracle.sysman.emcp.exception.EMConfigException: Error starting Database Control
at oracle.sysman.emcp.EMDBPostConfig.performConfiguration(EMDBPostConfig.java:649)
at oracle.sysman.emcp.EMDBPostConfig.invoke(EMDBPostConfig.java:227)
at oracle.sysman.emcp.EMDBPostConfig.invoke(EMDBPostConfig.java:196)
at oracle.sysman.emcp.EMConfig.perform(EMConfig.java:184)
at oracle.sysman.emcp.EMConfigAssistant.invokeEMCA(EMConfigAssistant.java:494)
at oracle.sysman.emcp.EMConfigAssistant.performConfiguration(EMConfigAssistant.java:1161)
at oracle.sysman.emcp.EMConfigAssistant.statusMain(EMConfigAssistant.java:478)
at oracle.sysman.emcp.EMConfigAssistant.main(EMConfigAssistant.java:426)

After having repeated steps 1 and 2 a couple of times, checked environment variables were correctly set and checked users SYS, DBSNMP and SYSMAN were not locked, I started looking for this issue in oracle forums and I found the following:

https://forums.oracle.com/forums/thread.jspa?threadID=2173463

The root certificate used to secure communications via the Secure Socket Layer (SSL) protocol expires on 31-Dec-2010 00:00:00O , so If you try to configure Database Console after that date the certificate will cause errors.

Luckyly, Oracle released patch 8350262 which solves this issue.

3. So the obviously following step is to apply patch 8350262 which doesn’t need to put the database offline. Just check the provided README.txt from the patch zip file and you’ll be safe.

4. Repeat steps 1 and 2 again, and your OEM will be up this time 🙂

Activando soporte Oracle Instant Client + PHP5 en Debian Linux

Para conectarse a una base de datos Oracle con PHP 5, se puede hacer a través del “Oracle Instant Client” y el modulo oci8 de pear.

Primero se debe descargar los paquetes “Basic” y “SDK” desde http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html. En mi caso, los archivos fueron

  • instantclient-basic-linux32-10.2.0.3-20061115.zip
  • instantclient-sdk-linux32-10.2.0.3-20061115.zip

Creamos directorios y descomprimimos

# mkdir -p /opt/oracle/instantclient
# cd /opt/oracle/instantclient
# unzip instantclient-basic-linux32-10.2.0.3-20061115.zip
# unzip instantclient-sdk-linux32-10.2.0.3-20061115.zip

Agregamos las librerías de oracle a las librerías del sistema

# echo /opt/oracle/instantclient >> /etc/ld.so.conf
# ldconfig

Creamos los vínculos simbólicos en caso de que el comando anterior no lo haya hecho:

# cd instantclient_10_2
# ln -s libclntsh.so.10.1 libclntsh.so
# ln -s libocci.so.10.1 libocci.so

Instalamos paquetes necesarios para la configuración del módulo oci8, entre ellos Pear

# apt-get install php-pear php5-dev build-essential

En teoría el comando pecl install oci8 debería de funcionar, pero aparentemente no puede trabajar con las librerías de Oracle Instanclient, así que procedemos a ejecutar los pasos manualmente

# mkdir -p /usr/local/src
# cd /usr/local/src
# pecl download oci8
# tar xfz oci8-1.3.5.tgz
# cd oci8-1.3.5
# phpize
# ./configure –with-oci8=shared,instantclient,/opt/oracle/instantclient/instantclient_10_2
# make
# make install

El nombre del archivo oci8-1.3.5.tgz cambiará dependiendo de nuevas versiones

Luego activamos el módulo oci8 en el archivo php.ini (/etc/php5/apache2/php.ini and /etc/php5/cli/php.ini), con la siguiente línea:

extension=oci8.so

Este paso tarde o temprano tendrá que ejecutarse, asi que mejor de una vez configuramos el archivo  tnsnames.ora

#  mkdir -p /opt/oracle/instantclient/instantclient_10_2/network/admin

Editamos el tnsnames.ora de acuerdo a nuestras necesidades.

# vi /opt/oracle/instantclient/instantclient_10_2/network/admin/tnsnames.ora

Ahora se procede a reiniciar Apache y listo :), podemos auxiliarnos de phpinfo() para comprobar que el módulo oci8 está cargado.

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.