jueves, 25 de abril de 2019

Oracle 19c (19.3) ya está disponible on-premise para Linux



La versión 19c de Oracle Database ya se puede descargar para servidores Linux desde la página de Descargas de Oracle Database. La noticia fue publicada por William Hardie, vicepresidente de Oracle, en el Blog de Oracle Database.


Esta nueva versión incorpora algunas nuevas características (sobre las cuales ya publiqué algunos artículos) como ser:

  • Automatic Indexing
  • Active Standby DML Redirect
  • Hybrid Partitioned Tables
  • JSON Enhancements
  • Quarantine SQL Statements
  • Real Time Statistics



Se puede consultar la nueva Guía de características de Oracle Database (desarrollada en Oracle APEX) para ver las principales características disponibles a partir de Oracle 11g (11.2) incluyendo esta nueva versión.



Una introducción rápida a las nuevas características esta disponible en el documento What's New in Oracle 19c. La totalidad de la la Documentación Oficial también está disponible.

[Edit 2019-04-26]
Ya se puede bajar la versión en Docker desde el repositorio Docker de Oracle.

miércoles, 10 de abril de 2019

SQL Developer 19.1 disponible



Oracle SQL Developer 19.1 ya está disponible para ser descargado aquí.

Algunos links útiles:


Para consultas y dudas, recomendamos usar el foro de SQL Developer en Oracle Community.

La documentación oficial todavía no se encuentra actualizada, pero se puede consultar la de la versión 18.4 aquí.

[Actualizacion del 11/04/2019] La documentación de la versión 19.1 ya esta disponible aquí.

viernes, 29 de marzo de 2019

Oracle APEX 19.1 Disponible


En el día de hoy fue liberada la versión 19,1 de Oracle APEX, la plataforma de desarrollo Web gratuita de Oracle que permite un rápido desarrollo de aplicaciones seguras y escalables con un mínimo de programación.

El anuncio oficial fue mediante el blog de APEX.

Links útiles:


Principales Características

Desarrollo con mínima programación

Con Oracle APEX se puede ser más ágil: desarrolle soluciones más rápido, a un costo menor y con mayor consistencia. Se puede adaptar a los requisitos cambiantes con facilidad. Capacite a los desarrolladores profesionales y a todos los demás en su organización para que sean parte de la solución.

Soluciones Éxito. Probado.

Descubra cómo se puede usar Oracle APEX para generar soluciones rápidas a problemas comerciales reales. Explore los casos de uso más comunes en los que a menudo se aplica Oracle APEX, aprenda sobre el conjunto de aplicaciones gratuitas incluidas con la plataforma y escuche las historias de éxito de los clientes de todas las geografías e industrias.

Aprender

Aprender Oracle APEX es fácil y no tomará mucho tiempo para aprender lo básico. Sin embargo, si no está seguro por dónde empezar, necesita material de lectura o simplemente necesita un impulso en el camino, consulte estos recursos útiles.

Comunidad

Forme parte de una de las comunidades más vibrantes, globales y en crecimiento que Oracle tiene para ofrecer. Hay una serie de eventos centrados en Oracle APEX, reuniones organizadas por la comunidad, recursos comunitarios y mucho más.

Desarrollado por Oracle

Oracle APEX es un producto sin costo basado en Oracle Database. Esto significa que lo unico requerido para utilizar APEX es una base de datos Oracle. ¡Simplemente puede descargar e instalar Oracle APEX en su base de datos Oracle existente! Una de las mayores ventajas de Oracle APEX es que tiene acceso nativo a todas las capacidades de Oracle Database.


lunes, 18 de marzo de 2019

Instalación Paso a Paso de Oracle 18c XE en Windows




A continuación voy a describir los pasos completos para instalar Oracle 18c XE en un equipo con Windows, junto con algunas recomendaciones para simplificar la instalación, evitar errores y poder utilizar las bases de datos facilmente.

Validar Requerimientos

La primer tarea antes de iniciar la instalación es validar que el equipo donde deseamos instalar Oracle XE cumpla con los requerimientos mínimos de hardware y software

Las plataformas soportadas son:

  • Windows 7 x64 - Ediciones Professional, Enterprise y Ultimate
  • Windows 8.1 x64 - Ediciones Pro y Enterprise
  • Windows 10 x64 - Ediciones Pro, Enterprise y Education
  • Windows Server 2012 x64 - Ediciones Standard, Datacenter, Essentials y Foundation
  • Windows Server 2012 R2 x64 - Ediciones Standard, Datacenter, Essentials y Foundation
  • Windows Server 2016 x64 - Ediciones Standard, Datacenter y Essentials


En el caso de Windows Server, el mismo no puede ser Domain Controller (esto no está aclarado en la documentación pero si fue reportado en los foros y confirmado por Oracle).

Los requerimientos de hardware son:

  • 8,5 Gb de espacio en disco, mas 2 Gb temporales durante la instalación.
  • 2 Gb de RAM.

A nivel permisos, el usuario que ejecuta la instalación debe ser miembro del grupo Administradores. En caso de realizar la instalación con un usuario de Dominio, asegurarse que el equipo este conectado a la red antes de comenzar la instalación.


Descargar Oracle 18c XE para Windows

Descargar el software desde la página de descargas de Oracle XE18c.

Una vez descargado el archivo Zip, descomprimir el mismo en una carpeta temporal desde donde se realizará la instalación, la cual puede ser eliminada una vez finalizado el proceso de instalación.

Instalar Oracle 18c XE

  • Asegurarse que la variable de  entorno "ORACLE_HOME" no esté definida en el equipo.
  • Ubicarse en la carpeta donde se descomprinió el archivo Zip, hacer click derecho sobre el archivo "Setup.exe" y ejecutar como administrador.


  • Esperar a la instalación del paquete de pre-requisitos. Una vez finalizado este paso, el instalador presentará la pantalla de bienvenida, en la que se debe presionar "Siguiente":



  • A continuación se debe aceptar el Acuerdo de Licencia y presionar "Siguiente":


  • El paso siguiente requiere seleccionar una carpeta de instalación. Dentro de la misma se generan las siguientes carpetas:
    • Admin (Archivos de dump, pfile y Oracle Wallet)
    • Audit (Logs de Auditoria)
    • cfgtoollogs (Logs de herramientas de configuración como DBCA o NetCA)
    • checkpoints
    • dbhomeXE (Oracle Home de la version  XE)
    • diag (logs y archivos de diagnostico)
    • oradata (archivos de datos de la CDB y las PDB)


  • A continuación se debe ingresar la contraseña para los usuarios SYS, SYSTEM y PDBADMIN y presionar "Siguiente":


  • La siguiente pantalla muestra un resumen de donde se va a instalar Oracle 18c XE. Al presionar "Instalar" se da comienzo a la instalación:


  • El proceso de instalación, creación de la base de datos CDB y de una base de datos PDB demanda unos 20 minutos:


  • Una vez finalizado el mismo, la pantalla final nos muestra información sobre la forma de conectarse tanto a la CDB como a la PDB y de la dirección web donde se encuentra en ejecución el Enterprise Manager Express de la instancia:


Servicios

Una vez instalada Oracle 18c XE, los siguientes servicios deberían estar disponibles:



Inicio automático de bases PDB

Al finalizar la instalación, tanto la base de datos CDB como la PDB se encuentran abiertas y disponibles para ser utilizadas. Pero al reiniciar el servidor y volver a iniciarse el servicio, solo la base de datos contenedor (CDB) se iniciará en forma automática.

Para configurar las bases de datos PDB (como ser la base XEPDB1 creada durante la instalación) para que inicien de forma automática se debe realizar lo siguiente:


  1. Conectarse a la base de datos contenedor (CDB).
  2. Ejecutar las siguientes sentencias

SQL> ALTER PLUGGABLE DATABASE ALL OPEN;
SQL> ALTER PLUGGABLE DATABASE ALL SAVE STATE;


Nota: Si se crea alguna base de datos PDB con posterioridad, se debe repetir estos pasos.


Conexión desde SQL Developer

Para establecer una conexión a la base de datos XE recientemente instalada, deberemos utilizar los datos informados en el ultimo paso del proceso de instalación:


  • Nombre de Conexión: Usar un nombre que nos permita identificar a que base de datos y con que usuario nos estamos conectando
  • Usuario: Utilizar inicialmente el usuario "System"
  • Contraseña: Utilizar la contraseña provista en el punto 4 del proceso de instalación.
  • Nombre del Host: Si la conexión la estamos haciendo desde el miso equipo donde realizamos la instalación, alcanza con utilizar "localhost". De estar conectándonos desde otro equipo utilizar en nombre o dirección IP apropiada
  • Puerto: utilizar el puerto informado en el ultimo paso del proceso de instalación (se lo identifica por el número en la cadena de conexión, como ser "localhost:1521"). El puerto donde escucha el Listener por defecto es el 1521, pero podría variar si hay mas de un Listener ya instalado.
  • Seleccionar "Nombre del Servicio" e ingresar "XE" para la base de datos contenedor (CDB) o "XEPDB1" para la PDB.

A continuación, al presionar "Probar" debe aparecer un mensaje "Estado: Correcto" en la sección inferior izquierda. Presionar luego "Guardar" para guardar la conexión.




martes, 12 de marzo de 2019

Oracle 19c - Configurando y Manteniendo Automatic Indexing


Como vimos en el post anterior, Auto Indexing es un sistema experto que emula el trabajo que un especialista en performance realiza normalmente en una base de datos, supervisando la carga de trabajo en la base de datos y determinando si hay algún índice que pueda ayudar a mejorarla. Esta nueva característica es una evolución de los Advisors disponibles desde Oracl 10g, y tal como ocurría con los mismos, hay diversas vistas del diccionario de datos que permiten conocer como está configurada esta característica y que índicas han sido creados por la misma.

Vistas de Configuración

Una vez habilitada la opción, podemos ver los detalles de configuracion de la misma consultando la vista "DBA_AUTO_INDEX_CONFIG"
SELECT parameter_name, parameter_value FROM dba_auto_index_config;
PARAMETER_NAME                    PARAMETER_VALUE
AUTO_INDEX_DEFAULT_TABLESPACE
AUTO_INDEX_MODE                   IMPLEMENT
AUTO_INDEX_REPORT_RETENTION       31
AUTO_INDEX_RETENTION_FOR_AUTO     373
AUTO_INDEX_RETENTION_FOR_MANUAL
AUTO_INDEX_SCHEMA
AUTO_INDEX_SPACE_BUDGET           50

Los diferentes parámetros tienen el siguiente uso

  • AUTO_INDEX_MODE: Indica si la funcionalidad de encuentra deshabilitada , habilitada en forma completa (IMPLEMENT) o sólo en forma informativa (REPORT ONLY).
  • AUTO_INDEX_SCHEMA: Indica el o los esquemas para los cuales se habilita o deshabilita la funcionalidad.
  • AUTO_INDEX_REPORT_RETENTION: Cantidad de días para los cuales los logs de actividad de Auto Indexado se mantienen en la base de datos. El valor por defecto es 31 días.
  • AUTO_INDEX_RETENTION_FOR_AUTO: Cantidad de días que los indices creados en forma automática y que no son usados son mantenidos en la base de datos, antes de ser eliminados. El valor por defecto es 373 días.
  • AUTO_INDEX_RETENTION_FOR_MANUAL: Cantidad de días que los indices creados en forma manual y que no son usados son mantenidos en la base de datos, antes de ser eliminados. El valor por defecto es NULL, lo que significa que los indices creados manualmente no son eliminados aunque no sean utilizados.
  • AUTO_INDEX_DEFAULT_TABLESPACE: Tablespace donde se crearán los indices creados en forma automática. Cuando el valor es NULL (opción por defecto) se utiliza el tablespace por defecto.
  • AUTO_INDEX_SPACE_BUDGET: Cuando se usa el tablespace por defecto, porcentaje máximo del mismo que puede ser utilizado por indices creados en forma automática.

Vistas de Log de Actividad


DBA_AUTO_INDEX_EXECUTIONS

La vista "DBA_AUTO_INDEX_EXECUTIONS" posee información sobre todas las ejecuciones del proceso de indexado automático, incluyendo fecha de inicio/fin, status y si se encontró algún error.

SELECT * FROM dba_auto_index_executions ORDER BY execution_start;

DBA_AUTO_INDEX_STATISTICS

Esta vista posee un resumen de la actividad realizada por los procesos de Indexado Automático (espacio utilizado, indices evaluados, indices creados, porcentaje de mejora, etc.).

SELECT * FROM dba_auto_index_statistics WHERE value > 0;

DBA_AUTO_INDEX_IND_ACTIONS

Esta vista muestra los comandos ejecutados para crear índices, teniendo en cuenta los distintos pasos del proceso

  • Creación del indice en estado UNUSABLE para evaluar el plan de ejecución.
  • Reconstrucción del indice (online pero invisible) para evaluar el impacto en las sentencias deseadas.
  • Convertir el índice a VISIBLE para que sea utilizado, si el mismo es aceptado por el proceso.

SELECT * FROM dba_auto_index_ind_actions ORDER BY table_name, action_id;

DBA_AUTO_INDEX_SQL_ACTIONS

Esta vista posee información sobre las sentencias SQL ejecutadas para validad y verificar los indices creados en forma automática

SELECT * FROM dba_auto_index_sql_actions;

Procedimiento "REPORT_ACTIVITY"

Aunque resulta mas sencillo consultar un reporte completo mediante el procedimiento "REPORT_ACTIVITY" del paquete "DBMS_AUTO_INDEX" que consultar cada una de las vistas en forma individual

--------------------------------------------------------------------------------
GENERAL INFORMATION
-------------------------------------------------------------------------------
Activity start : 29-AUG-2018 12.20.40
Activity end : 30-AUG-2018 12.20.40
Executions completed : 13
Executions interrupted : 3
Executions with fatal error : 1
-------------------------------------------------------------------------------
SUMMARY (AUTO INDEXES)
-------------------------------------------------------------------------------
Index candidates : 53
Indexes created (visible / invisible) : 12 (12 / 0)
Space used (visible / invisible) : 3.48 MB (3.48 MB / 0 B)
Indexes dropped : 0
SQL statements verified : 16
SQL statements improved (improvement factor) : 16 (3x)
SQL statements disallowed from auto indexes : 0
Overall improvement factor : 3x
-------------------------------------------------------------------------------
SUMMARY (MANUAL INDEXES)
-------------------------------------------------------------------------------
Unused indexes (visible / invisible) : 10 (8 / 2)
Space used (visible / invisible) : 100 MB (76 MB / 24 MB)
Unusable indexes : 0
-------------------------------------------------------------------------------
18
Sample Report
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
INDEX DETAILS
-------------------------------------------------------------------------------
1. The following indexes were created:*: invisible
-------------------------------------------------------------------------------
--------------------------------------------------------------------------------
| Owner | Table | Index | Key | Type | Properties |
--------------------------------------------------------------------------------
| OPT | T_10K_CP1 | SYS_AI_3cpm0ahgt469g | ROWID_UNIQUE        | B-TREE | NONE |
| OPT | T_10K_CP1 | SYS_AI_3rk4h2m9d49b5 | CHAR_UNIQUE         | B-TREE | NONE |
| OPT | T_10K_CP1 | SYS_AI_5cq2h6jhmznc9 | DATE_UNIQUE         | B-TREE | NONE |
| OPT | T_10K_CP1 | SYS_AI_6vg5wr5nwcqxs | THOUSAND            | B-TREE | NONE |
| OPT | T_10K_CP1 | SYS_AI_agnvzczmz4z0a | TEN,UNIQUE1,UNIQUE2 | B-TREE | NONE |
| OPT | T_10K_CP1 | SYS_AI_bcms9qy98nq1c | VCHAR_UNIQUE        | B-TREE | NONE |
| OPT | T_5K_CP   | SYS_AI_0urcv8chmxu20 | VCHAR_UNIQUE        | B-TREE | NONE |
| OPT | T_5K_CP   | SYS_AI_2pvk34mqdh7pa | TEN,UNIQUE1,UNIQUE2 | B-TREE | NONE |
| OPT | T_5K_CP   | SYS_AI_428hqd6qu531y | THOUSAND            | B-TREE | NONE |
| OPT | T_5K_CP   | SYS_AI_5d2cukrm2gju2 | DATE_UNIQUE         | B-TREE | NONE |
| OPT | T_5K_CP   | SYS_AI_97zrtmcmn5tz6 | CHAR_UNIQUE         | B-TREE | NONE |
| OPT | T_5K_CP   | SYS_AI_cn9fsv12paxcb | ROWID_UNIQUE        | B-TREE | NONE |
--------------------------------------------------------------------------------
-------------------------------------------------------------------------------
VERIFICATION DETAILS
-------------------------------------------------------------------------------
1. The performance of the following statements improved:
-------------------------------------------------------------------------------
Schema Name : OPT
SQL ID : 2vy3tr5kyg88z
SQL Text : select count(*) from t_5k_cp where vchar_unique ='MAN'
Improvement Factor : 2x
PLANS SECTION
-------------------------------------------------------------------------------
Original
-----------------------------
Plan Hash Value : 3944640934
--------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost | Time |
--------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | | |
| 1 | SORT AGGREGATE | | | | | |
| 2 | TABLE ACCESS FULL | T_5K_CP | | | | |
---------------------------------------------------------------------
With Auto Indexes
-----------------------------
Plan Hash Value : 2541075899
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost | Time|
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | | |
| 1 | SORT AGGREGATE | | | | | |
| * 2 | INDEX RANGE SCAN | SYS_AI_0urcv8chmxu20 | | | | |
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
------------------------------------------
* 2 - access("VCHAR_UNIQUE"='MAN')




Algunas consideraciones adicionales


  • La funcionalidad de Automatic Indexing consume CPU, memoria y almacenamiento, por lo que:
    • La tarea esta limitada a sólo una CPU por el Resource Manager Plan
    • Se puede elegir el tablespace donde se almacenan los indices creados en forma automática.
    • Se puede elegir el tablespace temporal donde se construyen los indices creados en forma automática.
  • La funcionalidad de Automatic Indexing  soporta
    • Índices sencillos o concatenados (mas de una columna).
    • Índices basados en funciones.
    • Compresión avanzada en nivel LOW.



Links Utiles