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:
Con lo que, una vez más: prueba superada. Oracle 10.2.03 en Ubuntu.
Saludos.
Carlos

19 Abril 2007 a las 14:53 |
[...] Actualizacion: Actualizando a Oracle 10.2.03 [...]
11 Julio 2007 a las 14:53 |
Gracias! por poner tu experiencia en el upgrade… por un momento me asuste cuando me salio el ORA-01092…. buen aporte muchas gracias.
4 Enero 2008 a las 03:46 |
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 Enero 2008 a las 19:33 |
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.
6 Mayo 2008 a las 13:53 |
[...] SigueLeyendo. . . [...]
26 Septiembre 2008 a las 14:37 |
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!!