20110219

Parcheando Oracle 10g en 2011. Oracle 10g patching in 2011

A finales de 2010 y principios de 2011 he tenido que repasar y practicar con la instalación, parcheo y tareas varias de administración de Oracle 10g por motivos que ahora no vienen al caso.
Lo que suelo hacer es instalar el software de Oracle 10g R2 (10.2.0.1.0) sin crear la BDD, y su Enterprise Manager para facilitar la administración, y luego parchear con el Oracle Database 10g Patch Set 3 (p6810189) que sube la revisión hasta la 10.2.0.4.
La cosa es que en los primeros días de este período, la instalación y parcheo funcionó a la perfección. Comenzó la Navidad y, digamos que me relajé un poco, aparté los ordeñadores para acercar los turrones y mazapanes (que todavía me están pasando factura). Pasados estos días hice de tripas corazón, y volví a centrarme en el 'oráculo'.
Para refrescar el proceso de instalación/parcheo y depurar posibles fallos, decidí realizarlo una vez más y cuál fue mi sorpresa cuando en la fase de parcheo me encontré con un casque inesperado que no reproduciré aquí. Lo primero que se me vino a la cabeza fue el empacho de dulces y de vino de aguja, así que volví a realizar el procedo de nuevo, y......toma leche!! Otra vez el casque, cagonlalecheputa!!!.
Me puse entonces a escudriñar la web en busca de una respuesta al error que me aparecía en pantalla, y nada, nada de nada. Me tocó entonces abstraerme del mensaje de error que obtenía en la ejecución del parcheo e ir un poco más allá y rebuscar por los logs. Ahí encontré una serie de mensajes de error relacionados con un certificado ?¿?!.
Si no me equivoco, que puede que sí, resulta que Oracle 10g R2 no securiza el acceso web al Enterprise Manager hasta que no se parchea, y claro, para eso hace falta un certificado y parecía que por ahí iba el fallo.
Al final di con algún geek que tenía documentado este problema (en 2009!!) y ¿cuál es este?
Pues según dicen los enlaces que abajo indico parece que 'el certificado raíz usado para securizar las comunicaciones vía SSL, expiraba el 31 de diciembre de 2010' el muy jodío. 'La expiración del certificado causará errores si intentas configurar el Database Control más allá de esta fecha.'
Para resolver el problema los enlaces proponen una solución, pero tratándose de fechas, yo simplemente he realizado la instalación con la fecha del sistema falseada.
Espero que esto ayude a que no utilicéis vuestra cabeza a modo de martillo al encontraros con este problemilla.
Oracle 10g R2 (10.2.0.1.0) y Patch Set 3 (p6810189, 10.2.0.4).

During December 2010 and January 2011 I had to practice with the Oracle Database 10g R2 and the Enterprise Manager installation, patch and administration.
In the early days of this period I had no problem with taht and everything was ok. Then I had my Xmas holiday period and I decided to take a break. After those relaxing days I resumed my practice with a problem wich made feel frustated.
The installation worked perfectly but not the patching proccess. The runInstaller command returned an error securing the Enterprise Manager comunications, but I had no success looking for a solution, so I had to dig into the patch installation log finding something about a certificate.
As you can read in the links bellow, the issue is that 'the root certificate used to secure comunications via the Secure Socket Layer (SSL) protocol will expire on 21-Dec-2010 00:00:00. The certificate expiration will cause errors if you attempt to configure Database Control on or after 31-Dec-2010.'
To solve this problem you can follow the solution in the links bellow, or simply take a workaround tweaking the system on a date before the end of 2010 to make the installation.
Oracle 10g R2 (10.2.0.1.0) and Patch Set 3 (p6810189, 10.2.0.4).

PS: If your English is better than mine and you find some mistakes, please tell me about them.

Sources:
http://forums.oracle.com/forums/thread.jspa?threadID=2151946
http://oracle.mobi/www.oracle.com/2.0/quickPage.html?page=23199&content=46413205&pageNum=-1

6 comentarios:

Anónimo dijo...

Hola, me parece muy interesante tu experiencia con el problema OEM y sobre todo la solucion que le diste muy bien hecho!!.. me pregunto si aun te sigue funcionando? o cambiaste la version de Oracle... te comento que yo ando buscando la forma de solucionar el mismo problema la diferencia es que yo ya tengo ya instalado Oracle 10g R2 (10.2.0.4)en una VM y le aplique el dichoso parche 8350262 que en teoria deberia hacer que funcione sin problemas, sin embargo tengo mas problemas .... error como este: viste alguna vez este tipo de error?

2013-02-08 14:28:52 Thread-5368 ERROR pingManager: nmepm_pingReposURL: Cannot connect to https://myhost:5500/em/upload/: retStatus=-1
2013-02-08 14:28:53 Thread-5368 WARN http: snmehl_connect: connect failed to (myhost:5500): No connection could be made because the target machine actively refused it.
(error = 10061)
2013-02-08 14:28:53 Thread-5368 ERROR pingManager: nmepm_pingReposURL: Cannot connect to https://myhost:5500/em/upload/: retStatus=-1
2013-02-08 14:28:59 Thread-5236 ERROR upload: Error in uploadXMLFiles. Trying again in 300.00 seconds.
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000077b00895, pid=5804, tid=5808
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5.0_11-b03 mixed mode)
# Problematic frame:
# C [ntdll.dll+0x50895]
#
# An error report file with more information is saved as hs_err_pid5804.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp

Unknown dijo...

Hola Anónimo. Primero de todo, agradezco tus palabras sobre el post.
Para entrar en materia te diré que no me he enfrentado con ese error antes y en mi caso sigue funcionando este procedimiento sin problemas.
Por otro lado, se me ocurren varias preguntas para intentar echarte una mano:
- Qué SO utilizas?
- Qué comando ejecutas antes de obtener ese error?
- Desde dónde no se puede acceder a myhost:5500? Has probado una prueba de conectividad por ejemplo haciendo telnet a esa máquina y puerto?
- Has comprobado que no existe un firewall entre una máquina y otra?
- Cuál es la configuración de tu fichero sqlnet.ora?

Anónimo dijo...

Hola :),
oh!! muchas gracias por brindarme tu ayuda bueno respondiendo las preguntas que me haces:
- Qué SO utilizas? Win2008 R2 Standard, VM, Proc=2.6Ghz; mem=16GB; Disk=25GB.
- Qué comando ejecutas antes de obtener ese error?
intento levantar la consola con emctl start dbconsole (Previamente ya recree (emca -config dbcontrol db -repos recreate) pero no funciono me daba error de puertos decia que los puertos estaban en uso al tratar de levantar, asi que borre toda la configuracion y volvi a configurar con: emca -deconfig db control -drop y emca -config dbconsole db -create repos)
- Desde dónde no se puede acceder a myhost:5500? todo lo estoy haciendo con usuario administrador desde el mismo server.

Has probado una prueba de conectividad por ejemplo haciendo telnet a esa máquina y puerto?
Si, telnet me da el siguiente error:
Connecting To 10.10.1.1...Could not open connection to the host, on port 3938: Connect failed

Este error para los puertos 5500,3938,5560 que son los que usa por defecto el OEM, haciendo ping Funciona bien, tanto al ip como al nombre, interesante es que mi server usa DNS, telnet al 1521 funciona, la baseDatos corre sin problema, el lisener me sale:
LSNRCTL for 64-bit Windows: Version 10.2.0.4.0 - Production on 12-FEB-2013 10:05:00
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER

Anónimo dijo...

------------------------
Alias LISTENER
Version TNSLSNR for 64-bit Windows: Version 10.2.0.4.0 - Produ
ction
Start Date 11-FEB-2013 13:32:26
Uptime 0 days 20 hr. 32 min. 34 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File E:\oracle\product\10.2.0\db_1\network\admin\listener.ora
Listener Log File E:\oracle\product\10.2.0\db_1\network\log\listener.log

Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myhost)(PORT=1521)))

Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl_XPT" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

- Has comprobado que no existe un firewall entre una máquina y otra?
si, verifique firewall, estan desactivado, pero si todo lo hago en el mismo server esto no deberia afectar o si?
- Cuál es la configuración de tu fichero sqlnet.ora?
buena pregunta, espero que sea a esto que te refieres:

# sqlnet.ora Network Configuration File: E:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

Anónimo dijo...

ufff!!! imaginaba que era un tema de la version de JAVA, asi que le instale java en el server (VM):
java version "1.6.0_27"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)

pero sigue el mismo error :(

Pense incluso que el tema se ouede deber a pocos recursos del server... podria pedir que aumente memoria ? procesador? espacio?? eso me quedo en duda.. otra cosa que pense que era un tema de variaables de entorno porque alusar DNS puede rayarse con los nombres de IP asi que verifique que los parametros Oracle_hostname este con el nombre del server y no con el ip...

Estoy a punto de tirar la tohalla con este problema.. tu que opinas?

gracias por brindarme tu ayuda.
Jo.

Unknown dijo...

Hey! Aquí no se tira la toalla!!
Disculpa pero es que no todos los días puedo echarle un ojo a esto. Hace tiempo que no publico y mira que ya me toca, pero a ver si le dedico tiempo.
Al lío. Entiendo que tienes un servidor (host) sobre el que tienes instalada una máquina virtual(vm) con W2K8 Server Standard con Oracle. Es así¿
El comando ping nos permite saber si entre dos equipos hay comunicación ICMP. Si esta es correcta (e incluso aunque no lo fuera) y pudiendo como dices hacer telnet al puerto 1521 (el de defecto del listener) deberías también poder hacer telnet al puerto de OEM. Si no es así, puede que sea por antivirus o firewall (algo que descarto por lo que escribes) o porque no se levanta bien el servicio.
Con el comando netstat -na | find "LIST" sacas un listado de los puertos a la escucha en tu Windows (si fuese GNU/Linux, netstat -npl --inet) y ahí puedes ver los puertos levantados, la interfaz a la escucha, etc. Mira a ver aquí y me cuentas.
Por otro lado, y después de echar un ojo por Internet, prueba a cambiar NTS por NONE en sqlnet.ora y a ver si funciona. Te pongo aquí la URL:
https://forums.oracle.com/forums/thread.jspa?threadID=428055

Ya me cuentas.