Sublime Text 2 – link para invocar desde la linea de comandos en osx

Soy un feliz usuario de Sublime Text 2. Es la frikada de editor de texto que siempre he necesitado pero que no empleaba por complejidad (emacs) o por precio (textmate).

El hecho de que las licencias son personales y permite ser empleado en OSx, Linux y Windows fue el aliciente definitivo para pagar una licencia por un trabajo bien hecho.

En el trabajo lo uso con Linux, en casa en mi viejo Mac sin prácticamente cambios. En ambos entornos me muevo cómodo con la terminal y una de las cosas que hecho de menos poder lanzar ST2 en mac.

Solución sencilla un simple link en /usr/bin y es ejecutable por todos.

 

CRS-2640: Required resource ‘ora.FRA.dg’ is missing

No deja de sorprenderme la simpleza de funcionamiento del crs de Oracle. En la última versión 11.2.0.2 me he encontrado con un error un poco tonto.

Tras hacer una pruebas con un diskgroup FRA en el ASM en un RAC de 3 nodos, decidimos eliminarlo.
Desde el ASM no hubo más problemas ya que el diskgroup estaba limpio y no tenía ningun tipo de dependencia con objetos de la bbdd. Hasta aquí todo correcto.

Lamentablemente el OCR no se había enterado de la eliminación del diskgroup y al hacer una simple prueba rutinaria de parada y subida del servicio este falló por no encontrar las dependencias de recursos DG que se habían eliminado.

Comprobando las dependencias de recursos se podía observar como todavía estaba en las subida y bajada

Un nuevo error, al validar la configuración del servicio, al no existir el recurso en el CRS, también fallaba el estado.

Tras investigar un poco opte por forzar la dependencias nuevamente. Algo que probablemente debería haber hecho automáticamente al recibir el cambio de estado de ASM.

Tras esta operativa se podía validar que ningún recurso volvía a depender de la FRA.

Levantamos el servicio de bbdd y todo funciona correctamente:

Finalmente el comando devuelve la configuración correcta:

 

Cannot read termcap database

Un bug recurrente al instalar postgresql 9.x en un debian o derivado como ubuntu.

postgres@debian:~$ psql
psql (9.0.3)
Type "help" for help.

Cannot read termcap database;
using dumb terminal settings.
Aborted

Muy fácil de evitar, basta con añadir una definición de la terminal. Como root ejecutar

root@debian:~$ infocmp -C > /etc/termcap

Y ya funciona.

Marcadores duplicados en Xmarks

Como casi todo el mundo, uso a diario los marcadores del navegador para conservar información sobre temas que estoy buscando y quiero recordar. Muchas veces son simples apuntes, referencias sin clasificar, pendientes de ser leídas y descartadas. A veces las ideas surgen navegando en casa, o con el teléfono mientras espero en algún sitio. La nube nos tiene mal acostumbrados y quiero no tener que preocuparme: llegar al trabajo y tenerlos allí esperándome.

Hasta hace unos años era un fiel usuario de del.icio.us. Personalmente nunca lo utilicé como herramienta social sino más bien para etiquetar y guardar mis referencias. Con el tiempo dejé de usarlo por culpa de un recién llegado: foxmarks, el actual xmarks, que funcionaba como un guante. Y así ha sido por años, suficientes años como para asustarme cuando anunciaron su cierre.

A finales de 2010 tuve un problema recurrente con esta aplicación: En el Mac se corrompía la “cache” de links de xmarks para Safari e impedian las sincronización. La solución era sencilla e incomoda, eliminar los ficheros de la Library de mi usuario y volver a descargar los marcadores, lo contrario a lo deseable, hasta me planteé volver a del.icio.us. Recientemente habia empezado a probar Chrome en el Mac. Los problemas no acabaron allí, cada vez que abría Chrome algunos marcadores y carpetas se duplicaban, pasando a tener el doble de enlaces distribuidos por el doble de carpetas… algunos dias recuperaba hasta dos o tres veces los bookmarks del historico.

Probé muchas cosas. Mi primera hipótesis fue que xmarks en el Mac fallaba ya fuese en firefox, safari o chrome, pero no podía reproducirlo. Luego pensé que era una interferencia cuando tenia unas Debian abiertas en otro ordenador y que xmarks gestionaba mal la concurrencia de varias actualizaciones. Está era una buena pista y paré la sincronizacion automatica de todos los xmarks.

Repasando la configuración de chrome me percaté de un detalle, inocentemente en todos los chromes había marcado la sincronización automática con la cuenta de Google. Tras un par de pruebas lo valide, Chrome intentaba actualizar también las nuevas referencias instantáneamente, y entre uno y otro se grababa dos veces, esa entrada y todas las de la carpeta. Todo un cuadro.

Conclusion, lo obvio, usa solamente una herramienta de sincronización. Si usas xmarks usa sólo xmarks, deshabilita el sincronizador de mozilla o de ubuntu o de google o lo más probable es que se interfieran los servicios como me pasó a mí.

 

Comando “watch” en OSX

Recientemente descubrí un truquillo de shell para repetir indefinidamente una instrucción en RedHat.

El comando en cuestión es watch.

watch permite repetir periódicamente un programa y mostrar su resultado a pantalla completa. Puede ser útil para hacer un cat de un fichero que va recreándose o un ls de un directorio o un ps de un proceso que estamos monitorizando en una terminal.

La sorpresa ha sido encontralo también en macports. Muy sencillo de instalar si tienes macports configurado.


$> sudo port install watch

Un gusto para simplificar tareas o monitorizaciones improvisadas.

Agregar un día a una fecha

Para agregar un día a una fecha en oracle basta con sumar “1” a la variable o columna que nos interese.

select trunc(sysdate +1) from dual;

El trunc es para garantizar que pone las 00:00 de ese día. Si interesa justo un día quitar este trunc.

Si es tal día como hoy dentro de una semana:

select trunc(sysdate +7) from dual;

Recuperar un datafile almacenado sobre un volumen raw

En una bbdd de pruebas tenemos sus datafiles almacenados en volúmenes RAW.

Este tipo de almacenamiento se emplea por motivos históricos por que cuando los discos eran otros, mejoraba ligeramente rendimiento al eliminar capas de software. Sin embargo la tendencia es ir avandonándolo, ya que exige un esfuerzo extra de administración que prácticamente ya no compensa con las nuevas cabinas de almacenamiento. De hecho Oracle lo desaconseja en sus Papers recientes e incluso no garantiza que se soporte en futuras versiones.

Supongamos que en una versión 10g accidentalmente desaparece uno de los volúmenes que contiene/es un datafile de tablespace USERS.


SQL> startup
ORACLE instance started.


Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 92276304 bytes
Database Buffers 188743680 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: '/dev/raw/raw9'

Lástima, no encuentra el fichero 5, afortunadamente tenemos una copia de seguridad reciente y todos los archivelog generados desde entones. Inicio RMAN y muevo el datafile a otra ubicación.


RMAN> run
2> {
3> set newname for datafile 5 to '/u02/oradata/test/user02.dbf';
4> restore datafile 5;
5> }

Y el resultado de este bloque RUN es:

executing command: SET NEWNAME

Starting restore at 27-APR-09
using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00005 to /u02/oradata/test/user02.dbf
channel ORA_DISK_1: reading from backup piece /u02/oradata/flash_recovery_area/TEST/backupset/2009_04_27/o1_mf_nnndf_TAG20090427T171253_4zclvocj_.bkp
channel ORA_DISK_1: restored backup piece 1
piece handle=/u02/oradata/flash_recovery_area/TEST/backupset/2009_04_27/o1_mf_nnndf_TAG20090427T171253_4zclvocj_.bkp tag=TAG20090427T171253
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 27-APR-09

He recuperado el media en la nueva dirección pero el fichero de control de la bbdd todavia apunta a la direccion vieja.


SQL> alter database rename file '/dev/raw/raw9' to '/u02/oradata/test/user02.dbf';

RMAN> recover database;

RMAN> alter database open;

Se recupera la bbdd, y se abre para los usuarios. Ya está la bbdd dando servicio.

De momento el datafile está montado en un filesystem, pero se puede volver a la situación de partida en RAW. Se repasa el volumen o se provisiona otro y fácilmente, con una operativa similar, se puede pasar a un almacenamiento como están el resto de los datafiles.

Muy sencillo.