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.

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,





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í.

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í.

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:



La tecnológica:


Fuente: cotizalia.com

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!

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.

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:
  1. perl Makefile.PL
  2. make
  3. make test
  4. make install
 Y ahora podemos utilizarlo de la siguiente forma para acceder al API de GOOGLE MAPS:

#!/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,

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,