Compactado de tablas para reducir datafiles (Oracle)

Seguro que en más de una ocasión hemos eliminado registros de una tabla en grandes cantidades, quizás millones. Una vez hecho esto lo esperable sería una reducción del espacio ocupado en el tablespaces, pero esto no es así, las extensiones siguen existiendo pero libres para el uso de la tabla en cuestión, no las puede usar otra tabla.

Una vez eliminados los millones de registros, se ha de compactar la tabla para devolver espacio libre al tablespace, una vez hecho esto incluso podemos reducir el tamaño de los datafiles sin encontrarnos con la limitación  impuesta por el HIGH WATER MARK (tamaño máximo alcanzado  por los objetos dentro de un datafile).

Supongamos la tabla:

Continue reading

Pasar de un solo datafile InnoDB a uno por tabla (MYSQL)

Durante una instalación por defecto de MySQL, un error muy común es no modificar la configuración de como almacena los datos en motor InnoDB. Por defecto toda la información es almacenada en un solo datafile, que normalmente se llama:

Source   
ibdata1

Continue reading

Variables estado MySQL

Para realizar un tuning de MySQL, antes hay que familiarizarse con un par de conceptos, MySQL tiene VARIABLES y ESTADOS:

  • Una variable tiene asociado un valor que puede ser fijado en el fichero my.cnf (my.ini en Windows) o símplemente se ha fijado uno por defecto de forma implícita, aunque también es posible modificar algunas variables en tiempo de ejecución (atención que no queda reflejado el cambio en los ficheros de configuración). Según la versión de que estemos usando podemos tener más de 300 (como ocurre con la versión 5.5). Es posible conocer el valor de todas las variables con:

Continue reading

Índices fake en Oracle

Recientemente siguiendo el documento ID 456468.1, he realizado una verificación de la integridad del catálogo. El caso es que han aparecido un par de errores indicando un problema con un identificador de objeto:

1703982

Este objeto existe en dba_objets, la consulta:

Continue reading

Error ORA-13605 al ejecutar SQL Access Advisor en Oracle 10.2.0.5

Una vez más se vuelve a repetir la historio, se instala un PathSet con la idea de solucionar problemas y aparecen otros nuevos (esta vez sin documentas).

Esta vez ha sido al instalar el PatchSer 10.2.0.5 sobre la versión 10.2.0.1. El caso es que ahora al intentar ejecutar el SQL Access Advisor, no aparece la tarea recién creada pero si un error en el alert:

Continue reading

Parámetros RMAN oracle, en un script rman (solo Oracle 11g o superior)

Cuando listamos los backups realizados con:

Source   
RMAN> list backup summary;

Por ejemplo, podemos tener problemas para localizar un backupset. El resultado es bastante confuso y desde luego son poco elegantes las etiquetas creadas por defecto.

Continue reading

ORA-01591 bloqueo transacción distribuida

Es posible que una aplicación muestre en su log un error ORA-01591, que según la documentación oficial es debido a una trasacción de 2 fases que no puede completarse.

Este tipo de transacciones se usan, por ejemplo, cuando se hace un commit usando tablas obtenidas a partir de un dblink. Se verifica que se puede hacer un commit en remoto, otro en local y finalmente se hace en los 2 sitios de forma atómica.

Bueno pues cuando se pierde la conexión con un dblink durante una transacción, la transacción queda en un estado dudoso y si alguna otra sesión intenta modificar los objetos involucrados veremos el error ORA-01591.

Continue reading

Contraseña caducada oracle, Oracle 11

Con la versión más reciente de Oracle Database 11g, se ha reforzado la seguridad por defecto. Esto en principio debería ser positivo, pero hay algunas situaciones en las que pueden resultar desagradables algunos comportamientos.

El caso más claro lo podemos encontrar en la moficación del perfil (PROFILE) DEFAULT, que es aplicado a cualquier usuario creado de forma predeterminada.

Continue reading

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

MySQL consultas lentas, activación log consultas lentas o sin índices

En un entorno de producción, es muy recomendable tener activado el log de consultas lentas, para irlo analizando de vez en cuando.

La activación se realiza en el fichero de parámetros usado (por ejemplo my.cnf), añadiendo dentro de la sección [mysqld]:

Source   
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 10
log-queries-not-using-indexes

Continue reading