miércoles, 5 de abril de 2023

SQLcl 23.1 ya está disponible!


La ultima versión de la herramienta de línea de comandos para conectarse a bases de datos Oracle puede descargarse desde este link (el cual siempre tiene la ultima versión) o desde la página de descargas de SQLcl. Otros links útiles son:


¿Que hay de nuevo?

En esta versión se solucionan muchos bugs reportados y adicionalmente incorpora algunas nuevas características como se menciona en las Release Notes, varias de ellas facilitando las tareas de CI/CD para Oracle APEX.


Expansión del Comando CONNECT

Este comando ahora acepta un nombre de TNSNAMES, una cadena easyconnect o una cadena de TNS. Para ver mas detalles se puede consultar la documentación o la ayuda de la herramienta:

help connect


Mejoras a Liquibase

Varias mejoras en la integración con Liquibase se incorporan en esta versión. Entre ellas destacamos:

  • Generación de objetos de APEX
  • Mas opciones para comandos:
    • -fail-on-error | -foe {TRUE|FALSE}
    • -runalways | -ra {TRUE|FALSE}
    • -split | -sp {TRUE|FALSE}
    • -contexts | -co
    • -labels | -la
  • Mejoras a apex_install.xml 
    • Mas nivel de detalle 
    • nueva opción runApexScript
  • Nuevas opciones en el comando update para controlar la forma en que se importa una aplicación.


Mejoras al  Comando APEX

El comando export fue separado en 9 comandos, 6 de ellos para exportar datos y tres para consultas:

export|ex.                    (Export APEX applications and or workspaces)

export-all-applications|exaa  (Export all applications in a workspace)
export-all-workspaces|exaw.   (Export all workspaces without their applications, structure only)
export-application|exa        (Export all or the parts of an application)
export-components|excom.      (Export specific nents within an application)
export-feedback|exf.          (Export workspace feedback)
export-workspace|exw.         (Export workspace without the applications, structure only)
list|ls                       (Generate a list of available components)
log|lo                        (Reports APEX application usage from APEX_WORKSPACE_LOG_SUMMARY)
version|ve                    (Display version information)


martes, 4 de abril de 2023

Oracle Database 23c Free - Developer Edition



Ayer Oracle hizo un importante anunció respecto a Oracle 23c!!! Ya se encuentra disponible la Free - Developer Edition de la misma, la cual es sucesora de la famosa Oracle XE Edition.

A diferencia de oportunidades anteriores, donde lo primero en ser liberado eran las ediciones Enterprise Edition y Standard Edition, Oracle privilegió esta nueva edición gratuita para que los desarrolladores y usuarios en general de bases de datos puedan comenzar a probar algunas de las nuevas características de Oracle 23c

Esta nueva edición gratuita se suma a Oracle Autonomous Database disponible en la suscripción Oracle Always Free de Oracle Cloud Infrastructure, convirtiéndose en el único proveedor de base de datos convergente tanto en la nube como on-premise.

Oracle 23c Free - Developer Edition está disponible para ser utilizada en plataforma Linux (muy pronto estará disponible también en Windows) de la siguientes maneras:

Nota: Al ser una edición "Developer" no necesariamente contiene todas las funcionalidades que estarán disponibles en Oracle Database 23c en sus ediciones Enterprise y Standard. Es probable que exista una actualización de la edición Free - Developer Edition una vez que las otras ediciones se encuentren disponibles. Para consultar las opciones y características actualmente disponibles en Oracle Database 23c Free - Developer Edition consultar la documentación de licenciamiento. 

Restricciones

Al igual que Oracle Database XE Edition, Oracle Database Free - Developer Edition tiene restricciones en cuanto a los recursos que puede utilizar:

  • 2 cores de procesador.
  • 12 GB de almacenamiento.
  • 2 GB de RAM.
  • Sólo una instancia por entorno (lógico). Un entorno lógico es un servidor físico o una VM o contenedor.

Principales Características

Lo primero que vale la pena mencionar es que la versión 23c va a ser la próxima versión de tipo Long Term Support, por lo que será el "caballito de batalla" de Oracle en los próximos años y la versión a utilizar por grandes organizaciones que requieran una plataforma estable.

A continuación listaremos las principales nuevas características de Oracle Database 23c Free - Developer Edition, algunas de las cuales ya había adelantado en el artículo "¿Qué mejoras puede incluir Oracle 23c?". Muy pronto estaré subiendo artículos sobre estas nuevas características y funcionalidades:


JSON Relational Duality

Se puede acceder a los datos y actualizarlos de forma transparente como documentos JSON o tablas relacionales. Los desarrolladores se benefician de los puntos fuertes de ambos, que son más simples y potentes que el mapeo relacional de objetos (ORM).

Operational Property Graph

Los desarrolladores ahora pueden crear aplicaciones de análisis gráfico en tiempo real contra datos operativos directamente en Oracle Database, utilizando sus capacidades de seguridad, alta disponibilidad y rendimiento líderes en la industria.

Soporte de microservicios

Junto con el soporte ya completo de Oracle para microservicios, la nueva funcionalidad simplifica la implementación de transacciones entre servicios.

Reservas de valor de columna sin bloqueo

Las reservas de valor de columna sin bloqueo permiten que las aplicaciones reserven parte de un valor en una columna sin bloquear la fila; por ejemplo, reservar parte del saldo de una cuenta bancaria o reservar un artículo en el inventario sin bloquear todas las demás operaciones en la cuenta bancaria o el artículo.

OKafka

Las aplicaciones de Kafka ahora pueden ejecutarse directamente en la base de datos de Oracle con cambios mínimos de código, aprovechando las colas de eventos de transacciones (TxEventQ) de alto rendimiento.

Procedimientos almacenados de JavaScript

Los desarrolladores ahora pueden crear procedimientos almacenados usando JavaScript en la base de datos. Esta funcionalidad también permite a los desarrolladores aprovechar la gran cantidad de bibliotecas de JavaScript.

Dominios SQL

Los dominios de SQL permiten a los desarrolladores declarar el uso previsto de los datos (columnas) de forma centralizada y ligera. Por ejemplo, declarar que una columna contiene un correo electrónico, URL, contraseña, moneda, etc. Las aplicaciones pueden usar dominios SQL para generar código o verificar valores automáticamente.

Muchas mejoras de tipo de datos y SQL

Las siguientes son algunas de las muchas mejoras de tipo de datos y SQL:
  • SQL BOOLEANO Tipo de datos
  • Uniones directas para instrucciones UPDATE y DELETE
  • Compatibilidad con Unicode 15.0
  • SELECT sin cláusula FROM
  • GROUP BY Columna Alias o Posición
  • Hasta 4096 Columnas por Tabla

Algoritmos de aprendizaje automático mejorados

Las nuevas mejoras en los algoritmos de Oracle In-Database Machine Learning simplifican la categorización de texto y datos al tiempo que ofrecen un mejor rendimiento y flexibilidad.

Privilegios de esquema

Los privilegios del sistema ahora se pueden otorgar a nivel de esquema. Esta función simplifica el proceso de administración de privilegios y, como resultado, facilita la protección de las bases de datos.

Rol de desarrollador

Un nuevo rol permite a los administradores asignar rápidamente a los desarrolladores solo los privilegios que necesitan para diseñar, construir e implementar aplicaciones para Oracle Database.

Integración de Azure AD OAuth2

La nueva funcionalidad permite el inicio de sesión único en instancias de servicio de base de datos de Oracle o bases de datos de Oracle locales desde la nube de Microsoft Azure.


Recursos Adicionales

Oracle Database 23c Free - Developer Edition es similar a Oracle Database XE Edition, siendo posible usarla en forma completamente gratuita pero sin contar con soporte oficial por parte de Oracle. Pese a ello, el soporte de la comunidad esta disponible en los foros de Oracle Community y tambien se encuentra disponible la documentación actualizada.

lunes, 3 de abril de 2023

Resumen de Mejoras del 1º Trimestre de 2023 a Oracle Autonomous Database

 


Comenzó un nuevo año y Oracle continúa incorporando nuevas mejoras y cambios en Oracle Autonomous Database. Vamos a analizarlas una por una a continuación.


Mejoras de Enero de 2023

Enviar Notificaciones de Slack

Oracle Autonomous Database puede enviar notificaciones (ya sean mensajes o el resultado de ejecutar una query a un canal de Slack.


Para ver más detalles se puede consultar la documentación oficial.


Clonar ADB a otra Región usando una Copia de Seguridad

La opción de clonar una base de datos usando una copia de seguridad como origen ahora permite crear el clon en otra región.


Para ver más detalles se puede consultar la documentación oficial.

Configurar una IP Privada para un EndPoint Privado

Ahora es posible configurar un endpoint privado cuando se crea (o se clona) una instancia de Autonomous Database. Tambien si una instancia existente está configurada para usar un endpoint público, puede cambiar la configuración para usar un punto final privado.


Opcionalmente, cuando configura un punto final privado, puede ingresar una dirección IP privada personalizada. Proporcionar una dirección IP personalizada le permite conservar una dirección IP privada existente cuando migra desde otro sistema.

Para ver más detalles se puede consultar la documentación oficial.

Herramientas Configurables

Oracle Autonomous Database incluye un sinnúmero de herramientas (APEX, Database Actions, Graph Studio, etc. etc.), las cuales ahora pueden ser habilitadas o no tanto al momento de crear o clonar una instancia o una vez que la misma ya fue creada.

La habilitación de las mismas se encuentra en la sección de Opciones Avanzadas:


Para ver más detalles se puede consultar la documentación oficial.


Mejoras de Febrero de 2023

Nuevos Eventos

Se crearon tres nuevos eventos críticos para notificar a los administradores de bases de datos autónomas cuando se produce un numero elevado de logins fallidos (evento FailedLoginWarning) y cuando comienza y termina una re-ubicación (eventos InstanceRelocateBegin e InstanceRelocateEnd) de la base de datos a otra instancia de Exadata debido a tareas de mantenimiento, actualización o una falla de hardware, o para poder escalar verticalmente.

Asimismo, se creó un nuevo evento informativo (InactiveConnectionsDetected) que se dispara cuando el numero de conexiones inactivas supera un porcentaje del total de conexiones a la base de datos autónoma.

Todos los eventos (tanto críticos como informativos) de una base de datos autónoma pueden consultarse en la pagina "Events on Autonomous Database".

Actualización Automática de Archivo de Zonas Horaria

Esta nueva configuración permite habilitar o no la actualización automática del archivo de zonas horarias.

Para ver más detalles se puede consultar la documentación oficial.



Uso de Vault Secret para almacenar contraseña de ADMIN

Al momento de crear o clonar una nueva base de datos autónoma, es posible utilizar una contraseña almacenada en Vault Secret para el usuario ADMIN de la base de datos en vez de ingresarla manualmente.

Por el momento esta funcionalidad está solo disponible a través de la API y no desde la consola de OCI.

Para ver más detalles se puede consultar la documentación oficial.

Nueva Métrica de Máximo Espacio Reservado para la Base de Datos Autónoma

Esta nueva metrical llamada StorageMax permite ver la cantidad máxima de espacio que se ha reservado para cada base de datos autónoma.

Para ver más detalles se puede consultar la documentación oficial.

Mejoras de Marzo de 2023

Uso de Directorios para Carga de Datos en DBMS_CLOUD

Los procedimientos de DBMS_CLOUD ahora aceptan un directorio definido en la base de datos autónoma adicionalmente al uso de URI a una ubicación de Object Store. Estos directorios puede crearse en NFS (network file system) conectados a la instancia de Autonomous Database.

Para ver más detalles se puede consultar la documentación oficial.

Backups Permanentes (Long Term Backups)

Esta nueva funcionalidad permite mantener backups de la base de datos autónoma por hasta 10 años. Esta funcionalidad fue explicada en detalle en el artículo "Long Term Backups en Autonomous Database" de este blog.

Oracle Client for Microsoft Tools

Esta nueva herramienta gráfica permite una configuración mas sencilla de ODP.Net en entornos Microsoft. Con ella resulta muy facil configurar el acceso a bases de datos autónomas desde herramientas de Microsoft como PowerBI, Excel o SQL Server Analysis Services.

La misma se encuentra disponible para descargar en el nuevo sitio de Oracle Client for Microsoft Tools y la documentación sobre la misma ya esta disponible aquí.

Guardar una ADB como Stack en OCI

Ahora es posible guardar la definición de una base de datos autónoma al momento de provisionarla, para poder crear nuevas instancias en forma sencilla desde Resource Manager.

Esta funcionalidad esta disponible para las bases de datos autónomas en Infraestructura Dedicada tal como lo muestra la imagen:


Para ver más detalles se puede consultar la documentación oficial.

Detalles de Tenancy disponibles desde una Base de Datos Autónoma

Ahora es muy sencillo conocer detalles sobre posible la Tenacy donde se encuentra una base de  datos autónoma mediante el uso de la vista v$pdbs:


Para ver más detalles se puede consultar la documentación oficial.

Real Application Testing Capture and Replay disponible 

Se puede utilizar la característica Capture and Replay para capturar la actividad en una base de datos autónoma y re-aplicar la misma en otra base de datos autónoma a los fines de testear el comportamiento de la misma ante una carga de datos dada. Esto permite validar el funcionamiento de nuestras aplicaciones en una instancia con mas o menos recursos, distinto nivel de versión o patchs, o ubicada en otra región de Oracle Cloud.

Para ver más detalles se puede consultar la documentación oficial.

Exportar datos en formato Parquet a Cloud Object Storage

El procedimiento "DBMS_CLOUD.EXPORT_DATA" permite exportar a Cloud Object Storage contenidos de nuestra base de datos autónoma, incluyendo ahora el formato Parquet aparte de los existentes JSON , CSV y XML.

Para ver más detalles se puede consultar la documentación oficial.

Politica de Disaster Recovery basada en Backups

Mediante la misma es posible instanciar una base de datos en caso de failover o switchover. Es una opción mucho mas barata que implementar Data Guard aunque con un mayor tiempo de recuperación (RTO).

En caso de que la segunda instancia se cree en la misma región, este servicio no tiene costo adicional.

Para ver más detalles se puede consultar la documentación oficial.

Cloud Links

Esta es una nueva forma de acceder (en modo sólo lectura) a datos disponibles en otra instancia de Autonomous Database. Podemos definir accesos por region, tenancy, compartimento o base de datos autónoma.

Para más detalles les recomiendo consultar el articulo "Cloud Links en Autonomous Database" en este blog.

jueves, 30 de marzo de 2023

Oracle REST Data Services (ORDS) 23.1 ya está disponible



Oracle anunció hoy la disponibilidad de Oracle REST Data Services (ORDS) 23.1. ORDS es una herramienta que sirve de puente entre HTTPS y las bases de datos Oracle, proporcionando una API REST de gestión de bases de datos que incluye SQL Developer Web, una puerta de enlace PL/SQL, SODA para REST y la capacidad de publicar servicios web RESTful para interactuar con los datos y los procedimientos almacenados en la base de datos.

Este es el primer producto relacionado con bases de datos liberado en el año 2023, pero pronto tendremos novedades como ser SQL Developer 23.2 y Oracle Database 23c!

Descarga e Información Adicional

La página de descarga de ORDS ya fue actualizada a la versión 23.1, y adicionalmente se puede utilizar el link para descargar la ultima versión en forma directa.


Otros links útiles son:

¿Qué hay de nuevo en ORDS 23.1?

Esta es la lista de mejoras y nuevas funcionalidades en ORDS 23.1:
  • Actualizaciones de componentes:
    • JDBC/UCP 21.10.0.0.230302
    • Apache Commons FileUpload 1.5
    • antlr4-runtime 4.11.1
    • Oracle Mongo DB Listener 230302.1319
  • Database API - Exportar e importar aplicaciones APEX.
  • Database Actions: Sign-In/Out optimizado.
  • Database Actions: Exportar REST workshop y Esquema.
  • Database Actions: Soporte de Multilingual Engine (MLE) en Oracle Database 23c.
  • ORDS: Soporte extendido para AutoREST con JSON Relational Duality Views en Oracle Database 23c.
Como verán, ya incluye un par de características para incorporar nuevas funcionalidades que estarán disponibles en Oracle Database 23c.

Cloud Links en Autonomous Database

En el día de ayer Oracle introdujo una nueva funcionalidad que permite acceder remotamente en forma sencilla a datos disponibles en bases de datos autónomas sin necesidad de crear database links entre ellas. Esta nueva funcionalidad se llama Cloud Links y permite "publicar" en una base de datos autónoma un objeto en particular, el cual puede ser accedido por otras bases de datos autónomas.

¿Cómo se crea un Cloud Link?

Asumamos que tenemos un sistema con una tabla de Empleados y una vista vEmpleados que muestra toda la información de la tabla excepto la columna salario, como mostramos a continuación:



Nuestro objetivo es permitir a otras bases de datos autónomas acceder a las mismas.

Otorgando Permisos

El primer paso es otorgarle (con el usuario ADMIN de ADB) permiso al usuario dueño de los objetos que queremos compartir para poder "registrar" objetos en Cloud Link. Esto se hace utilizando el procedimiento "GRANT_REGISTER" del paquete "DBMS_CLOUD_LINK_ADMIN". En nuestro ejemplo, le daremos permiso al usuario DEMOLINK que es el dueño de los objetos que deseamos compartir:

BEGIN
    DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER(
       username => 'DEMOLINK',
       scope    => 'MY$REGION');
END;
/
En el parámetro Scope puede tener los valores "MY$COMPARTMENT" (sólo el compartimento), "MY$TENANCY" (solo la Tenancy) o "MY$REGION" (la región) los cuales definen el público potencial de los Cloud Links que podrá crear el usuario.

Adicionalmente, debemos otorgar permiso al usuario para ejecutar el paquete de administración de Cloud Links:

GRANT EXECUTE ON DBMS_CLOUD_LINK TO DEMOLINK;


Registrando un Objeto

Una vez otorgados estos permisos, y conectados con el usuario dueño de los objetos que queremos compartir, tenemos que registrar los mismos en Cloud Link usando la siguiente sintaxis:

BEGIN
   DBMS_CLOUD_LINK.REGISTER(
    schema_name => 'DEMOLINK',
    schema_object  => 'EMPLEADOS',
    namespace   => 'RRHH', 
    name        => 'EMPLEADOS',
    description => 'Detalle de Empleados.',
    scope       => 'MY$COMPARTMENT' );
END;
/
BEGIN
   DBMS_CLOUD_LINK.REGISTER(
    schema_name => 'DEMOLINK',
    schema_object  => 'VEMPLEADOS',
    namespace   => 'RRHH', 
    name        => 'RESUMEN_EMPLEADOS',
    description => 'Resumen de Empleados.',
    scope       => 'MY$TENANCY' );
END;
/
Debemos proporcionar los siguientes datos al momento de "registrar" un objeto en Cloud Links:

  • Schema_name: Nombre del esquema del objeto que deseamos compartir.
  • Schema_obect: Nombre del objeto que deseamos compartir.
  • Namespace: Es un nombre que agrupa objetos disponibles en Cloud Links. En este caso, usaremos RRHH para referirnos a la información de Recursos Humanos a la que pertenecen tanto la tabla como la vista de empleados.
  • Name: Es el nombre que queremos utilizar para compartir el objeto, no tiene por que coincidir.
  • Description: Descripción del objeto compartido.
  • Scope: Define el alcance con el cual se comparte el objeto. Puede ser "MY$COMPARTMENT" (sólo el compartimento), "MY$TENANCY" (solo la Tenancy) o "MY$REGION" (la región) o usar directamente un OCID (identificador de Oracle Cloud).

En el ejemplo anterior, registramos la tabla Empleados para que esté disponible en el mismo compartimento que la base de datos autónoma (usando MY$COMPARTMENT) y registramos la vista (que no contiene el salario) para que esté disponible en toda la Tenancy.

Una vez registrados los objetos, puede tardar hasta diez minutos para que los mismos estén disponibles para las otras bases de datos. Podemos consultar las registraciones disponibles usando la siguiente vista:

SELECT * FROM DBA_CLOUD_LINK_REGISTRATIONS;

¿Cómo se Accede a un Cloud Link?

Definir quién puede acceder a objetos

Para poder acceder a objetos compartidos mediante Cloud Link, es necesario darle permiso al usuario deseado mediante la siguiente sintaxis:

EXEC DBMS_CLOUD_LINK_ADMIN.GRANT_READ('READLINK');
En este caso, le permitimos al usuario READLINK acceder a los Cloud Links que esten disponibles en su Compartimiento / Tenancy / Región.

Accediendo a los objetos

Una vez hemos autorizado al usuario a acceder a Cloud Links, podemos consultar los mismos usando la siguiente sintaxis:

SELECT [* | columna1, columna 2] FROM <Namespace>.<Name>@cloud$link;
En nuestro caso, la sintaxis sería:

SELECT * FROM RRHH.EMPLEADOS@cloud$link;
Lo cual devuelve lo siguiente:



Como vemos, en la base de datos donde queremos consultar el Cloud Link no debemos definir ningún Database Link ni conocer nada en particular del recurso al que queremos acceder, solo debemos saber su namespace y nombre y estar dentro del Compartimento, Tenancy o Región donde el mismo fue compartido conectados con un usuario que puede acceder a Cloud Links.

A considerar...

Hay varias cosas a considerar al utilizar Cloud Links, pero las más importantes a tener en cuenta son:
  • Los Cloud Links son de sólo lectura, por lo que si debemos modificar datos tenemos que seguir usando Database Links.
  • Si se borra y vuelve a crear una tabla que está publicada con Cloud Link, hay que volver a registrar la misma aunque se vuelva a crear con el mismo nombre.

Documentación

La documentación de Cloud Links incluye todos los pasos necesarios para utilizar los mismos.