Archive for the ‘Optimizacion’ Category

ORA-00439: función no activada: Online Index Build

lunes, noviembre 14th, 2011

Como ya escribí anteriormente, se puede hacer una reconstrucción de índices en línea en Oracle, pero puede aparecerte el siguiente error:

ORA-00439: función no activada: Online Index Build

Primero debes ver que tengas activada la funcionalidad con la siguiente consulta

select * from v$option

Esto debiese generarte una salida como la siguiente

PARAMETER                             VALUE                                                            
------------------------------------- ----- 
Partitioning                          TRUE
Objects                               TRUE
Real Application Clusters             FALSE
Advanced replication                  TRUE
Bit-mapped indexes                    TRUE
Connection multiplexing               TRUE
Connection pooling                    TRUE
Database queuing                      TRUE
Incremental backup and recovery       TRUE
Instead-of triggers                   TRUE
Parallel backup and recovery          TRUE
Parallel execution                    TRUE
Parallel load                         TRUE
Point-in-time tablespace recovery     TRUE
Fine-grained access control           TRUE
Proxy authentication/authorization    TRUE
Change Data Capture                   TRUE
Plan Stability                        TRUE
Online Index Build                    TRUE
Coalesce Index                        TRUE
Managed Standby                       TRUE
Materialized view rewrite             TRUE
Materialized view warehouse refresh   TRUE
Database resource manager             TRUE
Spatial                               TRUE
Visual Information Retrieval          TRUE
Export transportable tablespaces      TRUE
Transparent Application Failover      TRUE
Fast-Start Fault Recovery             TRUE
Sample Scan                           TRUE
Duplexed backups                      TRUE
Java                                  TRUE
OLAP Window Functions                 TRUE
Block Media Recovery                  TRUE
Fine-grained Auditing                 TRUE
Application Role                      TRUE
Enterprise User Security              TRUE
Oracle Data Guard                     TRUE
Oracle Label Security                 FALSE
OLAP                                  TRUE
Table compression                     TRUE
Join index                            TRUE
Trial Recovery                        TRUE
Data Mining                           TRUE
Online Redefinition                   TRUE
Streams Capture                       TRUE
File Mapping                          TRUE
Block Change Tracking                 TRUE
Flashback Table                       TRUE
Flashback Database                    TRUE
Data Mining Scoring Engine            FALSE
Transparent Data Encryption           TRUE
Backup Encryption                     TRUE
Unused Block Compression              TRUE

 54 filas seleccionadas 

Fijate en la linea Online Index Build debiese ser TRUE, si es false debes instalar por separado el producto o la version que tienes de oracle no soporta la funcionalidad (puede ser una versión standard, sin soporte de esta funcionalidad)

También puede dar en el caso que no se tenga permiso para ejecutar la funcionalidad, ya que si el usuario solo tiene privilegios de CONNECT no podrá realizar la tarea, por lo que se puede verificar el GRANT

GRANT ALTER ANY INDEX TO "USUARIO";

En donde «USUARIO» es el usuario que esta ejecutando la consulta, ahora si el usuario que estabas utilizando al darte este error era SYS o SYSTEM, entonces es necesariamente la primera causa.

Reconstrucción de índices en línea en Oracle

sábado, noviembre 12th, 2011

Una de las funcionalidades que comenzó en Oracle 9i es la de reconstruir índices «en línea», esto significa que mientras se procede a leer y recontruir la tabla de índices el original se mantiene intacto hasta el momento del término de la operación de reconstrucción.

Para proceder a la reconstrucción en línea debe escribirse

ALTER INDEX el_nombre_del_indice REBUILD ONLINE;

Demorará más para las tablas que son constantemente usadas, o que soy muy grandes, pero en general ningún usuario sentirá esta reconstrucción.

Falla al crear virtual machine en Eclipse

miércoles, mayo 25th, 2011

Existe la posibilidad de que pase un error recurrente al ejecutar eclipse.exe, el mensaje sería más o menos así

Para evitar este error edita el archivo eclipse.ini, existen dos lineas ubicables

-Xms40m
-Xmx1024m

-Xmx1024m indica el tamaño máximo de la memoria que debe ubicarse para la ejecución de Java, por lo que si no inicia eclipse ese es el numero que debes disminuir, prueba con 756m, 512m, y como mínimo con 256m sólo para ver si parte. Un numero menor a eso, puede partir Eclipse, pero el trabajo se te tornará realmente lento.

Por otra parte, si es que ya te partió puedes echarle la culpa a la memoria, por lo que debes revisar dos cosas, ver si la memoria fisica esta mala (para ello utiliza alguna distriibución de linux que lo haga) o si instalaste hace poco algun programa que tipicamente instalan agentes o cosas similares, que te puedan quitar memoria en el inicio de tu computador.

Si no te inicia, puede ser otra cosa.

VisualVM una herramienta para Java

martes, mayo 24th, 2011

Muchas veces has querido averiguar que es lo que está sucediendo dentro de la máquina virtual de Java, Java 6 ya viene con una herramienta para ello, pero también puede ser descargada desde https://visualvm.java.net/.

Al ejecutar la aplicación puedes verificar el funcionamiento de las aplicaciones Java que están en tu equipo (localhost) o remotamente. Aqui un ejemplo de la ejecución:

Preparando un datasource para JBoss

martes, mayo 24th, 2011

En JBoss para poder activar un datasource se debe crear un archivo *-ds.xml, dentro del cual se pondra segun la siguiente estructura la definicion (un ejemplo de oracle-ds.xml)

  
  
    jdbc/algoaqui
    jdbc:oracle:thin:@localhost:1521:orcl
    oracle.jdbc.driver.OracleDriver
    usuario
    password
	10
	40
	10
	30000
	32
    org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
      
         Oracle9i
      
  
  

jndi-name : Es el nombre que se le dará al JNDI y con el cual se podrá en el codigo crear el Datasource.
connection-url :Apunta a la conexión, segun el estandar de jdbc.
driver-class :Es la clase del datasource que se va a instanciar. Debieses dejar la librería de conexion en la carpeta %JBOSS_HOME%\server\%TIPO_SERVER%\lib
user-name : Es el nombre de usuario de la conexión
password : Es la password de la conexión
min-pool-size : Es la cantidad mínima de conexiones que se lanza al inicio.
max-pool-size : Es el máximo de conexiones que soportará el datasource pool.
idle-timeout-minutes : Es la cantidad de minutos que obligatoriamente esta abierta una conexión, si se supera este tiempo en una conexión que no posee actividad, entonces se cerrará la conexión.
blocking-timeout-millis : Es la cantidad de tiempo que se espera para tomar una conexión, si la conexión no es entregada en este tiempo se enviará una Exception.
prepared-statement-cache-size : Es un cache para los PreparedStatement más utilizados, de forma de tener preparadas las consultas que se envían cachadas.

El significado tras el 99.999% de uptime

jueves, octubre 14th, 2010

Por lo general es común ver que ciertos servicios de internet ofrecen el 99.999% de uptime, pero ¿que significa?

Si el servicio ofrece el 90% de uptime, implica que 35 días al año el servicio esta bajo, si ofrece el 99% implican más o menos 4 días sin servicio. Cuando llegamos a los decimales, o sea, el 99.9% de uptime, significa sólo 8horas de downtime, el 99.99% sólo 50 minutos, y el 99.999% significa que sólo 5 minutos al año estará sin servicio. En general esto es parte del contrato de servicios cuando se definen los SLA (Service Level Agreement).

Es importante saber que es imposible comenzar a ofrecer un 99.999% si es que asociado a ello no existe un cluster de servidores.