lunes, 9 de septiembre de 2024

APEX 24.1 Patchset Bundle #4 ya está disponible!

Este conjunto de patchs agrupado bajo el número de patch 36695709 fue liberado hace unas pocas horas, y está disponible sólo desde la página de soporte de Oracle en este link. Una vez aplicado el patchset, la versión de APEX es actualizada a 24.1.4. Como habrán notado, mí artículo anterior sobre APEX anunciaba el patchset 24.1.2, por lo que me olvidé de escribir uno para la versión 24.1.3, lo bueno es que los patchsets son acumulativos y al instalar la versión 24.1.4 incluye todos los cambios de 24.1.3.

Este patchset será aplicado automáticamente a las instancias de APEX de Oracle Autonomous Database en Oracle Cloud que ya estén usando APEX 24.1.

Se puede consultar la lista de las correcciones incluidas en el patchset bundle en este link.

Oracle APEX 24.1 está disponible desde el 17 de Junio (lo anunciamos en el artículo "APEX 24.1 Disponible en Oracle Cloud y para descargar!!!") y puede ser descargada desde la página de descargas de Oracle APEX. 

miércoles, 4 de septiembre de 2024

Resumen de Mejoras de Agosto 2024 a Oracle Autonomous Database

En este artículo vamos a analizar las mejoras y cambios en Oracle Autonomous Database incluidas durante el mes de Agosto


Utilizar Database In-Memory con ADB

Autonomous Database ahora incluye la opción In-Memory, la cual mejora significativamente el rendimiento para análisis en tiempo real y cargas de trabajo mixtas. Esta opción está disponible en bases de datos autónomas con el modelo ECPU de compute y con un mínimo de 16 ECPUs

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


Ver Información de Red en la Consola de OCI

En la consola de Oracle Cloud Infrastructure puede ver la información de red de la base de datos autónoma.

    Ejemplo de Información para ADB en Red Pública


    Ejemplo de Información para ADB en Endpoint Privado


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


Mejoras del Script de Cloud Shell para Crear Credenciales

El script de Cloud Shell para crear credenciales adb-create-cred.sh que se usa para crear credenciales nativas de OCI y tokens de autenticación en Autonomous Database admite nuevos argumentos: nombre de usuario y credencial.

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


Métrica de Retraso de Peer en Disaster Recovery

La métrica PeerLag muestra el tiempo total de retraso (en segundos) que el Peer de recuperación ante desastres tiene con respecto a su base de datos principal.

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


Actualización Mediante Clonación de Oracle Database 19c a Oracle Database 23ai

Cuando clona una instancia de Autonomous Database y la versión de la base de datos de origen es Oracle Database 19c, en las regiones donde Oracle Database 23ai está disponible, puede elegir Oracle Database 19c u Oracle Database 23ai para la clonación.

En este ejemplo, tenemos una base de datos autónoma version Oracle 19c con nombre "TJHOLQVYIM8Q88VL":


Elegimos la opción de clonar la misma, con un nuevo nombre Target23ai:


Y a continuación, podemos elegir mantener la versión 19c o actualizar a 23ai (siempre y cuando la versión 23ai ya se encuentre disponible en la región donde estamos creando el clon):

Para más detalles consultar la documentación oficial sobre actualización clonando desde una base de datos o actualización clonando desde un backup.


Operaciones de Exportación e Importación Ejecutadas como JOBs en Data Transform

Ahora puede usar la página Trabajos para ver el estado del proceso de exportación o importación que se está ejecutando actualmente.

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





martes, 3 de septiembre de 2024

Resumen de Mejoras de Julio 2024 a Oracle Autonomous Database

Tal como mencionamos en el artículo anterior sobre mejoras a ADB, vamos a comenzar a informar las mejoras y cambios en Oracle Autonomous Database mes a mes en vez de en forma trimestral, aunque en este caso se me juntaron los posts de novedades Julio y el de Agosto...


Mejoras a Data Studio en Database Actions

Se incorporaron nuevas funcionalidades y mejoras a la herramienta de Data Studio, las cuales detallamos a continuación

Nueva Página de Catálogo

La misma incluye la funcionalidad de búsquedas por facetas para facilitar el filtrado de los datos a utilizar, la presentación de datos por tipos de entidad y mejores valores predeterminados para las características del catálogo. La documentación incluye una explicación detallada del uso de la herramienta.

Soporte de Tipo de Datos Booleano

Este tipo de datos es nuevo en Oracle Database 23ai, y la herramienta ahora permite importar datos Booleanos y mapearlos a este tipo de datos.

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

Carga de Datos a Partir de Imágenes

Esta funcionalidad permite interpretar imágenes con información en forma tabular y convertirlas a tablas relacionales. Los formatos de archivo soportados son PDF, Tif y JPEG.

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

Carga de Datos de Tipo Vector

La herramienta de carga de datos admite la carga en el tipo de datos VECTOR de Oracle Database 23ai.

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


Carga de Datos desde Archivos Iceberg

Data Studio ahora puede vincular y crear una tabla externa en el almacén de objetos o cargar tablas Iceberg desde él.

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


Soporte de Rectify Geometry en Carga de Datos a Partir de Archivos GeoJSON

Data Studio soporta la función RECTIFY de GeoJSON así como el soporte de expresiones de Área y Longitud.

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


Detección de Idioma de Origen Usando OCI AI

Data Studio permite agregar expresiones a las tablas destino para identificar el lenguaje utilizado en una columna de datos, mediante el uso del servicio de lenguaje de OCI.

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


Mejoras de Data Studio para la administración de AWS Glue

Ahora puede agregar un nuevo catálogo de Glue y sincronizar con un catálogo de Glue desde la herramienta Data Studio.

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


Formato de URL de almacenamiento de objetos actualizado en DBMS_CLOUD

Autonomous Database admite los formatos de URI de almacenamiento de objetos de Oracle Cloud Infrastructure actualizados en DBMS_CLOUD para:

  • OCI nativo
  • Swift
  • Compatible con S3
  • Solicitudes autenticadas previamente (PAR)

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


Mejoras de URL de Solicitud Preautenticada (PAR)

Las mejoras de URL de solicitud preautenticada (PAR) incluyen:


Indexación de Texto y Búsqueda en Archivos JSON en Object Storage

Ahora es posible crear un índice de búsqueda JSON en documentos que residen en archivos almacenados en Object Storage, lo que le permite buscar campos en sus documentos JSON mediante JSON_TEXTCONTAINS y usar comodines en su búsqueda.

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


Migrar Aplicaciones de Bases de Datos no Oracle a Autonomous Database

Autonomous Database puede traducir las sentencias SQL escritas para una base de datos SQL no Oracle a Oracle SQL.

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


Servicio de Recuperación ante Desastres OCI Full Stack

Puede habilitar el servicio de recuperación ante desastres Full Stack de Oracle Cloud Infrastructure en Autonomous Database.

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


Uso de RESULT_CACHE para Almacenar en Caché los datos de un Consumidor de Cloud Links

Puede habilitar el almacenamiento en caché en un consumidor de conjunto de datos para almacenar en caché los resultados de una consulta o de un fragmento de consulta que accede a los datos de Cloud Link.

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


Actualización de Documentación : Información de Conexión de Aplicación Go

Ahora es posible conectar aplicaciones Go a su instancia de Autonomous Database con una billetera (mTLS) o sin billetera (TLS).

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


Actualización de Links de Bases de Datos de Servicios Heterogeneos Administrados por Oracle

Autonomous Database permite conectividad heterogénea administrada por Oracle con vínculos de base de datos para Azure; los dos parámetros opcionales incluyen: auth_method y domain para admitir la autenticación NTLM/AD.

Autonomous Database permite conectividad heterogénea administrada por Oracle con vínculos de base de datos para Snowflake; los parámetros opcionales incluyen: role, schema y warehouse. Estos valores especifican un valor de esquema, rol o almacén diferente al predeterminado.

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


Oracle Autonomous Database 23ai Disponible en Modo Pago

Oracle Database 23ai se encontraba disponible solo en modo Free Tier, pero ahora es posible utilizar la nueva versión de base de datos en modo pago en la mayoría de las regiones de Oracle Cloud.

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


lunes, 29 de julio de 2024

Ya está disponible Oracle SQL Developer extension for VS Code 24.2

Hace unas horas está disponible en Marketplace de Visual Studio Code la nueva versión de la extensión SQL Developer.

La extensión puede ser descargada desde el Marketplace de Visual Studio code en siguiente link.

La característica mas importante de esta versión es la interface gráfica para JSON Relational Duality Views, lo cual permite:

  • Construir o editar vistas existentes
  • Generar código SQL o GraphQL
  • Probar y consultar las vistas
  • Generar diagramas para las vistas
  • Editar las propiedades para cada atributo

Adicionalmente se han resuelto muchos bugs y errores reportados por los usuarios.



jueves, 11 de julio de 2024

Reducir el tamaño de tablespace BIGFILE en Oracle 23ai

Hace unas semanas, en el artículo "Tablespaces BIGFILE por Defecto en Oracle 23ai" discutimos un cambio en Oracle Database 23ai, donde los tablespaces creados por los usuarios son por defecto de tipo BIGFILE. Ahora vamos a ver una importante mejora en Oracle 23ai que nos permite reducir el tamaño de los tablespaces BIGFILE cuando se ha liberado espacio en los mismo, por más que el espacio no esté al final del tablespace, como ocurría anteriormente.


Preparación del Escenario


Llenando el Tablespace

En este caso, nos conectamos a una base de datos Oracle 23ai y creamos un tablespace de tipo BIGFILE con la siguiente sintaxis:

CREATE TABLESPACE SHRINKTBSP DATAFILE 'SHRINK_.dbf' SIZE 10M AUTOEXTEND ON;

Como explicamos en el articulo mencionado anteriormente, en Oracle 23ai no es necesario especificar BIGFILE al momento de crear tablespace ya que por defecto es el nuevo formato. Esto lo podemos validar rápidamente con la siguiente consulta:

SELECT t.tablespace_name, t.bigfile, d.blocks FROM dba_tablespaces t JOIN dba_data_files d ON d.tablespace_name = t.tablespace_name WHERE t.tablespace_name = 'SHRINKTBSP';

Podemos ver que el tamaño del tablespace es de 1280 bloques de 8 kilobytes. 

A continuación, vamos a crear una tabla "t1" con un tamaño considerable, para ello haremos un producto cartesiano sobre la vista DBA_SEGMENTS del diccionario de datos:

CREATE TABLE t1 TABLESPACE SHRINKTBSP AS SELECT s.* FROM dba_segments s CROSS JOIN dba_segments x;

Esta tabla ocupa aproximadamente 2,5 gigabytes. Luego creamos una segunda tabla llamada "t2" con un script similar pero con un tamaño menor, cercano a los 200 megabytes:

CREATE TABLE t2 TABLESPACE SHRINKTBSP AS SELECT s.* FROM dba_segments s CROSS JOIN dba_sequences q;

Una vez creadas ambas tablas, vamos a consultar nuevamente el tamaño total del tablespace (agregamos al número de bloques el tamaño en megabytes):

SELECT t.tablespace_name, t.bigfile, d.blocks, ROUND(d.bytes / 1024 / 1024 ) AS MBytes FROM dba_tablespaces t JOIN dba_data_files d ON d.tablespace_name = t.tablespace_name WHERE t.tablespace_name = 'SHRINKTBSP';

Podemos ver que el tablespace creció de 10 megabytes a más de 3000. De ese espacio, podemos ver cuanto se encuentra libre con la siguiente sentencia:

SELECT f.tablespace_name, ROUND(f.bytes / 1024 / 1024 ) AS MBytes
FROM dba_free_space f
WHERE f.tablespace_name = 'SHRINKTBSP';

Rápidamente podemos confirmar que de los 3000 MB del tablespace, sólo algo mas de 50 se encuentran libres y el resto ocupado.


Liberando Espacio en el Tablespace

A continuación, vamos a liberar espacio en el tablespace al truncar la tabla "t1" (la cual fue creada primero):

TRUNCATE TABLE t1;

Esta operación elimina los datos de la tabla "t1", dejando unos 2500 megabytes de espacio libre en el medio del datafile. Podemos verificar esto ejecutando nuevamente las consultas que nos muestran el tamaño del tablespace (que no varió) y el espacio libre en el mismo:

Vemos que ahora tenemos seis chunks de espacio libre en vez de dos, los cuales suman más de 2500 megabytes.

Y por último, corroboramos a nivel sistema operativo el tamaño del datafile:


Achicando el Tablespace con SHRINK


Estimando el Espacio Libre

El primer paso para "recuperar" ese espacio libre y achicar el tablespace, es estimar el espacio que puede ser recuperado. Para ello utilizamos la siguiente sentencia:

execute dbms_space.shrink_tablespace('SHRINKTBSP',shrink_mode => DBMS_SPACE.TS_MODE_ANALYZE);

El informe nos indica que el tablespace tiene un único objeto que ocupa 0,2 gigabytes que es movible, esto significa que pueden ser movidos desde el final del archivo al principio del mismo, para luego poder achicar el tablespace. El tamaño actual es de 2.5 gigabytes, y el tamaño estimado final puede ser reducido a menos de medio gigabyte (0,46).

Esto en la práctica implica mover todos los datos de la tabla "t2" del lugar actual en el tablespace al lugar que quedó libre al truncar la tabla "t1", achicando luego el tablespace. Si hubiera objetos que no pueden ser movidos, eso es informado en este paso.


Moviendo los Objetos y Achicando el Tablespace

Para mover los objetos y reducir el tamaño del tablespace, debemos ejecutar la siguiente sentencia:

execute dbms_space.shrink_tablespace('SHRINKTBSP');

A diferencia de la estimación, la cual es una tarea muy rápida que llevó menos de un segundo, el reducir el tablespace implica mover los datos desde el final del datafile al comienzo del mismo, por lo que puede requerir un tiempo de ejecución más elevado.

Podemos ver que el proceso movió unos 200 megabytes de datos desde el final del archivo al comienzo del mismo, y luego redujo en tamaño del archivo pasando de 3 gigabytes a unos 300 megabytes, lo cual confirmamos con el mismo script que usábamos para ver el tamaño del tablespaces:

Como así también a nivel sistema operativo:


Consideraciones

Tablespace SYSAUX

Como en Oracle Database 23ai el tablespace SYSAUX es de tipo BIGFILE, ahora podemos reducir su tamaño en forma sencilla luego de depurar tablas, sin necesidad de mover los objetos entre tablespaces.

Online vs Offline

Por defecto el procedimiento trata de mover todos los objetos ONLINE. Si alguno de los objetos no lo permite, esto genera un error. Usando la opción "TS_MODE_SHRINK_FORCE" podemos hacer que si una operación de mover datos falla en modo online, el proceso reintente la misma en forma offline.

Documentación

Recomendamos leer la documentación sobre el procedimiento DBMS_SPACE.SHRINK_TABLESPACE para entender todas las características de su funcionamiento.