Actualizando a Oracle 10.2.03 en Ubuntu

La última versión de Oracle 10 es (a la hora de escribir esto) la 10.2.03. Como no tenía nada mejor que hacer en una tarde de sábado, decidí actualizar la instalación que tengo en Ubuntu 6.10. Previamente me había hecho con el parche de Oracle (ya que desde casa bajarlo a la velocidad de ‘modem’ podría provocar que para cuando la descarga hubiera terminado Oracle hubiera sacado una nueva versión). El parche sigue la tendencia de escalada de tamaños a la que Oracle se ha apuntado. Si el parche de 9.2.0.8 eran ‘apenas’ 250 Mb., este ocupa 900 Mb. con lo que hay que disponer de una buena conexión para la descarga.

Una vez bajado el ‘zip’ lo ideal es descomprimirlo en algún directorio de trabajo desde el que realizaremos los pasos de la instalación. Terminada esta tarea comienza lo que es la actualización en sí:

Lo primero que hay que hacer es parar la instancia, el listener y -si está arrancada- la consola (y si hubiera arrancado un ‘isqlplus’, también es necesario pararlo). Estas dos últimas se detienen haciendo simplemente:

oracle@carlos02:~$ emctl stop dbconsole
TZ set to Europe/Madrid
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation.  All rights reserved.
http://carlos02:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 10g Database Control ... 

oracle@carlos02:~$ isqlplusctl stop
iSQL*Plus 10.2.0.1.0
Copyright (c) 2003, 2005, Oracle.  All rights reserved.
...
oracle@carlos02:~$

Una vez aquí, procedemos a correr el ‘installer’:

oracle@carlos02:~/temp/Disk1$ ./runInstaller
Iniciando Oracle Universal Installer...

Comprobando requisitos de Installer...

Comprobando la versión del sistema operativo: debe ser redhat-3, SuSE-9, SuSE-10, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
                                      Fallo

Como en la instalación, Oracle se da cuenta de que el S.O. no es ninguno de los ‘certificados’. Así que hay que hacer lo mismo que hicimos en la instalación: invocar al ‘installer’ con la opción -ignoreSysPrereqs:

oracle@carlos02:~/temp/Disk1$ ./runInstaller -ignoreSysPrereqs
Iniciando Oracle Universal Installer...

Comprobando requisitos de Installer...

Comprobando la versión del sistema operativo: debe ser redhat-3, SuSE-9, SuSE-10, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
                                      Fallo >> Ignorando fallos de requisitos necesarios. Continuando...

Preparando para iniciar Oracle Universal Installer desde /tmp/OraInstall2007-03-03_07-07-25PM. Espere...oracle@carlos02:~/temp/Disk1$ Oracle Universal Installer, Versión 10.2.0.3.0 Producción
Copyright (C) 1999, 2006, Oracle. Todos los Derechos Reservados.

El ‘installer’ se encarga de las instalaciones correspondientes. En unos 10 minutos se instalan todos los componentes necesarios. Tras finalizar este paso, el ‘installer’ nos pide que corramos como ‘root’ el ‘shell script’ ‘root.sh’ que se encarga de las tareas necesarias a nivel de S.O.: permisos, ‘owners’ y tal…

oracle@carlos02:~$ su -
Password:
root@carlos02:~# /opt/oracle/ora10g/root.sh

Pero esto no ha acabado todavía, ya que si intentamos arrancar la instancia en este momento, tenemos que:

SQL*Plus: Release 10.2.0.3.0 - Production on Sat Mar 3 19:22:51 2007

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

SQL> Connected to an idle instance.
SQL> STARTUP
SQL> ORACLE instance started.

Total System Global Area  167772160 bytes
Fixed Size		    1260672 bytes
Variable Size		   83886976 bytes
Database Buffers	   75497472 bytes
Redo Buffers		    7127040 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced

Esto es porque es necesario arrancar la instancia con la opción ‘UPGRADE’ (a diferencia de cuando actualizamos a 9.2.0.8, que se tenía que arrancar con la opción ‘MIGRATE’). Se puede ver claramente si vamos al directorio ‘udump’ y miramos el fichero de trazas:

oracle@carlos02:/opt/oracle/admin/db01/udump$ gedit db01_ora_16937.trc
...
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option

Así que, arrancamos en ‘UPGRADE’ y corremos el ‘script’ ‘catupgrd.sql’.

SQL> STARTUP UPGRADE
...
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql

Como de costumbre: líneas y líneas de SQL, PL/SQL y mucho ‘DBMS_JAVA.LOADJAVA’ (hay gran cantidad de java en esta actualización). Hay que decir que el ‘script’ tarda bastante menos que lo que tardó en 9.2.0.8 (si bien la máquina y el S.O. son radicalmente distintos):

Total Upgrade Time: 00:30:56

A continuación, terminamos el proceso con los últimos pasos (parar, arrancar la instancia y correr el -recomendado- ‘script’ para recompilar los objetos ‘inválidos’:

SQL> SHUTDOWN
SQL> STARTUP

SQL> @?/rdbms/admin/utlrp.sql

ERRORS DURING RECOMPILATION
---------------------------
                          1

SQL> select * from UTL_RECOMP_ERRORS;

OBJ# ERROR_AT                     COMPILE_ERR
---- ---------------------------- -------------------------------------------------------------------------
8806 03-MAR-07 08.22.54.073149 PM ORA-04045: errors during recompilation/revalidation of SYS.AQ$_ALERT_QT_F
                                  ORA-04031: unable to allocate 28 bytes of shared memory ("shared pool",
                                  "select name,password,datats#...","sql area","idndef*[]: qkexrPackName")

Si bien la culpa de este error no es de Oracle: No hay suficiente ‘SHARED POOL’ debido a la configuración de la instancia.

En cualquier caso, tras arrancar el listener, el ‘dbconsole’ tenemos:

Oracle 10.2.03 en ubuntu

Con lo que, una vez más: prueba superada. Oracle 10.2.03 en Ubuntu.

Saludos.

Carlos

6 respuestas a Actualizando a Oracle 10.2.03 en Ubuntu

  1. […] Actualizacion: Actualizando a Oracle 10.2.03 […]

  2. WAM dice:

    Gracias! por poner tu experiencia en el upgrade… por un momento me asuste cuando me salio el ORA-01092…. buen aporte muchas gracias.

  3. Mauricio Leyzaola dice:

    Gracias por compartir esto. Me estoy “revangelizando” y estoy movimiento de Windows/Sql Server a Linux/Oracle que por cierto es bastante mas interesante.
    Gracias de nuevo y saludos.

  4. carlosal dice:

    Otro que por fin ha visto la luz ;-))

    No. En serio: creo que SQLServer también tiene sus cosas buenas (mirad por ejemplo la gestión de ‘backups’, muchísimo más sencilla que la de Oracle; o su ‘enterprise manager’: el SQLServer Studio: intuitivo y sin toda esa parafernalia de la web 2.0 a la que se ha apuntado Oracle)

    Dicho esto, creo que en cuanto a potencia, Oracle está años por delante, pero no todas las bases de datos tienen que ser mayores de 1 terabyte ¿no? El nicho para SQLServer existe.

    Y en cuanto a mí: mis bases de datos actuales son: 10g sobre RHEL 4, 10g sobre Enterprise Linux 5 y 10g sobre Windows 2003 Server…

    Saludos.

    Carlos.

  5. Gaston dice:

    No puedo conseguir otra version que la 10.2.0.1 para linux!! me podrian decir donde puedo encontrarla? gracias!! excelente la guia!! me ahorro millones de dolores de cabeza!!

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: