0. Introducción
Se pretende realizar las pruebas pertinentes para poder importar una copia de seguridad grande de una base de datos. Parece ser que Oracle Express tiene una limitación de 6 GB de tamaño, cosa que la descarta.
Para ello se prueba Oracle-Free y seguimos las instrucciones de la web de Oracle.
1. Instalar Podman que sustituye a docker
Se seguiran estos pasos como se indica en clouding.io
#updating repository
sudo apt-get update -y
sudo apt-get upgrade -y
# add the repository
sudo apt-get install software-properties-common -y
sudo add-apt-repository -y ppa:projectatomic/ppa
#install podman
sudo apt-get install podman -y
#verify
podman info
2. Descargar la imagen, crear contenedor y entrar en sqlplus
Ejecutamos
podman run --name oracle-free -p 1111:1521 -e ORACLE_PWD=myPassword container-registry.oracle.com/database/free:latest
Y tarda mucho tiempo.
Con esto hemos creado el contenedor oracle-free
NOTA: La misma sentencia hubiera valido con docker solo hay que cambiar podman por docker. Pero, vamos a reutilizar el volumen creado en una entrada anterior (ximo-oracle-volume) y así aprovechamos todo lo hecho. Este volumen alberga las copias de seguridad de Oracle Express.
docker run --name oracle-free -p 1111:1521 -e ORACLE_PWD=myPassword --mount source=ximo-oracle-volume,target=/opt/ximo-volume container-registry.oracle.com/database/free:latest
Vamos a entrar en modo comandos y ver los contendores (BD de oracle) que tenemos. Si usamos docker, recordar cambiar podman por docker en la primera sentencia
#ejecutamos en nuestro servidor local
podman exec -it oracle-free /bin/bash
#estamos dentro del contenedor podman entramos en sqlplus como sysdba
bash-4.4$ sqlplus / as sysdba
#devuelve
#SQL*Plus: Release 23.0.0.0.0 - #Production on Fri Sep 22 06:57:22 2023
#Version 23.3.0.23.09
#Copyright (c) 1982, 2023, Oracle. All rights reserved.
#Connected to:
#Oracle Database 23c Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
#Version 23.3.0.23.09
#ejecutamos la consulta de contenedores desde sqlplus
SQL> select con_id, name from v$containers;
#devuelve: CDB$ROOT, PDB$SEED, FREEPDB1
Y vemos que hay una base de datos creada FREEPDB1 con la que vamos a trabajar (en entradas anteriores quet tratban Oracle Express, la BD que tenimos era EXPDB1)
3. Conectarse con DBeaver
Actuamos igual que en entradas anteriores con Oracle Express.
2. Entrar en DBeaver y en el menu Database Seleccionar Driver Manager
Copiamos el driver de Oracle
Cambiamos el puerto a 1111 y hay que tener en cuenta que el default DB es FREEDB1 en vez de ORCL y la cambiamos
Vamos a la pestaña de libraries y le damos a Add File y buscamos el driver JDBC descargado
Y cuando le damos al boton Find Class nos abre una pantalla de descarga que eleccionamos el último elemento
Ahora en la pantalla anterior indicamos Crivers class oracle.jdbc.OraclweDriver y le dmos a OK y cerramos
Ahora en el Menu Database -> New Database Connection se elige una BD SQL y escogermos el nuevo driver Oracle- Free y le damos al boton Next
Ahora le indicamos los parámetros marcados y le damos el pasword que le hemos dado "myPassword")
Debeis tener los parametros indicados en la pantalla.
Importante cambiar la BD a FREEPDB1 !!! Y el usuario system !!! y el puerto 1111 (que por omisión es el 1511
Le damos a test Connection y nos conecta
Y con DBeaver podemos ver los detalles de la BD: