viernes, 21 de febrero de 2020

Nueva forma de licenciamiento de Oracle XE para Linux



Oracle cambió el licenciamiento de Oracle XE para Linux, tal como se explica en la página de licenciamiento. A partir del 20 de febrero, la version Linux ya no se licencia con el modelo "Oracle Technology Network Developer License" (conocido como licencia de OTN) sino que lo hace por el nuevo modelo "Oracle Free Use Terms and Conditions", el cual no requiere aceptar explícitamente la licencia (como se ve en la imagen siguiente, el cual se mantiene para Windows) 



Este cambio permite descargar e instalar Oracle Database XE en linux mendiante el comando YUM sin intervención, como se muestra a continuación:

yum -y localinstall https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-18c-1.0-1.x86_64.rpm”

El anuncio lo hizo hoy Gerald Venzl en el blog de base de datos de Oracle.

jueves, 20 de febrero de 2020

VirtualBox 6.1.4 ya está disponible


Oracle anunció hoy en el blog de virtualización la disponibilidad de la versión 6.1.2 de Virtualbox, la herramienta de virtualización gratuita de Oracle.

VirtualBox se puede descargar en forma gratuita desde el sitio web de Virtualbox, y adicionalmente existen los siguientes recursos:

Las correcciones de errores mas importantes en esta edición incluyen:

  • VBoxManage: se reincorporó la antigua opción "--clipboard" para el comando modifyvm, problema que afectó principalmente a los usuarios de Vagrant.
  • Linux Hosts: soporte Linux Kernel 5.5 agregado
  • Windows Hosts: se reincorporó la posibilidad de ejecutar máquinas virtuales a través de Hyper-V, a expensas del rendimiento.

martes, 18 de febrero de 2020

Oracle 20c - Las mejoras y nuevas funcionalidades mas importantes



A continuación vamos a detallar algunas de las mejoras y nuevas funcionalidades incluidas en Oracle 20c. Sobre algunas de ellas escribiré un artículo específico, pero por lo pronto vamos a ver rápidamente lo que la nueva versión nos trae.

Funcionalidades de Oracle Graph

Como ya fuera anunciado (ver mi artículo "Machine Learning, Spatial y Graph ya no requieren licencias adicionales") Oracle incluye sin costo adicional la funcionalidad de Graph en todas sus ediciones. Oracle Database 20c simplifica la instalación, configuración e implementación de Graph con la introducción de Graph Server y Client Kit, los cuales facilitan a los desarrolladores de aplicaciones comenzar a desarrollar utilizando Graph.


JSON

Oracle Database 20c introduce un  tipo de datos JSON nativo, llamado JSON, optimizado para el procesamiento de consultas y DML,  haciendo que sea más rápido procesar documentos JSON. A partir de 20c, este es el mejor tipo para almacenar documentos JSON grandes en vez de usar "VARCHAR" o "CLOB", evitando conversiones de juegos de caracteres y utilizando menos espacio de almacenamiento.

Puede usar el nuevo tipo de datos "JSON" tanto en SQL como en PL/SQL, pasando datos JSON de SQL a PL/SQL y de regreso a SQL (estático y dinámico). PL/SQL ahora admite la vinculación directa de datos JSON desde interfaces del lado del cliente como Oracle Call Interface (OCI) y Java Database Connectivity (JDBC). JSON puede ser un tipo diferenciador en la resolución de sobrecarga de procedimientos y funciones.

Se puede usar la nueva función SQL "JSON_TRANSFORM" para actualizar partes de un documento JSON. Se debe especificar qué partes modificar, las modificaciones y cualquier valor nuevo. "JSON_TRANSFORM" facilita que una aplicación modifique un documento JSON, sin tener que analizarlo y reconstruirlo. En la mayoría de los casos, también evita un viaje de ida y vuelta entre el servidor y el cliente para todo el documento.

Ahora puede expresar consultas SQL / JSON más complejas y expresar algunas consultas de manera más simple:

  • La nueva función SQL "JSON_SCALAR" acepta una instancia escalar de un tipo de datos SQL y devuelve un valor JSON escalar como una instancia del tipo de datos JSON.
  • Los nuevos métodos de elementos de lenguaje de ruta JSON admiten "JSON_SCALAR": float (), double (), binary (), ymInterval () y dsInterval ().
  • La sintaxis de lenguaje por Path o por Notación de Puntos en JSON admite nuevos métodos de elementos agregados: avg (), count (), minNumber (), maxNumber (), minString (), maxString (), sum ().


Funciones de Agregación y Analíticas

Existen nuevas funciones analíticas y estadísticas agregadas están disponibles en SQL:

  • "CHECKSUM" calcula la suma de verificación de los valores de entrada o expresión.
  • Funciones "KURTOSIS_POP" y "KURTOSIS_SAMP".
  • Funciones "SKEWNESS_POP" y "SKEWNESS_SAMP" son medidas de asimetría en los datos. Cuando la asimetría es positiva, esto significa que los datos están sesgados a la derecha. Cuando la asimetría es negativa, esto significa que los datos se distribuyen a la izquierda.

Todas estas nuevas funciones agregadas admiten las palabras clave "ALL", "DISTINCT" y "UNIQUE", permitiendo escribir código más eficiente y beneficiarse de un procesamiento más rápido en la base de datos.

Las funciones analíticas de ventanas ahora admiten las opciones "EXCLUDE" del estándar de SQL: 2011. La compatibilidad con el estándar ANSI completo permite una migración más fácil de las aplicaciones que se desarrollaron contra otros sistemas de bases de datos que cumplen con el estándar.

Macros SQL 

Puede crear Macros SQL (SQM) para factorizar expresiones y declaraciones SQL comunes en construcciones parametrizadas reutilizables que se pueden usar en otras declaraciones SQL. Las macros SQL pueden ser expresiones escalares, típicamente utilizadas en listas SELECT, WHERE, GROUP BY y HAVING, para encapsular cálculos y lógica de negocios o pueden ser expresiones de tabla, típicamente usadas en una cláusula FROM.

Las macros SQL aumentan la productividad del desarrollador, simplifican el desarrollo colaborativo y mejoran la calidad del código.


Mejoras a operadores de conjuntos SQL (SET)

Los operadores de conjuntos SQL ahora admiten todas las palabras clave según lo definido en ANSI SQL. El nuevo operador "EXCEPT [ALL]" es funcionalmente equivalente a "MINUS [ALL]". Los operadores "MINUS" e "INTERSECT" ahora admiten la palabra clave "ALL".

El pleno cumplimiento de ANSI proporciona una mayor compatibilidad con otros proveedores de bases de datos y hace que la migración a Oracle Database sea más fácil que antes.

Mejoras a In-Memory 

La función Automatic In-Memory (AIM) se ha mejorado significativamente. Oracle Database 20c agrega una nueva opción "HIGH" al parámetro de inicialización "INMEMORY_AUTOMATIC_LEVEL". Con esta configuración, todos los objetos que no tienen una configuración IN-MEMORY preexistente se configuran automáticamente en "INMEMORY MEMCOMPRESS AUTO" de forma predeterminada. AIM luego administra automáticamente los objetos poblados en el almacén de columnas en memoria (IM) utilizando el seguimiento de acceso y las estadísticas de columna. Este es un gran cambio en el comportamiento y aborda una de las preguntas más frecuentes que los clientes han tenido, que es "¿Cómo determino qué objetos llenar en el almacén de columnas de mensajería instantánea?"

Otra mejora significativa es que las tablas externas particionadas o híbrida, la cláusula INMEMORY es compatible tanto a nivel de tabla como de partición. Para las tablas híbridas, el atributo INMEMORY a nivel de tabla se aplica a todas las particiones, ya sean internas o externas. Esta mejora amplía significativamente el soporte para tablas externas en memoria.

Tablas Blockchain

La tabla Blockchain es un nuevo tipo de tabla especializada que proporciona una opción de persistencia altamente resistente a la manipulación directamente en la base de datos Oracle. Permite operaciones de solo inserción, sin actualizaciones y otras modificaciones permitidas, y restringe las eliminaciones.

Para aumentar aún más la resistencia a la manipulación, las filas se encadenan almacenando el hash de la fila anterior en la fila actual, lo que permite a los usuarios verificar cualquier modificación. Los usuarios también pueden firmar opcionalmente el contenido de las filas con firmas basadas en PKI que aprovechan los certificados X.509, y se puede verificar la integridad de la firma y los datos, asegurando así el no repudio



lunes, 17 de febrero de 2020

Oracle 20c - Funcionalidades obsoletas o no soportadas


En este primer artículo sobre Oracle Database 20c vamos a revisar las características que son "deprecadas" u obsoletas (lo que significa que no tendrán nuevo desarrollos ni correcciones pero pueden ser utilizadas tal cual existen en la actualidad, llamadas "deprecated" por Oracle) y las que quedan sin soporte ("desupported" para Oracle, la explicación detallada la podemos encontrar en el blog de Mike Dietrich), lo que significa que ya no deben ser utilizadas ya que puede que Oracle no incluya el código para ejecutarlas o el mismo no se comporte como lo esperado.

Funcionalidades desoportadas o cambios que afectan el uso de Oracle 20c


  • "A partir de Oracle Database 20c, Oracle Database solo es compatible con la arquitectura multi-tenant (CDB)". Este cambio fue anunciado hace tiempo y era esperado que la "nueva" arquitectura reemplace a la arquitectura tradicional. Como consideración adicional, Oracle 20c permite el uso de hasta 3 PDB en una misma instancia sin necesidad de pagar por la opción Multitenant, lo cual permite un cierto grado de consolidación sin necesidad de incurrir en costos adicionales. Todo esto lo expliqué en su momento en el artículo "Noticias de OOW 2019: Multitenant si o si a partir de Oracle 20c".
  • "A partir de Oracle Database 20c, el paquete 'DBMS_OBFUSCATION_TOOLKIT' queda desoportado y se reemplaza con 'DBMS_CRYPTO'". No es una novedad, este paquete fue deprecado en Oracle 10g.
  • "A partir de Oracle Database 20c, quedan sin soporte varias características de la base de datos XML". Las mismas incluyen
    1. Paquete "DBMS_XDBT". No hay reemplazo.
    2. Función de XQuery "ora:contains".Utilice XQuery Full Text en su lugar.
    3. Función SQL "XMLRoot". Utilice la función SQL / XML "XMLSerialize()" con un número de versión en su lugar.
    4. Tablas anidadas almacenadas como tablas ordenadas por índice (IOT). Esto incluye tanto el uso de la opción "DBMS_XMLSCHEMA.REGISTER_NT_AS_IOT", como el uso de la cláusula "NESTED TABLE N STORE AS ... (ORGANIZATION INDEX)" al crear una tabla con la columna de tabla anidada N. En su lugar, almacene columnas de tabla anidada utilizando almacenamiento dinámico (el comportamiento predeterminado para el procedimiento PL/SQL "DBMS_XMLSCHEMA.registerSchema").
    5. Procedimiento PL/SQL "DBMS_XSLPROCESSOR.CLOB2FILE". En su lugar, se debe utilizar el procedimiento "DBMS_LOB.CLOB2FILE".
    6. Función PL/SQL "DBMS_XSLPROCESSOR.READ2CLOB".En su lugar, se debe utilizar el procedimiento "DBMS_LOB.LOADCLOBFROMFILE".
    7. Oracle XML DB Content Connector.


  • "A partir de Oracle Database 20c, "DBMS_LOB.LOADFROMFILE" y LOB Buffering quedan desoportados".
  • “A partir de Oracle Database 20c, el parámetro "IGNORECASE" para el archivo "orapwd" queda desoportado". Todos los archivos de contraseña recién creados deben distinguir entre mayúsculas y minúsculas"

Como consideración adicional, Oracle 20c sólo soporta Oracle Home de tipo Sólo Lectura (ver mi articulo "Oracle 18c - ORACLE_HOME de Solo Lectura"). Antes de Oracle Database 20c, una instalación de Oracle predeterminada combinaba "ORACLE_HOME", "ORACLE_BASE_HOME" y "ORACLE_BASE_CONFIG" en una sola ubicación. A partir de Oracle Database 20c, la única configuración disponible es un "ORACLE_HOME" de solo lectura donde "ORACLE_BASE_HOME" y "ORACLE_BASE_CONFIG" se encuentran por separado de "ORACLE_HOME".


Funcionalidades obsoletas de Oracle 20c



    • "A partir de Oracle Database 20c, los algoritmos mas antiguos de cifrado y hash (como ser MD4, MD5 y RC4) contenidos en "DBMS_CRYPTO" están en desuso".
    • “La auditoría tradicional está en desuso en Oracle Database 20c. Oracle recomienda que utilice auditoría unificada, que permite una auditoría selectiva y más efectiva dentro de Oracle Database". Hay que tener en cuenta que los parámetros de inicialización y las vistas asociadas a esta funcionalidad también son consideradas obsoletas.
    • "A partir de Oracle Database 20c, el protocolo de seguridad de la capa de transporte versión 1.0 (TLS 1.0) está en desuso".

    viernes, 14 de febrero de 2020

    Ya se viene Oracle 20c... está disponible en Oracle Cloud!

    Oracle liberó en el día de ayer la versión 20c en modo "preview" para pruebas en el entorno Cloud en algunas regiones (mi entorno Free Cloud en Brasil todavía no la tiene).


    Lo interesante es que al liberar la versión ya se encuentra disponible toda la documentación, por lo que podemos comenzar a estudiar lo que se viene en esta nueva versión.

    Lo recomendable es comenzar por la sección "What's New" donde rápidamente encontraremos los cambios mas significativos.

    También resulta importante consultar la sección "Behavior Changes, Deprecated and Desupported Features for Oracle Databas" donde se detallan todas las funcionalidades que son deprecadas o dejan de ser soportadas, destacándose en Oracle 20c que ya no se puede tener arquitecturas Non CDB.


    martes, 11 de febrero de 2020

    Webcast Gratuito! Que hay de nuevo en Oracle 20c




    El mismo será dictado el próximo 19 de febrero, a las 15 hs. (de Argentina) y se explorarán los cambios y las nuevas características que se esperan en la versión 20c, incluidas las mejoras en la arquitectura multitenant, almacenamiento y uso de JSON, Machine Learning y más.

    Para registrarse o ver mas información, seguir este enlace.