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.
Blog personal de Aitor Iriarte. Intento ayudar en lo que queda de una comunidad con personas que se respetan unas a otras. Si esto sigue adelante sólo es por comentarios positivos o alentadores. Si ves que este blog permanece congelado, el nulo feedback es el único motivo. Antes de ejecutar los comandos en sistemas en producción, asegurate leyendo la ayuda o en sitios especializados, de que son adecuados para el fin que pretendes.
viernes, diciembre 14, 2012
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.
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.