Activar el supplemental log en la aplicación QLICK

Hola a todos, hoy vamos a contaros cómo activar el supplemental log en la aplicación QLICK sobre las tablas de nuestra aplicación en una base de datos multitenant encriptada.

QLICK es un BI para extraer datos de una BBDD y llevarlos a otra para realizar informes. Para ello, usa la característica del supplemental logging que se puede habilitar en las BBDD Oracle. Esta característica utiliza el QLICK replication para extraer los datos de las tablas auditadas en nuestra BBDD de origen y llevarlos a la BBDD de destino donde se generarán los informes.

En uno de nuestros clientes tuvimos que realizar esta tarea y queremos compartir con vosotros la solución. Comencemos.

¿Cómo activar el supplemental log en la base de datos?

Para activar el supplemental log deberemos realizar los siguientes pasos:

Activación del supplemental log en la base de datos

Lo primero que debemos hacer es activar el supplemental log en la base de datos con el siguiente comando:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

Creación de usuario y asignación de permisos

Una vez activado, creamos el usuario en el ROOT container de la BBDD que leerá las tablas auditadas y que llamaremos «C##CDC_USER«

create user C##CDC_USER identified by "XXXxxxXXX";
grant connect to C##CDC_USER;

Posteriormente le asignaremos permisos en cdb$root y en cada PDB que haya tablas a auditar. Para ello, crearemos un rol con los permisos y se lo daremos al usuario. En esta página se indican los permisos necesarios.

Una vez hecho esto, creamos el usuario en la instancia ASM y le damos los roles SYSASM y SYSDBA:

CREATE USER "CDC_USER" IDENTIFIED BY "XXXxxxXXX";
grant sysasm, sysdba to CDC_USER;
Activar el supplemental log en la aplicación QLICK

Wallet

Como nuestra base de datos está encriptada debemos sacar del wallet las claves de encriptación para proporcionarlas a la aplicación. Ten la contraseña del wallet a mano.

*Si no sabes la ruta de tu wallet puedes llamar al asistente gráfico desde la carpeta $ORACLE_HOME/bin ./owmca para encontrarlo. No olvides cargar las variables gráficas (export DISPLAY=IP:0.0).

En nuestro caso funciona el PRIMER comando (-list). Por si no te funciona, te dejamos otro comando para que pruebes:

mkstore -wrl MY_WALLET_PATH -list
mkstore -wrl MY_WALLET_PATH -listCredential

En nuestro caso el comando que usamos es:

[oracle@HOSTNAME +ASM /u01/app/oracle/wallets/tde]$ mkstore -wrl /u01/app/oracle/wallets/tde/DBNAME -list

Seleccionamos los tres que son MASTERKEY y lo ejecutamos con el view entry:

mkstore -wrl /u01/app/oracle/wallets/tde/DBNAME -viewEntry ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY
ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY = XXXxxxXXXAAAaaaAAA

mkstore -wrl /u01/app/oracle/wallets/tde/DBNAME -viewEntry ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY.XXXxxxXXXAAAaaaAAA
ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY.XXXxxxXXXAAAaaaAAA = XXXxxxXXXAAAaaaAAA

mkstore -wrl /u01/app/oracle/wallets/tde/DBNAME -viewEntry ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY.XXXxxxXXXAAAaaaAAA
ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY.XXXxxxXXXAAAaaaAAA = XXXxxxXXXAAAaaaAAA

Estas claves de encriptación serán las que tendrás que dar para la configuración del usuario QLICK.

Adicionalmente, hay que dar las cadenas de conexión a tu instancia ASM y a tus PDBS (en este caso sólo hay 1 PDB).

Ahora añadimos el supplemental log a las tablas que sea necesario auditar:

alter table usuario.nombre_tabla add supplemental log data (all) columns;
alter table usuario.nombre_tabla add supplemental log data (all) columns;

Finalmente, damos permisos al usuario que lee las tablas, sobre las tablas que debe leer:

grant read, alter on usuario.nombre_tabla to C##CDC_USER;
grant read, alter on usuario.nombre_tabla to C##CDC_USER;
grant select on usuario.nombre_tabla to C##CDC_USER;
grant select on usuario.nombre_tabla to C##CDC_USER;

¡Ya lo tienes! Esto es todo, esperamos que te resulte útil. Si no quieres perder más trucos como este, no dudes en suscribirte a nuestra newsletter mensual. Con un email al mes estarás al tanto de todas nuestras publicaciones.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *