domingo, 9 de agosto de 2026

El ecosistema tecnológico después de la pandemia: una evolución que pocos están discutiendo

Mi impresión es que el modelo no está muriendo, pero sí está atravesando una redefinición profunda.

Antes de la pandemia

Durante muchos años el ecosistema era relativamente estable.

Fabricante
      │
 Mayorista
      │
   Partner
      │
   Cliente

Cada actor tenía funciones bastante claras. El fabricante desarrollaba el producto.

  • El mayorista distribuía licencias, financiaba operaciones, capacitaba y desarrollaba el canal.
  • El partner agregaba valor mediante consultoría, implementación y soporte.
  • Los grupos de usuarios servían como un punto neutral donde se encontraban clientes, partners y el fabricante para compartir conocimiento.

Era un ecosistema donde todos dependían unos de otros.

¿Qué cambió después de la pandemia?

La pandemia aceleró varios cambios que probablemente habrían ocurrido de todas formas durante la siguiente década.

1. Todo se volvió digital

Los clientes comenzaron a comprar directamente desde portales web. Ya no era indispensable llamar a un partner para obtener una cotización. Eso redujo parte del valor tradicional de la intermediación comercial.

2. La nube cambió el modelo económico

Antes se vendían proyectos grandes. Hoy predominan:

  • suscripciones
  • consumo mensual
  • créditos cloud
  • marketplaces

Eso obliga a fabricantes y mayoristas a controlar mucho más de cerca la relación con el cliente.

3. Los fabricantes comenzaron a vender directamente

Oracle, Microsoft, AWS, Google, etc; todos fortalecieron enormemente sus equipos comerciales. No porque quieran eliminar a los partners, sino porque necesitan controlar la adopción de la nube, el consumo y la retención del cliente. Eso inevitablemente genera fricción.

4. Los mayoristas también evolucionaron

Aquí aparece uno de los cambios más polémicos. Muchos mayoristas dejaron de ser únicamente distribuidores. Ahora ofrecen:

  • consultoría
  • preventa
  • servicios profesionales
  • implementación
  • capacitación
  • soporte

En algunos casos terminan compitiendo directamente con los mismos partners que deberían desarrollar. Desde la perspectiva del partner pequeño, la sensación puede ser:

"Mi principal aliado también es ahora mi principal competidor."

Y esa percepción no es aislada.

5. El cliente cambió

El cliente hoy tiene mucha más información. Puede comparar. Puede aprender mediante plataformas externas como YouTube. Puede obtener certificaciones gratuitas. Puede incluso implementar soluciones con ayuda de IA.

El valor dejó de estar en vender una licencia. Ahora está en resolver problemas complejos.

¿Está en crisis el modelo de mayoristas y partners?

Creo que la respuesta es parcialmente sí, aunque no por las razones que normalmente se mencionan. La crisis no es de existencia. Es una crisis de identidad. Durante décadas el partner era quien tenía el conocimiento. Hoy el conocimiento es mucho más accesible. Entonces el partner necesita ofrecer algo diferente. Por ejemplo:

  • experiencia comprobada
  • especialización
  • aceleradores
  • propiedad intelectual
  • servicios administrados
  • IA
  • automatización
  • conocimiento profundo del negocio

¿Qué ocurrió con los grupos de usuarios?

Quizá este sea uno de los cambios más visibles. Hace veinte años un evento presencial era prácticamente la única forma de conocer novedades. Hoy existen:

  • Oracle University
  • Microsoft Learn
  • AWS Skill Builder
  • YouTube
  • Reddit
  • LinkedIn
  • blogs
  • webinars casi diarios

El monopolio del conocimiento desapareció. Eso hizo que muchos grupos de usuarios perdieran parte de su influencia tradicional. No porque hagan un mal trabajo. Sino porque el contexto cambió.

Pero todavía tienen un enorme valor

Curiosamente, aquello que Internet nunca pudo reemplazar es precisamente lo humano. Los grupos de usuarios siguen siendo los mejores lugares para:

  • networking
  • mentoría
  • compartir experiencias reales
  • conocer casos de éxito y fracaso
  • conectar comunidades

El conocimiento técnico ya no es exclusivo. La comunidad sí. Y probablemente ahí esté su futuro.

¿Qué podría venir?

Creo que veremos varias tendencias.

Partners mucho más especializados

Menos generalistas. Más expertos. Un partner que sea "el mejor" en FinOps Oracle Cloud, Data Security o IA tendrá mucho más valor que uno que haga "de todo".

Mayoristas como agregadores de servicios

Es probable que cada vez ofrezcan más:

  • centros de excelencia
  • laboratorios
  • entrenamiento
  • IA
  • servicios administrados

Eso puede fortalecer el ecosistema... o incrementar la competencia con los partners, dependiendo de cómo se gestionen los incentivos.

Fabricantes con relación directa

Los fabricantes seguirán teniendo una relación mucho más cercana con el cliente final. Eso parece irreversible.

Comunidades más pequeñas pero más influyentes

Los grupos de usuarios probablemente dejarán de competir por cantidad. Competirán por calidad. Eventos pequeños, muy especializados y con contenido de alto nivel podrían generar más impacto que grandes conferencias con sesiones genéricas.

Una reflexión final

Tal vez el verdadero desafío ya no sea vender tecnología. Sea construir confianza. En un mercado donde fabricantes, mayoristas, partners e incluso la inteligencia artificial pueden ofrecer respuestas similares, el factor diferenciador termina siendo la credibilidad, la experiencia demostrada y la capacidad de crear relaciones de largo plazo.

Quizá la pregunta que deberíamos hacernos no sea si el modelo tradicional de canal está desapareciendo, sino si cada uno de sus actores está logrando redefinir el valor único que aporta al ecosistema. Porque cuando dos eslabones de la cadena comienzan a competir por el mismo espacio, el riesgo no es solo para ellos: también puede resentirse la colaboración que durante años impulsó la innovación, la formación de talento y el crecimiento de comunidades técnicas.

El futuro probablemente pertenezca a los ecosistemas donde fabricantes, mayoristas, partners y grupos de usuarios vuelvan a verse menos como competidores circunstanciales y más como actores complementarios de una misma estrategia. Aunque quizás esta visión, sea una utopía, porque los intereses económicos, siempre estarán, por encima de cualquier ideal fantasioso que yo imagine.

viernes, 7 de agosto de 2026

Debes reiniciar tu servidor de Oracle Linux, después de hacer una actualización de paquetes del sistema operativo.?


Cada vez que aplicas la actualización de un paquete o paquetes de un servidor de base de datos Oracle Linux, no siempre es necesario el reinicio a nivel de sistema operativo.  Puedes utilizar el utilitario needs-restarting -r para determinar, si el reinicio es obligatorio o no.

Te adjunto una ilustración del caso para que lo puedas validar a continuación.
Using username "opc".
Authenticating with public key "rsa-key-20200507"
Passphrase for key "rsa-key-20200507":
[opc@srv-encriptacion-respaldos ~]$ sudo -s /bin/bash
[root@srv-encriptacion-respaldos opc]# dnf -y update
Last metadata expiration check: 2:22:53 ago on Fri 07 Aug 2026 02:32:42 PM GMT.
Dependencies resolved.
==============================================================================================
 Package                                   Architecture  Version     Repository     Size
==============================================================================================
Installing:
 kernel             x86_64        5.14.0-687.36.1.el9_8     ol9_baseos_latest        993 k
..
 webkit2gtk3-jsc    x86_64        2.52.5-1.el9_8             ol9_appstream            8.9 M
 xfsprogs           x86_64        6.18.0-1.0.4.el9           ol9_UEKR8                1.3 M

Transaction Summary
===============================================================================================
Install  13 Packages
Upgrade  92 Packages

Total download size: 1.3 G
Downloading Packages:
(1/105): kernel-5.14.0-687.36.1.el9_8.x86_64.rpm                       20 MB/s | 993 kB     00:00
(2/105): kernel-core-5.14.0-687.36.1.el9_8.x86_64.rpm                  68 MB/s |  17 MB     00:00
..  60 MB/s | 1.3 MB     00:00
(104/105): webkit2gtk3-jsc-2.52.5-1.el9_8.x86_64.rpm                   48 MB/s | 8.9 MB     00:00
(105/105): linux-firmware-20260615-999.48.gite7eb98af.el9.noarch.rpm   75 MB/s | 717 MB     00:09
----------------------------------------------------------------------------------------------------
Total                                                                  101 MB/s | 1.3 GB     00:12
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Running scriptlet: linux-firmware-999:20260615-999.48.gite7eb98af.el9.noarch   1/1
  Running scriptlet: firewalld-1.3.4-19.0.1.el9_8.noarch 1/1
  Preparing        :         1/1
..
  Running scriptlet: kernel-uek-core-6.12.0-204.92.4.4.3.el9uek.x86_64  55/197
 ...
  Running scriptlet: sssd-kcm-2.9.8-4.0.1.el9_8.1.x86_64               79/197
  Running scriptlet: oracle-cloud-agent-1.61.0-6.el9.x86_64            80/197
  Upgrading        : oracle-cloud-agent-1.61.0-6.el9.x86_64            80/197
  Running scriptlet: oracle-cloud-agent-1.61.0-6.el9.x86_64                                                                    80/197
Changing ownership of agent.yml* files to oracle-cloud-agent:oracle-cloud-agent
Changing ownership of updater.yml* files to oracle-cloud-agent-updater:adm
Changing ownership of /var/log/oracle-cloud-agent/updater.log to oracle-cloud-agent-updater:adm
Setting capabilities on bastions plugin
2026/08/07 16:57:11 Capability set on filePath: 
/usr/libexec/oracle-cloud-agent/plugins/bastions = [1 0 0 10 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
2026/08/07 16:57:11 Capability set on filePath: 20 = [1 0 0 10 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
2026/08/07 16:57:11 Capability set properly : [1 0 0 10 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
Changing ownership of /var/lib/ocarun/db/runcommand.db to ocarun:oracle-cloud-agent
post install upgrade: stop service
post install upgrade : clean up old files if any
post install: starting services

  Upgrading        : PackageKit-1.2.6-2.0.1.el9_8.x86_64   81/197
  Running scriptlet: PackageKit-1.2.6-2.0.1.el9_8.x86_64   81/197
...
  Upgrading        : pcp-oracle-conf-1-6.0.10.el9.x86_64   104/197
  Running scriptlet: pcp-oracle-conf-1-6.0.10.el9.x86_64   104/197
  Cleanup          : glibc-devel-2.34-272.0.1.el9_8.x86_64 106/197
 ...  Running scriptlet: kernel-modules-core-5.14.0-687.36.1.el9_8.x86_64      197/197
  Running scriptlet: kernel-core-5.14.0-687.36.1.el9_8.x86_64                  197/197
2026-08-07 16:58:05,307 - INFO - Processing directory: 
/var/cache/uptrack/Linux/x86_64
2026-08-07 16:58:05,307 - INFO - Kept (running kernel): 
/var/cache/uptrack/Linux/x86_64/6.12.0-204.92.4.3.1.el9uek.x86_64
2026-08-07 16:58:05,307 - INFO - Directory cleaned up successfully: /var/cache/uptrack

  Running scriptlet: kernel-uek-modules-core-6.12.0-204.92.4.4.3.el9uek.x86_64 197/197
  Running scriptlet: kernel-uek-core-6.12.0-204.92.4.4.3.el9uek.x86_64         197/197
2026-08-07 16:59:13,574 - INFO - Processing directory: /var/cache/uptrack/Linux/x86_64
2026-08-07 16:59:13,574 - INFO - Kept (running kernel): 
/var/cache/uptrack/Linux/x86_64/6.12.0-204.92.4.3.1.el9uek.x86_64
2026-08-07 16:59:13,574 - INFO - Directory cleaned up successfully: /var/cache/uptrack

  Running scriptlet: kernel-uek-modules-6.12.0-204.92.4.4.3.el9uek.x86_64      197/197
  Running scriptlet: kernel-modules-5.14.0-687.36.1.el9_8.x86_64               197/197
  Running scriptlet: tuned-2.27.0-2.0.1.el9_8.noarch         197/197
  Running scriptlet: tzdata-2026b-1.el9.noarch               197/197
  Verifying        : kernel-5.14.0-687.36.1.el9_8.x86_64       1/197
 ...
  Verifying        : webkit2gtk3-jsc-2.52.4-1.el9_8.x86_64  193/197
  Verifying        : pcp-oracle-conf-1-6.0.10.el9.x86_64    194/197
  Verifying        : pcp-oracle-conf-1-6.0.9.el9.x86_64     195/197
  Verifying        : xfsprogs-6.18.0-1.0.4.el9.x86_64       196/197
  Verifying        : xfsprogs-6.18.0-1.0.1.el9.x86_64       197/197

Upgraded:
  NetworkManager-1:1.54.3-4.0.1.el9_8.x86_64 
  NetworkManager-config-server-1:1.54.3-4.0.1.el9_8.noarch
  NetworkManager-libnm-1:1.54.3-4.0.1.el9_8.x86_64 
  NetworkManager-team-1:1.54.3-4.0.1.el9_8.x86_64
  NetworkManager-tui-1:1.54.3-4.0.1.el9_8.x86_64 
  PackageKit-1.2.6-2.0.1.el9_8.x86_64
  PackageKit-glib-1.2.6-2.0.1.el9_8.x86_64 
  acl-2.4.0-1.el9_8.x86_64
...
  vim-common-2:8.2.2637-26.0.1.el9_8.13.x86_64 
  vim-enhanced-2:8.2.2637-26.0.1.el9_8.13.x86_64
  vim-filesystem-2:8.2.2637-26.0.1.el9_8.13.noarch                  
  vim-minimal-2:8.2.2637-26.0.1.el9_8.13.x86_64
  webkit2gtk3-jsc-2.52.5-1.el9_8.x86_64                              
  xfsprogs-6.18.0-1.0.4.el9.x86_64
Installed:
  kernel-5.14.0-687.36.1.el9_8.x86_64                                   
  kernel-core-5.14.0-687.36.1.el9_8.x86_64
  kernel-devel-5.14.0-687.36.1.el9_8.x86_64 
  kernel-modules-5.14.0-687.36.1.el9_8.x86_64
  kernel-modules-core-5.14.0-687.36.1.el9_8.x86_64 
  kernel-uek-6.12.0-204.92.4.4.3.el9uek.x86_64
  kernel-uek-core-6.12.0-204.92.4.4.3.el9uek.x86_64 
  kernel-uek-modules-6.12.0-204.92.4.4.3.el9uek.x86_64
  kernel-uek-modules-core-6.12.0-204.92.4.4.3.el9uek.x86_64 
  kernel-uek-modules-desktop-6.12.0-204.92.4.4.3.el9uek.x86_64
  kernel-uek-modules-extra-netfilter-6.12.0-204.92.4.4.3.el9uek.x86_64  
  kernel-uek-modules-usb-6.12.0-204.92.4.4.3.el9uek.x86_64
  kernel-uek-modules-wireless-6.12.0-204.92.4.4.3.el9uek.x86_64

Complete!
[root@srv-encriptacion-respaldos opc]# dnf install dnf-utils
Last metadata expiration check: 2:42:12 ago on Fri 07 Aug 2026 02:32:42 PM GMT.
Package yum-utils-4.3.0-26.0.1.el9.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@srv-encriptacion-respaldos opc]# needs-restarting -r
Core libraries or services have been updated since boot-up:
  * glibc
  * kernel
  * kernel-uek
  * kernel-uek-core
  * linux-firmware
  * systemd

Reboot is required to fully utilize these updates.
More information: man needs-restarting
[root@srv-encriptacion-respaldos opc]#

Reboot is required to fully utilize these updates. More information: man needs-restarting [root@srv-encriptacion-respaldos opc]# init 6 Broadcast message from root@srv-encriptacion-respaldos
on pts/1 (Fri 2026-08-07 17:29:23 GMT): The system will reboot now! [root@srv-encriptacion-respaldos opc]# Using username "opc". Authenticating with public key "rsa-key-20200507" Passphrase for key "rsa-key-20200507": Last login: Fri Aug 7 16:55:02 2026 from 10.100.128.156 [opc@srv-encriptacion-respaldos ~]$ sudo -s /bin/bash [root@srv-encriptacion-respaldos opc]# needs-restarting -r No core libraries or services have been updated since boot-up. Reboot should not be necessary.

jueves, 6 de agosto de 2026

Oraworld Magazine-Junio 2026

ORAWORLD Magazine - Edition #39

Disfrute la última edición de ORAWORLD directamente desde esta página.

Si el documento no se visualiza correctamente, haga clic aquí para abrir el PDF en una nueva ventana.

domingo, 2 de agosto de 2026

La respuesta: Que impacto tiene el que generemos un Datapump utilizando un método de encriptación por ejemplo nativo o externo, a la hora de comprimir el archivo con el respaldo respectivo.?

 


Nos quedamos en el posteo anterior con la incógnita, o quizás no - porque podría ser que ya lo sabías -, sobre que sucede cuando agregamos algunos pequeños cambios, en la forma en que hacemos respaldos con la utilidad Datapump en la base de datos Oracle.

Prácticamente todos los marcos de auditoría modernos establecen que la información almacenada en medios de respaldo debe protegerse mediante controles criptográficos cuando contiene datos sensibles. En una auditoría, la ausencia de cifrado en los respaldos suele convertirse en un hallazgo de riesgo alto.

Las principales normas y regulaciones que tenemos de referencia para temas de proteción de respaldos son:

1. ISO/IEC 27001:2022 (la más utilizada)

ISO 27001 es el estándar internacional de referencia para Sistemas de Gestión de Seguridad de la Información.

Los controles relacionados son:

Control 8.24 - Use of Cryptography

Establece que la organización debe definir e implementar el uso apropiado de mecanismos criptográficos para proteger la confidencialidad e integridad de la información.

Un respaldo es precisamente información almacenada.

Control 8.13 - Information Backup

Indica que los respaldos deben realizarse, protegerse y probarse periódicamente.

La combinación de ambos controles implica que si el respaldo contiene información sensible, debe protegerse mediante mecanismos adecuados, entre ellos el cifrado.

2. ISO/IEC 27002

Es la guía de implementación de ISO 27001.

Es todavía más explícita.
Indica que los respaldos deben protegerse contra:

  • acceso no autorizado
  • pérdida
  • modificación
  • divulgación

La recomendación práctica es utilizar cifrado cuando el medio pueda salir del control de la organización.

3. PCI DSS 4.0

Es probablemente la norma más estricta para organizaciones que procesan tarjetas de crédito.
Requisitos relevantes:

Requisito 3
Protección de datos del titular de la tarjeta.

Incluye:

  • bases de datos
  • exportaciones
  • respaldos
  • cintas
  • archivos
Todos deben protegerse mediante criptografía fuerte.

Requisito 3.5
Las claves criptográficas deben administrarse correctamente.

Requisito 3.6
Debe existir gestión formal del ciclo de vida de las llaves.
Si un Data Pump contiene información de tarjetas, debe estar cifrado.

4. NIST SP 800-53 Rev. 5

Muy utilizado por agencias gubernamentales y empresas grandes.
Controles relevantes:
CP-9
System Backup
Los respaldos deben protegerse contra divulgación.

SC-28
Protection of Information at Rest
Toda información almacenada debe protegerse.

La guía recomienda explícitamente el uso de cifrado.

MP-4
Media Storage
Los medios de almacenamiento deben protegerse físicamente y mediante mecanismos criptográficos.


5. CIS Controls v8

Los CIS Controls indican:
Control 3
Data Protection
Incluye proteger la información tanto en tránsito como almacenada.
Los respaldos son considerados datos almacenados.

6. COBIT 2019

COBIT no exige AES256 específicamente.
Pero sí establece:
  • protección de activos de información
  • controles de seguridad
  • gestión del riesgo
  • continuidad del negocio
Durante una auditoría COBIT normalmente se preguntará: ¿Cómo protege la organización los respaldos que contienen información sensible?

Y muchas más. Ya con más de 35 años en el ambiente y muchos de ellos involucrados en instituciones reguladas por distintos entes, en donde las auditorias son el pan nuestro de cada año. Y no habló de 1 o 2, por lo general, hay que enfrentar hasta 4 auditorías anuales.

Así que el tema de encriptación y respaldo de información es un tema sensible para la organización y fundamental para los procesos de gestión de respaldos para el departamento de TI.

Y ahora si, podemos empezar a responder concretamente nuestra pregunta: Que impacto tiene el que generemos un Datapump utilizando un método de encriptación por ejemplo nativo o externo, a la hora de comprimir el archivo con el respaldo respectivo.?

Volviendo sobre la imágen al inicio de la entrega, tenemos 2 respaldos realizados en distintas fechas, con prácticamente el mismo tamaño.

Sin embargo, si compactamos el archivo de respaldo con la utilidad GZIP, tenemos como resultado, que uno de los archivos queda en 6.5Gb aproximadamente y el otro en poco más de 80Gb.

Que de especial tiene el archivo generado con la fecha del 31 de Julio de este año en el nombre.?

Si continuas revisando la información que te adjunto, vas a darte cuenta, que básicamente he cambiado la línea de comando de ejecución del respaldo con Datapump, agregando 3 parámetros relacionados con temas de encriptación.

El encryption=ALL, que produce que tanto la metadata como los datos sean encriptados en el momento de ejecución del respaldo.

El encryption_algorithm=AES256 para determinar el tipo de algoritmo a utilizar en la encriptación del archivo y finalmente el encryption_password para ingresar la contraseña utilizada para poder acceder al archivo encriptado.

Este método protegue al archivo resultante de un proceso de exportación de datos o metadata de la base de datos, de que cualquier uso indebido sin autorización que se desee hacer del archivo de respaldo, no pueda llevarse a cabo fácilmente. De facto, los respaldos generados con Datapump, no son protegidos por ningún mecanismo.

Que relación tiene entonces el tamaño del archivo comprimido con el uso de estos parámetros.?

Lo que pasa, es que cuando un archivo es encriptado en la fuente, o sea cuando se esta ejecutando el datapump, el archivo obtenido, pierde capacidad de compresión a la hora de comprimirse con un utilitario externo. 

Porqué pasa esto?

Esta es una excelente pregunta y, de hecho, está directamente relacionada con los principios de la teoría de la información desarrollada por Claude Shannon. El comportamiento que observamos, no es una limitación de Oracle Data Pump, sino una consecuencia natural de cómo funcionan los algoritmos de compresión y cifrado.

¿Cómo funciona gzip?

gzip (basado en DEFLATE, que combina LZ77 y Huffman) busca patrones repetitivos dentro de los datos.

Por ejemplo, si un archivo contiene:

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

gzip no almacena las 30 letras "A". Almacena algo equivalente a:

"A" repetida 30 veces

Lo mismo ocurre con:

  • nombres de columnas repetidos
  • bloques de ceros
  • espacios en blanco
  • cadenas repetidas
  • registros similares
  • páginas parcialmente vacías
Precisamente un archivo .dmp de Data Pump contiene muchos de estos patrones, por lo que suele comprimirse muy bien.

¿Qué hace el cifrado AES?

Cuando Oracle utiliza ENCRYPTION=ALL cada bloque del archivo se cifra mediante AES.

Un buen algoritmo criptográfico tiene una propiedad fundamental: El texto cifrado debe ser indistinguible de una secuencia aleatoria.

Por ejemplo, si el archivo original contiene:

CLIENTE
CLIENTE
CLIENTE
CLIENTE
CLIENTE

Después del cifrado podría verse conceptualmente así:

8FA34C1E...
B92D7114...
5C88AF0D...
A13E74F2...
9E0BC813...
Ya no existe ninguna repetición visible.

¿Por qué gzip deja de funcionar?

Porque ya no hay patrones que comprimir.

Desde la perspectiva de gzip, el archivo parece una secuencia completamente aleatoria:

010110101011101010010001011...

Y una secuencia verdaderamente aleatoria no es compresible.

De hecho, si existiera un algoritmo capaz de comprimir significativamente datos cifrados sin conocer la clave, eso implicaría que aún existen patrones detectables, lo cual sería una señal de debilidad del algoritmo criptográfico.

Data Pump sin cifrado

Supongamos un dump de:

100 GB

Puede contener muchas repeticiones.

100 GB
     │
     ▼
gzip
     │
     ▼
25 GB
Reducción del 75%.

Data Pump cifrado
100 GB
     │
     ▼
AES256
     │
     ▼
100 GB de datos pseudoaleatorios
     │
     ▼
gzip
     │
     ▼
99.9 GB
En ocasiones incluso obtendrás: 100.1 GB porque gzip añade sus propias cabeceras y metadatos.

¿Qué hace Oracle cuando se usa COMPRESSION?

Aquí está la diferencia importante.

Cuando ejecutas:

COMPRESSION=ALL
ENCRYPTION=ALL

Oracle no cifra primero.

Internamente realiza algo conceptualmente equivalente a:

Datos Oracle
      │
      ▼
Compresión Data Pump
      │
      ▼
Archivo comprimido
      │
      ▼
AES256
      │
      ▼
Dump cifrado

Es decir:

Primero comprime. Luego cifra.

Por eso la compresión sigue siendo efectiva.

¿Por qué Oracle no cifra primero?

Porque ocurriría exactamente lo que observamos previamente.

Si Oracle hiciera:

Datos
   │
   ▼
AES
   │
   ▼
Compresión

La compresión sería prácticamente inútil.

"Existe un principio ampliamente aceptado en criptografía: un texto cifrado de buena calidad debe tener una entropía cercana al máximo, es decir, parecer completamente aleatorio."

Los algoritmos de compresión funcionan precisamente explotando la reducción de entropía (patrones y redundancias). Por eso ambos procesos son, en cierto modo, opuestos: la compresión elimina redundancias y el cifrado elimina la información aprovechable por un compresor. Una vez que un archivo ha sido correctamente cifrado, ya no debería existir una forma significativa de comprimirlo sin conocer la clave criptográfica.

Entonces, toda esta historia para poder concluir, que la diferencia en el tamaño de compresión va a depender mucho del momento en que hagamos la encriptación.

Los posibles escenarios:
  1. Si la encriptación la hacemos después de haber creado nuestro respaldo sin encriptar de manera nativa, vamos a obtener un buen porcentaje de compresión, pero la información estaría expuesta algunos minutos mientras hacemos el proceso de compresión, para luego encriptar manualmente.
  2. Si usamos la manera nativa de encriptación en el momento de crear el respaldo, pero sin compresión de datos o metadata, la capacidad de comprensión va a ser cercana a "0" o menos de "0" con una herramienta externa o bien, simplemente no se va a comprimir, lo positivo será que el tiempo de ejecución no se ve alterado significativamente y no va a existir exposición de información confidencial nunca.
  3. Si además de encriptar en el momento de ejecutar el respaldo, utilizamos el parámetro de compression COMPRESSION=ALL, el archivo de respaldo tendrá el aproximadamente un poco más del doble del tamaño de un archivo no encriptado comprimido con GZIP -exactamente un 125% más-, y la duración del respaldo, pasa de 25 minutos a 41 minutos, un 64% más.
Según la necesidad que ustedes tengan; el nivel de "apriete" en el cuello que la auditoría este realizando y la disponibilidad de recursos en los ambientes que deben ser respaldos, tanto a nivel de CPU, memoria y almacenamiento, mi recomendación sería:
  1. Para organizaciones que no tienen el tema regulatorio como prioridad, utilizar el método 1.
  2. Para organizaciones que el tema regulatorio no es opcional, pero no cuentan con suficiente recursos de almacenamiento para retención de históricos, utilizar el método 3.
  3. Para organizaciones que están en el medio de las 2 anteriores, usar el método 2.
Recuerden; si no van a encriptar con un método externo en la fuente o como hemos hablado nativamente en el momento de hacer el export con datapump, no encripten antes de hacer la compresión del archivo. Esta debe hacerse una vez que el archivo este comprimido.

[oracle@bd-dev-laboratorio datapump]$ cd validar/
[oracle@bd-dev-laboratorio validar]$ ls -alt
total 157741313
drwxr-xr-x. 4 oracle oinstall          45 Jul 31 23:18 ..
drwxr-xr-x. 2 oracle oinstall           4 Jul 31 22:03 .
-rw-r-----. 1 oracle oinstall 80817483776 Jul 31 17:16 PDB1DEV_3107261650.dmp
-rw-r--r--. 1 oracle oinstall      127544 Jul 31 17:16 PDB1DEV_3107261650.log
-rw-r-----. 1 oracle oinstall 80707993600 Jul 26 22:25 PDB1DEV_2607262200.dmp
-rw-r--r--. 1 oracle oinstall      127393 Jul 26 22:25 PDB1DEV_2607262200.log
[oracle@bd-dev-laboratorio validar]$ gzip2
=== Inicio de compresión: Fri Jul 31 23:38:29 CST 2026 ===
=== Fin de compresión: Sat Aug  1 00:22:45 CST 2026 ===
[oracle@bd-dev-laboratorio validar]$
[oracle@bd-dev-laboratorio validar]$ ls -lat
total 85266481
drwxr-xr-x. 2 oracle oinstall           4 Aug  1 00:22 .
drwxr-xr-x. 4 oracle oinstall          45 Jul 31 23:18 ..
-rw-r-----. 1 oracle oinstall 80826147081 Jul 31 17:16 PDB1DEV_3107261650.dmp.gz
-rw-r--r--. 1 oracle oinstall       17205 Jul 31 17:16 PDB1DEV_3107261650.log.gz
-rw-r-----. 1 oracle oinstall  6486334242 Jul 26 22:25 PDB1DEV_2607262200.dmp.gz
-rw-r--r--. 1 oracle oinstall       17138 Jul 26 22:25 PDB1DEV_2607262200.log.gz
[oracle@bd-dev-laboratorio validar]$

[oracle@bd-dev-laboratorio validar]$ cat /home/oracle/scripts/resp_datapump_PDB1dev.sh
#!/bin/bash
TERM=xterm
USER=oracle
ORACLE_SID=cdb
ORACLE_BASE=/opt/app/oracle
MAIL=/var/spool/mail/oracle
LANG=en_US.UTF-8
HOME=/home/oracle
LOGNAME=oracle
LESSOPEN=||/usr/bin/lesspipe.sh %s
ORACLE_HOME=/opt/app/oracle/product/19.10
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_HOME ORACLE_BASE ORACLE_SID PATH

EXPDMP=`date '+PDB1DEV_%d%m%y%H%M'`
export EXPDMP

# Script de ejecución sin compresión de respaldos
# expdp c##exportdp/oracle@PDB1dev LOGFILE=$EXPDMP'.log' \
DIRECTORY=EXPDIR DUMPFILE=$EXPDMP EXCLUDE=statistics FULL=YES

# Script de ejecución con compresión de respaldos
expdp c##exportdp/oracle@PDB1dev LOGFILE=$EXPDMP'.log' DIRECTORY=EXPDIR DUMPFILE=$EXPDMP \
EXCLUDE=statistics FULL=YES encryption=ALL encryption_algorithm=AES256 \
encryption_password=NA********************$2026

gzip /respaldos/172.X.X.X/datapump/$EXPDMP*
mv /respaldos/172.X.X.X/datapump/$EXPDMP* /NFS/172.X.X.X/datapump/

[oracle@bd-dev-laboratorio validar]$ /home/oracle/scripts/resp_datapump_PDB1dev.sh


[oracle@bd-dev-laboratoriovalidar]$ tail -n 5 *.log
==> PDB1DEV_0108261124.log <==
Master table "C##EXPORTDP"."SYS_EXPORT_FULL_02" successfully loaded/unloaded
******************************************************************************
Dump file set for C##EXPORTDP.SYS_EXPORT_FULL_02 is:
  /respaldos/172.24.140.99/datapump/PDB1DEV_0108261124.dmp
Job "C##EXPORTDP"."SYS_EXPORT_FULL_02" successfully completed at 
Sat Aug 1 11:46:01 2026 elapsed 0 00:21:57

==> PDB1DEV_2607262200.log <==
Master table "C##EXPORTDP"."SYS_EXPORT_FULL_02" successfully loaded/unloaded
******************************************************************************
Dump file set for C##EXPORTDP.SYS_EXPORT_FULL_02 is:
  /respaldos/172.XX.X.X/datapump/PDB1DEV_2607262200.dmp
Job "C##EXPORTDP"."SYS_EXPORT_FULL_02" successfully completed at 
Sun Jul 26 22:25:29 2026 elapsed 0 00:25:26

==> PDB1DEV_3107261650.log <==
Master table "C##EXPORTDP"."SYS_EXPORT_FULL_02" successfully loaded/unloaded
******************************************************************************
Dump file set for C##EXPORTDP.SYS_EXPORT_FULL_02 is:
  /respaldos/172.X.X.X/datapump/PDB1DEV_3107261650.dmp
Job "C##EXPORTDP"."SYS_EXPORT_FULL_02" successfully completed at 
Fri Jul 31 17:16:28 2026 elapsed 0 00:25:31
[oracle@bd-dev-laboratorio validar]$


[oracle@bd-dev-laboratorio validar]$ ls -lat
total 243147137
-rw-r--r--. 1 oracle oinstall 80832880672 Aug  1 12:49 PDB1DEV_0108261124.dmp.enc
drwxr-xr-x. 2 oracle oinstall           7 Aug  1 12:32 .
drwxr-xr-x. 4 oracle oinstall          45 Aug  1 12:12 ..
-rw-r-----. 1 oracle oinstall 80832880640 Aug  1 11:46 PDB1DEV_0108261124.dmp
-rw-r--r--. 1 oracle oinstall      127549 Aug  1 11:46 PDB1DEV_0108261124.log
-rw-r-----. 1 oracle oinstall 80826147081 Jul 31 17:16 PDB1DEV_3107261650.dmp.gz
-rw-r--r--. 1 oracle oinstall      127544 Jul 31 17:16 PDB1DEV_3107261650.log
-rw-r-----. 1 oracle oinstall  6486334242 Jul 26 22:25 PDB1DEV_2607262200.dmp.gz
-rw-r--r--. 1 oracle oinstall      127393 Jul 26 22:25 PDB1DEV_2607262200.log

[oracle@bd-dev-laboratoriovalidar]$ time openssl enc -aes-256-cbc -pbkdf2 -salt \
-in PDB1DEV_0108261124.dmp -out PDB1DEV_0108261124.dmp.enc
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:

real    17m10.146s
user    1m49.553s
sys     2m16.912s

Durante aproximadamente 13 minutos, el proceso estuvo esperando principalmente operaciones 
de entrada/salida. Además, openssl enc procesa este cifrado como un único flujo; 
asignarle más CPU o más núcleos no hace que una sola ejecución escale linealmente. 
OpenSSL incluye openssl speed precisamente para medir la capacidad criptográfica del 
equipo y distinguirla del rendimiento del almacenamiento


[oracle@bd-dev-laboratoriovalidar]$ openssl speed -evp aes-256-cbc
Doing aes-256-cbc for 3s on 16 size blocks: 135996407 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 64 size blocks: 38799610 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 256 size blocks: 9970455 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 1024 size blocks: 2519818 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 8192 size blocks: 315709 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 16384 size blocks: 157698 aes-256-cbc's in 3.00s
OpenSSL 1.1.1k  FIPS 25 Mar 2021
built on: Mon Feb 23 10:24:46 2026 UTC
options:bn(64,64) md2(char) rc4(8x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -O2 -g -pipe -Wall 
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions 
-fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables 
-fstack-clash-protection -fcf-protection -Wa,--noexecstack -Wa,--generate-missing-build-notes=yes 
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC 
-DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 
-DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM 
-DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DZLIB -DNDEBUG 
-DPURIFY -DDEVRANDOM="\"/dev/urandom\"" 
-DSYSTEM_CIPHERS_FILE="/etc/crypto-policies/back-ends/openssl.config"

The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-256-cbc     725314.17k   827725.01k   850812.16k   860097.88k   862096.04k   861241.34k
[oracle@bd-dev-laboratoriovalidar]$ grep -m1 -o '\baes\b' /proc/cpuinfo
aes
[oracle@bd-dev-laboratoriovalidar]$

Para calcular la velocidad real:

[oracle@bd-dev-laboratoriovalidar]$ bytes=$(stat -c %s PDB1DEV_0108261124.dmp)
[oracle@bd-dev-laboratoriovalidar]$

Esto permitirá comparar el cifrado contra la velocidad máxima de lectura 
y escritura del almacenamiento.

[oracle@bd-dev-laboratoriovalidar]$ awk -v b="$bytes" -v s=1030.146 \
> 'BEGIN {
>     printf "Velocidad promedio: %.2f MiB/s\n", b/s/1024/1024
> }'
Velocidad promedio: 74.83 MiB/s

[oracle@bd-dev-laboratoriovalidar]$ ls -lat
total 91605377
drwxr-xr-x. 2 oracle oinstall           6 Aug  1 14:23 .
drwxr-xr-x. 4 oracle oinstall          45 Aug  1 12:12 ..
-rw-r-----. 1 oracle oinstall  6489619161 Aug  1 11:46 PDB1DEV_0108261124.dmp.gz
-rw-r--r--. 1 oracle oinstall      127549 Aug  1 11:46 PDB1DEV_0108261124.log
-rw-r-----. 1 oracle oinstall 80826147081 Jul 31 17:16 PDB1DEV_3107261650.dmp.gz
-rw-r--r--. 1 oracle oinstall      127544 Jul 31 17:16 PDB1DEV_3107261650.log
-rw-r-----. 1 oracle oinstall  6486334242 Jul 26 22:25 PDB1DEV_2607262200.dmp.gz
-rw-r--r--. 1 oracle oinstall      127393 Jul 26 22:25 PDB1DEV_2607262200.log

[oracle@bd-dev-laboratorio validar]$ time openssl enc -aes-256-cbc -pbkdf2 -salt \
-in PDB1DEV_0108261124.dmp.gz -out PDB1DEV_0108261124.dmp.enc
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:

real    1m35.347s
user    0m8.641s
sys     0m10.881s


[oracle@bd-dev-laboratorio validar]$ ^C
[oracle@bd-dev-laboratorio validar]$ ls -lat
total 97943937
-rw-r--r--. 1 oracle oinstall  6489619184 Aug  1 14:48PDB1DEV_0108261124.dmp.enc
drwxr-xr-x. 2 oracle oinstall           7 Aug  1 14:46 .
drwxr-xr-x. 4 oracle oinstall          45 Aug  1 12:12 ..
-rw-r-----. 1 oracle oinstall  6489619161 Aug  1 11:46PDB1DEV_0108261124.dmp.gz
-rw-r--r--. 1 oracle oinstall      127549 Aug  1 11:46PDB1DEV_0108261124.log
-rw-r-----. 1 oracle oinstall 80826147081 Jul 31 17:16PDB1DEV_3107261650.dmp.gz
-rw-r--r--. 1 oracle oinstall      127544 Jul 31 17:16PDB1DEV_3107261650.log
-rw-r-----. 1 oracle oinstall  6486334242 Jul 26 22:25PDB1DEV_2607262200.dmp.gz
-rw-r--r--. 1 oracle oinstall      127393 Jul 26 22:25PDB1DEV_2607262200.log


expdp c##exportdp/oracle@PDB1dev LOGFILE=$EXPDMP'.log' DIRECTORY=EXPDIR \
DUMPFILE=$EXPDMP EXCLUDE=statistics FULL=YES COMPRESSION=ALL encryption=ALL \
encryption_algorithm=AES256 encryption_password=NA****************2026
Master table "C##EXPORTDP"."SYS_EXPORT_FULL_02" successfully loaded/unloaded ****************************************************************************** Dump file set for C##EXPORTDP.SYS_EXPORT_FULL_02 is: /respaldos/172.x.x.x/datapump/PDB1DEV_0108262144.dmp Job "C##EXPORTDP"."SYS_EXPORT_FULL_02" successfully completed at
Sat Aug 1 22:26:36 2026 elapsed 0 00:41:49

drwxr-xr-x. 4 oracle oinstall 47 Aug 1 22:34 . -rw-r--r--. 1 oracle oinstall 17114 Aug 1 22:26 PDB1DEV_0108262144.log.gz -rw-r-----. 1 oracle oinstall 14740083605 Aug 1 22:26 PDB1DEV_0108262144.dmp.gz drwxr-xr-x. 2 oracle oinstall 7 Aug 1 14:46 validar

Todos los Sábados a las 8:00PM