ORA-07445 [kkecdn()+9776] Depués de aplicar Pacth Set 10.2.0.5

Recientemente para solucionar un problema en producción identificado como un bug (solventable con el Path Set 10.2.0.4) , ha sido necesario upgradear la BD Oracle de la versión 10.2.0.1 a 10.2.0.5 (ya puestos nos vamos al último Patch Set).

Después de la instalación del Path Set 10.2.0.5 para Linux 64 bits, que se realizó sin problemas y upgradear los catálogos de las bases de datos, todo parecía ir sobre ruedas.

De momento el parámetro COMPATIBLE se mantuvo con la versión original 10.2.0.1.

Los problemas surgieron aproximadamente un día más tarde cuando un report dejó de funcionar, el alert muestra:

Continue reading

RMAN restaurar datafile read only, Oracle Database

Al realizar una restauración de una copia vía RMAN (Oracle Database), es posible aparezcan avisos como:

datafile #NUM not processed because file is read-only

Esto se debe a que se ha usado el comando:

restore database;

Continue reading

Buscar una cadena de texto en un esquema completo de Oracle

En algunos casos, afortunadamente no demasiados, he tenido que buscar una cadena (normalmente algo relacionado con la configuración) en un esquema de la BD.

El asunto se complica cuando hay una cantidad de tablas ingente y además no hay forma de ponerse en contacto con el desarrollador, vamos un infierno.

Pues bueno para estos casos quiero compartir un script PL/SQL de cosecha propia (como casi todos los que pongo en el blog), que facilita el tema bastante:

Continue reading

Registro automático de servicios en listeners

A partir de la de versión 8i, no es necesario registrar los servicios de BD en el fichero listener.ora, las BD se pueden registrar automáticamente.

Esta funcionalidad funciona perfectamete si tenemos el listener en el puerto 1521 (por defecto), si realizamos un cambio de puerto no hay forma de conectarnos a la BD. Esto ocurre porque el valor de la parámetro LOCAL_LISTENER que por defecto es:

Continue reading

RMAN restaurar backup, desde cinta en otro servidor

Un excelente ejercicio para verificar que los backups se realizan correctemente, es preparar un script que nos haga una restauración a demanda en otro servidor (normalmente preproducción).

Digo una restauración y no un clonado (que es algo realmente impresionante el poder clonar una BD sin pararla hasta el momento actual), porque el clonado necesita que la BD de origen (producción seguramente) tiene que estar abierta y en caso de desastre esto no lo vamos a terner claro.

La restauración que se muestra aquí se realiza sin catálogo RMAN externo (es decir usando el controlfile como catálogo), esto nos obliga tener activa la opción:

Continue reading

RMAN tag, añadir etiquetas personalizadas a backupsets RMAN

En la versión de Oracle 11g se pueden pasar parámetros desde linea de comandos a RMAN, en las versiones anteriores esto no es posible.

Lo que he hecho en estos casos es desde un scripts bash:

Continue reading

Arranque automático oracle linux, Inicio automático Oracle Database para Red Hat

Un pequeño script para arrancar automáticamente una BD Oracle:

Source   
# chkconfig: 2345 80 20
# description: Oracle Database
#!/bin/bash
start() {
su - oracle <<EOF
lsnrctl start
sqlplus / as sysdba<<EOO
startup
EOO
EOF
}
stop() {
su - oracle <<EOF
sqlplus / as sysdba<<EOO
shutdown immediate
EOO
lsnrctl stop
EOF
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo $"Usage: $0 {start|stop}"
esac

Arranca la BD como usuario «oracle», que tiene que tener todas las variables de entorno correctemente configuradas (especialmente ORACLE_SID).

Este script se puede instalar con chkconfig ya que tiene la cabecera preparada para ello.

Oracle update undo, updates masivos que pueden generar problemas con el UNDO

No es la primera vez que me veo en la necesidad de ejecutar un DML que actualiza relamente muchos rows, esto puede ser un problema porque el tablespace UNDO no es infinito (ni debe serlo).

Recientemente he tenido que ejecutar un update:

Continue reading