jueves, enero 24, 2013
Error Oracle ORA-00257
ORA-00257: error del proceso de archivado. Sólo conexión interna hasta liberación.
Causa: No se han podido generar nuevos archivados. Probablemente se ha llenado el filesystem.
Efecto: No se pueden insertar ni modificar registros. Oracle no deja conectarse remotamente. Desde el propio servidor sí podemos conectarnos.
Solución: Hacer sitio en el filesystem. Lanzar el script de llamada a Rman que salva los archives y después los elimina. Si no se sabe dónde están buscarlos en el crontab del usuario oracle.
Causa: No se han podido generar nuevos archivados. Probablemente se ha llenado el filesystem.
Efecto: No se pueden insertar ni modificar registros. Oracle no deja conectarse remotamente. Desde el propio servidor sí podemos conectarnos.
Solución: Hacer sitio en el filesystem. Lanzar el script de llamada a Rman que salva los archives y después los elimina. Si no se sabe dónde están buscarlos en el crontab del usuario oracle.
Etiquetas:
documentacion,
oracle
martes, enero 22, 2013
Ulises, condición para aprender
Capitulo II (Néstor).
Página 115 en Editorial Lumen, primera edición.
Para aprender hay que ser humilde, pero la vida es la gran maestra.
Más recursos para sumergirse en la obra de Joyce:
Recorre los lugares descritos en el libro:
http://ulysses.bc.edu/
Página 115 en Editorial Lumen, primera edición.
Para aprender hay que ser humilde, pero la vida es la gran maestra.
Más recursos para sumergirse en la obra de Joyce:
Recorre los lugares descritos en el libro:
http://ulysses.bc.edu/
domingo, enero 20, 2013
Leyendo Ulises en la era Internet
La semana pasada compré un comic excepcional sobre la vida de James Joyce. Es DUBLINES de Alfonso Zapico (editorial Astiberri), que recibió el Premio Nacional de Comic 2012. 100% recomendable.
Me lo leí en un par de sesiones y me entraron unas ganas tremendas de leer la obra cumbre de Joyce, considerada por muchos una de las obras fundamentales del siglo XX. Sabía que es un libro muy especial que no tiene nada que ver con lo publicado hasta entonces.
Las dificultades para seguir el pensamiento de Joyce es enorme. Sólo llevo 5 páginas leídas y he encontrado un montón de palabras metafóricas, una frase de misa en latín, una palabra en gaélico, los nombres de los personajes con significados claros, dáctilos, un arzobispo griego que no aparece ni en la wikipedia (en la inglesa sí está), una expresión de una obra griega (en perfecto griego), una descripción del mar de Homero (en griego también), el nombre de pila de una escritora en su diminutivo familiar, una frase de su obra cambiando un termino (que cambia el significado oculto por supuesto), unas iniciales de una enfermedad, el nombre de un manicomio que debía existir en la época, el nombre de un pub, una sibilina referencia a un movimiento literario irlandes, etc. etc. Y eso que las dificultades de verdad deben aparecer a partir del tercer capítulo.
Se dice que Joyce bromeaba conque los lectores dedicaran toda su vida a leer sus obras, y que los críticos tuvieran que invertir 300 años en descubrir sus secretos. Con lo que no contaba es con una cosa llamada Internet que va a permitir que un informático puede leer el libro en un tiempo razonable.
Algunos recursos útiles que he encontrado:
Me lo leí en un par de sesiones y me entraron unas ganas tremendas de leer la obra cumbre de Joyce, considerada por muchos una de las obras fundamentales del siglo XX. Sabía que es un libro muy especial que no tiene nada que ver con lo publicado hasta entonces.
Las dificultades para seguir el pensamiento de Joyce es enorme. Sólo llevo 5 páginas leídas y he encontrado un montón de palabras metafóricas, una frase de misa en latín, una palabra en gaélico, los nombres de los personajes con significados claros, dáctilos, un arzobispo griego que no aparece ni en la wikipedia (en la inglesa sí está), una expresión de una obra griega (en perfecto griego), una descripción del mar de Homero (en griego también), el nombre de pila de una escritora en su diminutivo familiar, una frase de su obra cambiando un termino (que cambia el significado oculto por supuesto), unas iniciales de una enfermedad, el nombre de un manicomio que debía existir en la época, el nombre de un pub, una sibilina referencia a un movimiento literario irlandes, etc. etc. Y eso que las dificultades de verdad deben aparecer a partir del tercer capítulo.
Se dice que Joyce bromeaba conque los lectores dedicaran toda su vida a leer sus obras, y que los críticos tuvieran que invertir 300 años en descubrir sus secretos. Con lo que no contaba es con una cosa llamada Internet que va a permitir que un informático puede leer el libro en un tiempo razonable.
Algunos recursos útiles que he encontrado:
- La obra en 5 columnas: La primera en francés, la segunda el original en inglés, y las otras tres son los 3 libros que se han publicado en castellano. Esto es super útil ya que si no entendemos algo podemos mirar en el original o en alguna de las otras traducciones. También ocurre que en otras versiones puede haber una nota al margen.
- Libro "El Ulises de James Joyce: Una lectura posible" de Marta Merajver-Kurlat que está casi completamente disponible en books.google.es
- Por qué leer el Ulises de Joyce.
- Documento de doctorado sobre "El discurso ideológico en Ulises de James Joyce: Narrativas de dominio y opresión".
domingo, enero 06, 2013
sábado, enero 05, 2013
Corrupción II: cobra dietas que no te correspondan
Cobrar dietas por residencia fuera de la comunidad, mientras vives en el Palacio de La Moncloa (Madrid), es una forma curiosa de sacrificio y apretarse el cinturón.
Fuente: Diario de Noticias de Álava el 5 de enero.
Etiquetas:
denuncia social,
noticias
viernes, diciembre 14, 2012
Oracle, error ORA-00942 en el acceso a tablas del diccionario
Hace más de 2 años, explicaba cómo habilitar las trazas de acceso en Oracle, y más tarde, cómo analizar cómodamente esas trazas.
El análisis de las trazas requería el acceso a una tabla del diccionario que se encuentra en el esquema SYS: tabla AUD$.
Lo lógico es que con el tiempo vayamos mejorando nuestro sistema e incorporemos trazas de otros sistemas diferentes. Así pues terminaremos creando un nuevo usuario Oracle que accederá a sus propios objetos, además de a la citada tabla SYS.AUD$.
Si hacemos algo así como SELECT * FROM SYS.AUD$ nos dará el siguiente error: "ORA-00942: table or view does not exist".
El problema se soluciona asignándole al nuevo usuario el privilegio del sistema:
GRANT SELECT ANY DICTIONARY TO "USUARIO"
Saludos.
El análisis de las trazas requería el acceso a una tabla del diccionario que se encuentra en el esquema SYS: tabla AUD$.
Lo lógico es que con el tiempo vayamos mejorando nuestro sistema e incorporemos trazas de otros sistemas diferentes. Así pues terminaremos creando un nuevo usuario Oracle que accederá a sus propios objetos, además de a la citada tabla SYS.AUD$.
Si hacemos algo así como SELECT * FROM SYS.AUD$ nos dará el siguiente error: "ORA-00942: table or view does not exist".
El problema se soluciona asignándole al nuevo usuario el privilegio del sistema:
GRANT SELECT ANY DICTIONARY TO "USUARIO"
Saludos.
Etiquetas:
oracle
miércoles, diciembre 05, 2012
Oracle, el fichero spfile
Desde Oracle9 este es el fichero de inicialización de parámetros que se debe que utilizar. spfile es un fichero binario que no puedes editar, a diferencia del pfile que es de texto. Aquí tienes unas buenas razones para utilizar el spfile.
Para saber si la base de datos utiliza spfile o pfile:
SQL> SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') "Init File Type"
FROM sys.v_$parameter WHERE name = 'spfile';
Para saber dónde está el fichero spfile:
SQL> show parameter spfile;
Arrancar la base de datos con otro pfile:
SQL> STARTUP PFILE='/oradata/fichero'
Saludos.
Etiquetas:
documentacion,
oracle
lunes, diciembre 03, 2012
UNIX, destrucción de metadata en un LV (Logical Volume)
A veces tienes que eliminar datos de un filesystem y quieres hacer algo más que el típico rm -R.
Esto dificultará un poco más una hipotética recuperación de datos:
Necesitamos un fichero algo grande como puede ser el kernel de UNIX:
ll /stand/vmunix
Escribimos los bloques del fichero elegido sobre el RLV (Raw Device del Logical Volume).
Si en el vgdatos tenemos un lvdatos por ejemplo:
dd if=/stand/vmunix of=/dev/vgdatos/rlvdatos bs=1024
Nota: En el comando dd indico el raw device rlvdatos y no el block device lvdatos.
Saludos.
Etiquetas:
documentacion,
hp-ux,
unix
viernes, noviembre 30, 2012
Reiniciar servicio Dataprotector
Cuando lanzas un backup con el software de HP Dataprotector y te ves obligado a cancelarlo, un error frecuente es matar la sesión desde el propio GUI. Digo esto porque los devices siguen con la recuperación y si necesitas repetir el restore puedes tener problemas.
Consejo:
Reiniciar el servicio Dataprotector.
#/opt/omni/sbin/omnisv -stop
#/opt/omni/sbin/omnisv -start
Para ver los servicios arrancados:
# /opt/omni/sbin/omnisv -status
ProcName Status [PID]
===============================
rds : Active [4975]
crs : Active [4979]
mmd : Active [4977]
kms : Active [4978]
omnitrig: Active
uiproxy : Active [4981]
Sending of traps disabled.
===============================
Status: All Data Protector relevant processes/services up and running.
Aquí el enlace a un útil documento PDF de resolución de problemas con Dataprotector.
Saludos.
Etiquetas:
dataprotector
jueves, noviembre 29, 2012
Oracle: cambio de juego de caracteres
Hay un tipo de cambios de juego de caracteres muy sencillo: Ocurre cuando tenemos un juego de caracteres limitado y queremos cambiar a un superconjunto (superset) mayor. Si no es así, no emplear este método. Toca documentarse mejor.
Por ejemplo es habitual cambiar el clásico WE8ISO8859P1 que no soporta el símbolo del euro (€) por el juego de caracteres WE8MSWIN1252 que incorpora todos los caracteres del anterior más otros muchos más (entre ellos el del euro).
En este caso el cambio es muy sencillo.
$sqlplus "/as sysdba"
Primero comprobamos que estamos en el host y la instancia adecuada (host_name e instance_name):
SELECT * FROM V$INSTANCE;
Luego conviene que nos aseguremos del juego de caracteres actual. Nos fijamos en el parámetro NLS_CHARACTERSET:
SELECT * FROM V$NLS_PARAMETERS;
SHUTDOWN IMMEDIATE;
STARTUP RESTRICT;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE CHARACTER SET WE8MSWIN1252;
Comprobación:
SELECT * FROM V$NLS_PARAMETERS;
Saludos,
Etiquetas:
documentacion,
oracle
miércoles, noviembre 28, 2012
Hoy otro más...
Cada vez ponen estas noticias en lugares menos destacados, y en la radio ni lo mencionan, pero el goteo es incesante. ¿Cuantos suicidios hay al día? Probablemente la cifra sea de asustar y por eso se silencia.
Noticia aquí.
Noticia aquí.
Etiquetas:
denuncia social,
noticias
sábado, noviembre 24, 2012
Ya está bien!!! Que la gente se está suicidando!!!
¡¡¡Pero qué es esto!!!
¡¡¡Que la gente se está suicidando!!!
¿¿¿QUE OS PASA A LOS POLÍTICOS QUE NO OS ENTERÁIS DE LO QUE PASA O ES QUE OS DA IGUAL TODO???
¿¿¿EN QUÉ ANDAN PENSANDO LOS SINDICATOS??? ¿¿¿LA EXTRA DE NAVIDAD??? ¿¿¿QUÉ IMPORTA ESO CUANDO LA GENTE SE SUICIDA??? ¿¿¿CUANDO EMPIEZAN LAS MANIFESTACIONES POR LO MUERTOS???
¡En un lugar civilizado no se deja a la gente en la intemperie sin techo!
¿Qué tipo de libertad es esa que disfrutamos?
Políticos, funcionarios instructores, inspectores, policía, ¡Dejad ya de abrasar a multas e inspecciones a los transportistas que están todos arruinados! No conocéis la realidad. Seguís pensando que los fontaneros están forrados. Vais a conseguir que se suiciden todos y luego ya no les podréis exprimir más. El sistema ahora mismo no se puede mantener a base de multas e impuestos.
Fuente aquí.
Fuente: aquí.
¡¡¡Que la gente se está suicidando!!!
¿¿¿QUE OS PASA A LOS POLÍTICOS QUE NO OS ENTERÁIS DE LO QUE PASA O ES QUE OS DA IGUAL TODO???
¿¿¿EN QUÉ ANDAN PENSANDO LOS SINDICATOS??? ¿¿¿LA EXTRA DE NAVIDAD??? ¿¿¿QUÉ IMPORTA ESO CUANDO LA GENTE SE SUICIDA??? ¿¿¿CUANDO EMPIEZAN LAS MANIFESTACIONES POR LO MUERTOS???
¡En un lugar civilizado no se deja a la gente en la intemperie sin techo!
¿Qué tipo de libertad es esa que disfrutamos?
Políticos, funcionarios instructores, inspectores, policía, ¡Dejad ya de abrasar a multas e inspecciones a los transportistas que están todos arruinados! No conocéis la realidad. Seguís pensando que los fontaneros están forrados. Vais a conseguir que se suiciden todos y luego ya no les podréis exprimir más. El sistema ahora mismo no se puede mantener a base de multas e impuestos.
Fuente aquí.
Fuente: aquí.
Etiquetas:
denuncia social,
noticias
martes, noviembre 20, 2012
Actualidad. 20-11-2012
Aquí una buena noticia (¡increible!)
Fuente: elmundo.es
Aquí la mala: (¡menuda justicia/jueces tenemos! yo tampoco veo telebasura. Espero que no me demanden por decirlo en un blog, aunque todo es posible)
Fuente: elcorreo.com
La sorprendente:
Fuente: elconfidencial.com
La tecnológica:
Fuente: cotizalia.com
Etiquetas:
noticias
lunes, noviembre 19, 2012
Oracle, forzar la parada de la base de datos
Cuando hay usuarios conectados, o procesos Oracle lanzados en el servidor, la parada puede resultar problemática.
SQL> SHUTDOWN IMMEDIATE
Las sesiones no activas las va cerrando con esta orden, pero los procesos en ejecución continúan y hasta que terminen todos no va a hacer la parada.
Si nos vamos a casa al día siguiente podemos ver que la orden "shutdown immediate" se ha interrumpido y la base de datos no ha llegado a pararse.
Solución 1: NO HACER ESTO. Se trata de forzar la parada con un "shutdown abort". De esta forma fuerzas la parada, pero cuando vaya a arrancarlo te puedes encontrar todo tipo de sorpresas desagradables.
Solución 2: La buena:
El problema es que una vez que lanzas el "shutdown immediate", la base de datos no va a aceptar nuevas conexiones así que lo más limpio va a ser matar esos procesos que nos impiden parar la base de datos, desde la cuenta de root del sistema operativo.
El listado de procesos Oracle No locales a la máquina (procesos de usuarios) se obtiene así:
# ps -ef|grep oracle|grep LOCAL=NO
En la 2ª columna del listado tenemos el pid del proceso, por lo que podemos hacer esto para pasárselo al comando KILL:
# ps -ef | grep oracle |grep LOCAL=NO | awk {'print "kill -9 " $2'}
kill -9 27964
kill -9 2093
kill -9 2347
kill -9 26055
kill -9 5591
kill -9 26051
kill -9 29097
kill -9 25591
kill -9 25587
kill -9 16100
kill -9 5005
kill -9 2095
kill -9 7202
kill -9 13927
kill -9 12817
kill -9 14659
kill -9 26049
kill -9 26053
kill -9 29095
kill -9 14558
kill -9 10754
kill -9 2605
...
...
Saludos.
pd: ¡Que bueno el awk!
SQL> SHUTDOWN IMMEDIATE
Las sesiones no activas las va cerrando con esta orden, pero los procesos en ejecución continúan y hasta que terminen todos no va a hacer la parada.
Si nos vamos a casa al día siguiente podemos ver que la orden "shutdown immediate" se ha interrumpido y la base de datos no ha llegado a pararse.
Solución 1: NO HACER ESTO. Se trata de forzar la parada con un "shutdown abort". De esta forma fuerzas la parada, pero cuando vaya a arrancarlo te puedes encontrar todo tipo de sorpresas desagradables.
Solución 2: La buena:
El problema es que una vez que lanzas el "shutdown immediate", la base de datos no va a aceptar nuevas conexiones así que lo más limpio va a ser matar esos procesos que nos impiden parar la base de datos, desde la cuenta de root del sistema operativo.
El listado de procesos Oracle No locales a la máquina (procesos de usuarios) se obtiene así:
# ps -ef|grep oracle|grep LOCAL=NO
En la 2ª columna del listado tenemos el pid del proceso, por lo que podemos hacer esto para pasárselo al comando KILL:
# ps -ef | grep oracle |grep LOCAL=NO | awk {'print "kill -9 " $2'}
kill -9 27964
kill -9 2093
kill -9 2347
kill -9 26055
kill -9 5591
kill -9 26051
kill -9 29097
kill -9 25591
kill -9 25587
kill -9 16100
kill -9 5005
kill -9 2095
kill -9 7202
kill -9 13927
kill -9 12817
kill -9 14659
kill -9 26049
kill -9 26053
kill -9 29095
kill -9 14558
kill -9 10754
kill -9 2605
...
...
Saludos.
pd: ¡Que bueno el awk!
Etiquetas:
documentacion,
oracle
sábado, noviembre 17, 2012
Juego sucio de Google???
Estaba leyendo el diario de hojas salmón "Expansión" de ayer, y me he encontrado un curioso anuncio: "En 2009, una penalización no especificada por parte de Google redujo nuestro tráfico de visitantes en más de un 90% de la noche a la mañana. Prácticamente, desaparecimos de Internet durante más de nueve meses".
Supuestamente son palabras del CEO de "One News Page": http://www.onenewspage.com/
El anuncio es de una iniciativa llamada ICOMP para defender el comercio online competitivo.
La verdad es que si lo que dice es cierto (leer los siguientes dos párrafos del anuncio), se trataría de un juego sucio que podría anular por invisibilidad cualquier sitio web de un plumazo. De momento veo que onenewspage tiene un pagerank de 5 que no está nada mal. Espero que la cosa tenga su explicación.
Por mirar algo he comprobado que en lo que llevamos de año, OneNewsPage ha recibido por parte de Google 7 peticiones de retirada de contenido por vulnerar derechos de autor. En principio no parecen muchas, y se supone que cuando recibes un aviso de esos, haces caso y lo retiras.
En todo caso, que todo el mundo utilice el mismo buscador siempre será "peligroso".
Saludos.
Etiquetas:
internet
martes, noviembre 13, 2012
Calcular distancia entre dos ciudades con PERL
Como decía el otro día, necesito un programa que calcule distancias entre ciudades. No puedo ir a GOOGLE MAPS y hacerlo a mano porque hablamos de una tabla completa.
Hoy vamos a utilizar PERL.
Necesitamos descargar e instalar el módulo JSON. El sitio de descarga éste. Descargamos el fichero JSON-2.53.tar.gz. Con gunzip fichero.gz obtenemos el fichero JSON-2.53.tar. Luego con tar -xvf fichero.tar obtenemos el directorio que contiene los ficheros del módulo.
Luego compilamos el módulo:
El resultado de la ejecución:
perl distancia.pl
65.311 kilometros
Código fuente descargado de aquí, aunque se han hecho un par de modificaciones.
Más información y ejemplos en la documentación de Google aquí.
Saludos,
Hoy vamos a utilizar PERL.
Necesitamos descargar e instalar el módulo JSON. El sitio de descarga éste. Descargamos el fichero JSON-2.53.tar.gz. Con gunzip fichero.gz obtenemos el fichero JSON-2.53.tar. Luego con tar -xvf fichero.tar obtenemos el directorio que contiene los ficheros del módulo.
Luego compilamos el módulo:
- perl Makefile.PL
- make
- make test
- make install
#!/usr/bin/perl use strict; use warnings; use JSON; use LWP::UserAgent; my $ua = LWP::UserAgent->new(); my $origin = "Vitoria-Gasteiz"; my $destination = "Bilbao"; my $site = 'http://maps.googleapis.com/maps/api/directions/'; my $mode = 'json'; my $page = $site . $mode . '?origin="' . $origin . '"&destination="' . $destination . '"&sensor=false'; my $response = $ua->get( $page ); my $json = $response->content(); my $data = decode_json $json; my @legs = @{ $data->{'routes'}[0]{'legs'} }; my $distance_meters = 0; foreach my $leg (@legs) { $distance_meters += $leg->{'distance'}{'value'}; } my $distance_kilometers = $distance_meters / 1000; print $distance_kilometers . " kilometros\n";
El resultado de la ejecución:
perl distancia.pl
65.311 kilometros
Código fuente descargado de aquí, aunque se han hecho un par de modificaciones.
Más información y ejemplos en la documentación de Google aquí.
Saludos,
Etiquetas:
googlemaps,
perl
lunes, noviembre 05, 2012
Problema del módulo Geo-Google (PERL)
CPAN es el repositorio de módulos de PERL (entre otras cosas). Ayer quería hacer un programita PERL que interrogue a Google Maps para calcular distancias entre dos ciudades.
Encontré un módulo que precisamente para hacer eso. Se llamaba GEO::GOOGLE
El caso es que para "coger destreza" en el desempaquetado (gunzip y tar), y el compilado de módulos:
perl Makefile.PL
make
make test
make install
Y sobre todo para saber identificar los errores y warnings que surgen a lo largo del proceso, decidí instalar cada dependencia a mano. En total instalé 23 módulos:
[root@xekun perl]# ls -la
total 100
drwxr-xr-x. 25 root root 4096 Nov 5 09:04 .
drwxr-xr-x. 3 aitor aitor 4096 Nov 5 00:31 ..
drwxr-xr-x. 8 aitor aitor 4096 Nov 5 00:15 Compress-Raw-Bzip2-2.055
drwxr-xr-x. 9 aitor aitor 4096 Nov 5 00:06 Compress-Raw-Zlib-2.056
drwxr-xr-x. 5 501 games 4096 Nov 4 22:15 Digest-MD5-2.52
drwxr-xr-x. 5 501 games 4096 Nov 4 23:48 Encode-Locale-1.03
drwxr-xr-x. 5 501 games 4096 Nov 4 23:46 File-Listing-6.04
drwxr-xr-x. 5 root root 4096 Nov 5 00:39 Geo-Google
drwxr-xr-x. 7 501 games 4096 Nov 5 00:22 HTML-Parser-3.69
drwxr-xr-x. 4 500 500 4096 Nov 4 23:08 HTML-Tagset-3.20
drwxr-xr-x. 5 501 games 4096 Nov 4 23:44 HTTP-Cookies-6.01
drwxr-xr-x. 5 501 games 4096 Nov 4 23:33 HTTP-Daemon-6.01
drwxr-xr-x. 5 501 games 4096 Nov 4 23:09 HTTP-Date-6.02
drwxr-xr-x. 5 501 games 4096 Nov 5 00:18 HTTP-Message-6.06
drwxr-xr-x. 5 501 games 4096 Nov 4 23:45 HTTP-Negotiate-6.01
drwxr-xr-x. 8 aitor aitor 4096 Nov 5 00:17 IO-Compress-2.055
drwxr-xr-x. 5 aitor aitor 4096 Nov 5 00:09 IO-HTML-0.04
drwx------. 5 1006 513 4096 Nov 5 00:27 JSON-1.12
drwxr-xr-x. 6 500 500 4096 Nov 5 00:29 JSON-2.53
drwxr-xr-x. 6 500 500 4096 Nov 5 00:32 JSON-PP-2.27200
drwxr-xr-x. 6 501 games 4096 Nov 4 23:47 libwww-perl-6.04
drwxr-xr-x. 5 501 games 4096 Nov 4 23:35 LWP-MediaTypes-6.02
drwxr-xr-x. 5 501 games 4096 Nov 4 23:46 Net-HTTP-6.03
drwxr-xr-x. 5 501 games 4096 Nov 5 00:19 URI-1.60
drwxr-xr-x. 5 501 games 4096 Nov 4 23:30 WWW-RobotRules-6.02
Bueno, total que quedó todo perfectamente instalado y funcionando, menos el dichoso módulo GEO::GOOGLE
Entonces se me ocurrió mirar los resultados de los testers del módulo y me encontré con esta desagradable sorpresa:
Como se puede ver en el enlace, no funciona prácticamente en ningun S.O. ni versión de PERL.
Lección aprendida: Antes de usar un módulo CPAN comprobar los resultados de los Testers.
Saludos,
Etiquetas:
googlemaps,
perl
viernes, octubre 26, 2012
Oracle, aumentar número de conexiones
Cómo se percibe este problema:
A veces ocurre algo extraño. Algunos usuarios trabajan sin problemas con la base de datos, pero hay usuarios que se quejan de errores en las aplicaciones. El mensaje "debidamente" o no traducido por la aplicación dirá algo así: "Oracle rechaza la conexión", "No se puede conectar a la base de datos", o lo que se la haya ocurrido al programador.
Consejo para desarrolladores: Estaría bien que cuando se captura un error provocado por otro sistema, además de la interpretación de lo que ocurre se ofrezca el error exacto que en caso de Oracle tiene que ser un error ORA-número.
Si nos conectamos sysdba el error en Oracle11.2 es el siguiente:
$sqlplus "/as sysdba"
Connected
SQL> ponemos cualquier sentencia válida
ERROR al line 1:
ORA-01012: not logged on
Lo que ocurre es que hemos llegado al número de procesos máximos definido en nuestra base de datos. La solución es ver los que tenemos y aumentarlos.
Nota: para poder conectarnos, cambiar el parámetro, y reiniciar la base de datos, tendremos que matar procesos desde el sistema operativo. Obtener los procesos Oracle de usuario haciendo:
ps -ef|grep LOCAL=NO
Para ver el valor del parámetro de procesos máximos:
SQL> show parameter processes;
Para aumentarlo (requiere reinicio):
SQL>alter system set processes=5000 scope=spfile;
SQL>shutdown immediate;
SQL>startup
Saludos.
Etiquetas:
documentacion,
oracle
miércoles, octubre 24, 2012
oracle, impdp error ORA-39070
A vece te ocurre un error en la import datapump de Oracle, que no identifica claramente lo que está ocurriendo.
Éste es el caso del error ORA-39070: Unable to open the log file.
Antes de volverte loco examinando el paquete UTL_FILE, ten en cuenta lo siguiente:
ORACLE utiliza UTL_FILE para leer o escribir ficheros de texto. Cuando utilizas la import datapump (impdp) tienes que indicar el directorio con el parámetro DIRECTORY=
En DIRECTORY no se pone directamente el directorio, sino que antes de lanzar el impdp tiene que existir el objeto tipo directorio. Podemos crearlo con un fichero SQL como éste:
CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS '/mis_exports/lunes/';
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO SYSTEM;
EXIT;
Pues si el directorio está mal indicado, o si no existe el objeto DATA_PUMP_DIR (en mi ejemplo), o no hemos dado el GRANT al usuario que lanza la import, ORACLE no será capaz de escribir el fichero de LOG y fallará el impdp dando el error indicado.
Saludos,
Éste es el caso del error ORA-39070: Unable to open the log file.
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
Antes de volverte loco examinando el paquete UTL_FILE, ten en cuenta lo siguiente:
ORACLE utiliza UTL_FILE para leer o escribir ficheros de texto. Cuando utilizas la import datapump (impdp) tienes que indicar el directorio con el parámetro DIRECTORY=
En DIRECTORY no se pone directamente el directorio, sino que antes de lanzar el impdp tiene que existir el objeto tipo directorio. Podemos crearlo con un fichero SQL como éste:
CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS '/mis_exports/lunes/';
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO SYSTEM;
EXIT;
Pues si el directorio está mal indicado, o si no existe el objeto DATA_PUMP_DIR (en mi ejemplo), o no hemos dado el GRANT al usuario que lanza la import, ORACLE no será capaz de escribir el fichero de LOG y fallará el impdp dando el error indicado.
Saludos,
Etiquetas:
documentacion,
oracle
Suscribirse a:
Entradas (Atom)


















